Imported Upstream version 3.12.0~beta1
authorStephane Glondu <steph@glondu.net>
Wed, 16 Jun 2010 15:35:55 +0000 (08:35 -0700)
committerStephane Glondu <steph@glondu.net>
Wed, 16 Jun 2010 15:35:55 +0000 (08:35 -0700)
1514 files changed:
.depend
Changes
INSTALL
Makefile
Makefile.nt
README
README.win32
VERSION
_tags
asmcomp/alpha/arch.ml
asmcomp/alpha/emit.mlp
asmcomp/alpha/proc.ml
asmcomp/alpha/reload.ml
asmcomp/alpha/scheduling.ml
asmcomp/alpha/selection.ml
asmcomp/amd64/arch.ml
asmcomp/amd64/emit.mlp
asmcomp/amd64/emit_nt.mlp
asmcomp/amd64/proc.ml
asmcomp/amd64/proc_nt.ml
asmcomp/amd64/reload.ml
asmcomp/amd64/scheduling.ml
asmcomp/amd64/selection.ml
asmcomp/arm/arch.ml
asmcomp/arm/emit.mlp
asmcomp/arm/proc.ml
asmcomp/arm/reload.ml
asmcomp/arm/scheduling.ml
asmcomp/arm/selection.ml
asmcomp/asmgen.ml
asmcomp/asmgen.mli
asmcomp/asmlibrarian.ml
asmcomp/asmlibrarian.mli
asmcomp/asmlink.ml
asmcomp/asmlink.mli
asmcomp/asmpackager.ml
asmcomp/asmpackager.mli
asmcomp/clambda.ml
asmcomp/clambda.mli
asmcomp/closure.ml
asmcomp/closure.mli
asmcomp/cmm.ml
asmcomp/cmm.mli
asmcomp/cmmgen.ml
asmcomp/cmmgen.mli
asmcomp/cmx_format.mli [new file with mode: 0644]
asmcomp/codegen.ml
asmcomp/codegen.mli
asmcomp/coloring.ml
asmcomp/coloring.mli
asmcomp/comballoc.ml
asmcomp/comballoc.mli
asmcomp/compilenv.ml
asmcomp/compilenv.mli
asmcomp/emit.mli
asmcomp/emitaux.ml
asmcomp/emitaux.mli
asmcomp/hppa/arch.ml
asmcomp/hppa/emit.mlp
asmcomp/hppa/proc.ml
asmcomp/hppa/reload.ml
asmcomp/hppa/scheduling.ml
asmcomp/hppa/selection.ml
asmcomp/i386/arch.ml
asmcomp/i386/emit.mlp
asmcomp/i386/emit_nt.mlp
asmcomp/i386/proc.ml
asmcomp/i386/proc_nt.ml
asmcomp/i386/reload.ml
asmcomp/i386/scheduling.ml
asmcomp/i386/selection.ml
asmcomp/ia64/arch.ml
asmcomp/ia64/emit.mlp
asmcomp/ia64/proc.ml
asmcomp/ia64/reload.ml
asmcomp/ia64/scheduling.ml
asmcomp/ia64/selection.ml
asmcomp/interf.ml
asmcomp/interf.mli
asmcomp/linearize.ml
asmcomp/linearize.mli
asmcomp/liveness.ml
asmcomp/liveness.mli
asmcomp/mach.ml
asmcomp/mach.mli
asmcomp/mips/arch.ml
asmcomp/mips/emit.mlp
asmcomp/mips/proc.ml
asmcomp/mips/reload.ml
asmcomp/mips/scheduling.ml
asmcomp/mips/selection.ml
asmcomp/power/arch.ml
asmcomp/power/emit.mlp
asmcomp/power/proc.ml
asmcomp/power/reload.ml
asmcomp/power/scheduling.ml
asmcomp/power/selection.ml
asmcomp/printcmm.ml
asmcomp/printcmm.mli
asmcomp/printlinear.ml
asmcomp/printlinear.mli
asmcomp/printmach.ml
asmcomp/printmach.mli
asmcomp/proc.mli
asmcomp/reg.ml
asmcomp/reg.mli
asmcomp/reload.mli
asmcomp/reloadgen.ml
asmcomp/reloadgen.mli
asmcomp/schedgen.ml
asmcomp/schedgen.mli
asmcomp/scheduling.mli
asmcomp/selectgen.ml
asmcomp/selectgen.mli
asmcomp/selection.mli
asmcomp/sparc/arch.ml
asmcomp/sparc/emit.mlp
asmcomp/sparc/proc.ml
asmcomp/sparc/reload.ml
asmcomp/sparc/scheduling.ml
asmcomp/sparc/selection.ml
asmcomp/spill.ml
asmcomp/spill.mli
asmcomp/split.ml
asmcomp/split.mli
asmrun/.cvsignore
asmrun/.depend
asmrun/Makefile
asmrun/Makefile.nt
asmrun/alpha.S
asmrun/amd64.S
asmrun/amd64nt.asm
asmrun/arm.S
asmrun/backtrace.c
asmrun/fail.c
asmrun/hppa.S
asmrun/i386.S
asmrun/i386nt.asm
asmrun/ia64.S
asmrun/m68k.S
asmrun/mips.s
asmrun/power-aix.S
asmrun/power-elf.S
asmrun/power-rhapsody.S
asmrun/roots.c
asmrun/signals_asm.c
asmrun/signals_osdep.h
asmrun/sparc.S
asmrun/stack.h
asmrun/startup.c
boot/myocamlbuild.boot
boot/ocamlc
boot/ocamldep
boot/ocamllex
build/boot.sh
build/camlp4-bootstrap-recipe.txt [new file with mode: 0644]
build/camlp4-bootstrap.sh
build/camlp4-byte-only.sh
build/camlp4-mkCamlp4Ast.sh [new file with mode: 0755]
build/camlp4-native-only.sh
build/camlp4-targets.sh
build/distclean.sh
build/fastworld.sh
build/install.sh
build/mkmyocamlbuild_config.sh
build/mkruntimedef.sh
build/myocamlbuild.sh
build/ocamlbuild-byte-only.sh
build/ocamlbuild-native-only.sh
build/ocamlbuildlib-native-only.sh
build/otherlibs-targets.sh
build/partial-install.sh
build/targets.sh
build/world.all.sh
build/world.byte.sh
build/world.native.sh
bytecomp/bytegen.ml
bytecomp/bytegen.mli
bytecomp/bytelibrarian.ml
bytecomp/bytelibrarian.mli
bytecomp/bytelink.ml
bytecomp/bytelink.mli
bytecomp/bytepackager.ml
bytecomp/bytepackager.mli
bytecomp/bytesections.ml
bytecomp/bytesections.mli
bytecomp/cmo_format.mli
bytecomp/dll.ml
bytecomp/dll.mli
bytecomp/emitcode.ml
bytecomp/emitcode.mli
bytecomp/instruct.ml
bytecomp/instruct.mli
bytecomp/lambda.ml
bytecomp/lambda.mli
bytecomp/matching.ml
bytecomp/matching.mli
bytecomp/meta.ml
bytecomp/meta.mli
bytecomp/printinstr.ml
bytecomp/printinstr.mli
bytecomp/printlambda.ml
bytecomp/printlambda.mli
bytecomp/runtimedef.mli
bytecomp/simplif.ml
bytecomp/simplif.mli
bytecomp/symtable.ml
bytecomp/symtable.mli
bytecomp/translclass.ml
bytecomp/translclass.mli
bytecomp/translcore.ml
bytecomp/translcore.mli
bytecomp/translmod.ml
bytecomp/translmod.mli
bytecomp/translobj.ml
bytecomp/translobj.mli
bytecomp/typeopt.ml
bytecomp/typeopt.mli
byterun/.cvsignore
byterun/.depend
byterun/Makefile
byterun/Makefile.common
byterun/Makefile.nt
byterun/alloc.c
byterun/alloc.h
byterun/array.c
byterun/backtrace.c
byterun/backtrace.h
byterun/callback.c
byterun/callback.h
byterun/compact.c
byterun/compact.h
byterun/compare.c
byterun/compare.h
byterun/compatibility.h
byterun/config.h
byterun/custom.c
byterun/custom.h
byterun/debugger.c
byterun/debugger.h
byterun/dynlink.c
byterun/dynlink.h
byterun/exec.h
byterun/extern.c
byterun/fail.c
byterun/fail.h
byterun/finalise.c
byterun/finalise.h
byterun/fix_code.c
byterun/fix_code.h
byterun/floats.c
byterun/freelist.c
byterun/freelist.h
byterun/gc.h
byterun/gc_ctrl.c
byterun/gc_ctrl.h
byterun/globroots.c
byterun/globroots.h
byterun/hash.c
byterun/instrtrace.c
byterun/instrtrace.h
byterun/instruct.h
byterun/int64_emul.h
byterun/int64_format.h
byterun/int64_native.h
byterun/intern.c
byterun/interp.c
byterun/interp.h
byterun/intext.h
byterun/ints.c
byterun/io.c
byterun/io.h
byterun/lexing.c
byterun/main.c
byterun/major_gc.c
byterun/major_gc.h
byterun/md5.c
byterun/md5.h
byterun/memory.c
byterun/memory.h
byterun/meta.c
byterun/minor_gc.c
byterun/minor_gc.h
byterun/misc.c
byterun/misc.h
byterun/mlvalues.h
byterun/obj.c
byterun/osdeps.h
byterun/parsing.c
byterun/prims.h
byterun/printexc.c
byterun/printexc.h
byterun/reverse.h
byterun/roots.c
byterun/roots.h
byterun/signals.c
byterun/signals.h
byterun/signals_byt.c
byterun/signals_machdep.h
byterun/stacks.c
byterun/stacks.h
byterun/startup.c
byterun/startup.h
byterun/str.c
byterun/sys.c
byterun/sys.h
byterun/terminfo.c
byterun/ui.h
byterun/unix.c
byterun/weak.c
byterun/weak.h
byterun/win32.c
camlp4/Camlp4/Camlp4Ast.partial.ml
camlp4/Camlp4/OCamlInitSyntax.ml
camlp4/Camlp4/Printers/OCaml.ml
camlp4/Camlp4/Printers/OCaml.mli
camlp4/Camlp4/Printers/OCamlr.ml
camlp4/Camlp4/Sig.ml
camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml
camlp4/Camlp4/Struct/FreeVars.ml
camlp4/Camlp4/Struct/Grammar.mlpack
camlp4/Camlp4/Struct/Grammar/Context.ml [deleted file]
camlp4/Camlp4/Struct/Grammar/Delete.ml
camlp4/Camlp4/Struct/Grammar/Dynamic.ml
camlp4/Camlp4/Struct/Grammar/Entry.ml
camlp4/Camlp4/Struct/Grammar/Failed.ml
camlp4/Camlp4/Struct/Grammar/Fold.ml
camlp4/Camlp4/Struct/Grammar/Insert.ml
camlp4/Camlp4/Struct/Grammar/Parser.ml
camlp4/Camlp4/Struct/Grammar/Parser.mli
camlp4/Camlp4/Struct/Grammar/Print.ml
camlp4/Camlp4/Struct/Grammar/Search.ml
camlp4/Camlp4/Struct/Grammar/Static.ml
camlp4/Camlp4/Struct/Grammar/Structure.ml
camlp4/Camlp4/Struct/Grammar/Tools.ml
camlp4/Camlp4/Struct/Lexer.mll
camlp4/Camlp4Bin.ml
camlp4/Camlp4Filters/Camlp4FoldGenerator.ml
camlp4/Camlp4Filters/Camlp4MetaGenerator.ml
camlp4/Camlp4Parsers/Camlp4GrammarParser.ml
camlp4/Camlp4Parsers/Camlp4ListComprehension.ml
camlp4/Camlp4Parsers/Camlp4OCamlParser.ml
camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml
camlp4/Camlp4Parsers/Camlp4OCamlRevisedParserParser.ml
camlp4/Camlp4Parsers/Camlp4QuotationCommon.ml
camlp4/boot/Camlp4.ml
camlp4/boot/Camlp4.ml4
camlp4/boot/Camlp4Ast.ml
camlp4/boot/Makefile [deleted file]
camlp4/boot/camlp4boot.ml
camlp4/mkcamlp4.ml
camlp4/test/fixtures/assert.ml [deleted file]
camlp4/test/fixtures/backquoted_irrefutable_tuple.ml [deleted file]
camlp4/test/fixtures/backquoted_record.ml [deleted file]
camlp4/test/fixtures/backquoted_tuple.ml [deleted file]
camlp4/test/fixtures/big-tab1.ml [deleted file]
camlp4/test/fixtures/big-tab2.ml [deleted file]
camlp4/test/fixtures/big-tab3.ml [deleted file]
camlp4/test/fixtures/bug-4058.ml [deleted file]
camlp4/test/fixtures/bug-4337.ml [deleted file]
camlp4/test/fixtures/bug-by-vincent-balat.ml [deleted file]
camlp4/test/fixtures/bug-camlp4o-benjamin-monate.ml [deleted file]
camlp4/test/fixtures/bug-camlp4o-constr-arity-expr.ml [deleted file]
camlp4/test/fixtures/bug-camlp4o-constr-arity.ml [deleted file]
camlp4/test/fixtures/bug_escaping_quot.ml [deleted file]
camlp4/test/fixtures/chars.ml [deleted file]
camlp4/test/fixtures/class_expr_quot.ml [deleted file]
camlp4/test/fixtures/comments.ml [deleted file]
camlp4/test/fixtures/comments.mli [deleted file]
camlp4/test/fixtures/comments2.ml [deleted file]
camlp4/test/fixtures/constant-parser.ml [deleted file]
camlp4/test/fixtures/curry-constr.ml [deleted file]
camlp4/test/fixtures/default_quotation.ml [deleted file]
camlp4/test/fixtures/exception-with-eqn-bug.ml [deleted file]
camlp4/test/fixtures/external.ml [deleted file]
camlp4/test/fixtures/fun.ml [deleted file]
camlp4/test/fixtures/functor-perf.ml [deleted file]
camlp4/test/fixtures/functor-perf2.gen.ml [deleted file]
camlp4/test/fixtures/functor-perf2.ml [deleted file]
camlp4/test/fixtures/functor-perf3.ml [deleted file]
camlp4/test/fixtures/gen_map.ml [deleted file]
camlp4/test/fixtures/gram-fold.ml [deleted file]
camlp4/test/fixtures/gram-list.ml [deleted file]
camlp4/test/fixtures/gram-loc-lost.ml [deleted file]
camlp4/test/fixtures/gram-sub-rule.ml [deleted file]
camlp4/test/fixtures/gram-tree.ml [deleted file]
camlp4/test/fixtures/gram-tree2.ml [deleted file]
camlp4/test/fixtures/gram-tree3.ml [deleted file]
camlp4/test/fixtures/gram.ml [deleted file]
camlp4/test/fixtures/idents [deleted file]
camlp4/test/fixtures/idents1 [deleted file]
camlp4/test/fixtures/idents2 [deleted file]
camlp4/test/fixtures/if.ml [deleted file]
camlp4/test/fixtures/label.ml [deleted file]
camlp4/test/fixtures/lambda_free.ml [deleted file]
camlp4/test/fixtures/loc-bug.ml [deleted file]
camlp4/test/fixtures/macrotest.ml [deleted file]
camlp4/test/fixtures/macrotest.mli [deleted file]
camlp4/test/fixtures/macrotest2.ml [deleted file]
camlp4/test/fixtures/macrotest3.ml [deleted file]
camlp4/test/fixtures/make_extend.ml [deleted file]
camlp4/test/fixtures/match.ml [deleted file]
camlp4/test/fixtures/match_parser.ml [deleted file]
camlp4/test/fixtures/meta_multi_term.ml [deleted file]
camlp4/test/fixtures/metalib.ml [deleted file]
camlp4/test/fixtures/method_private_virtual.ml [deleted file]
camlp4/test/fixtures/mod.ml [deleted file]
camlp4/test/fixtures/mod2.ml [deleted file]
camlp4/test/fixtures/operators.ml [deleted file]
camlp4/test/fixtures/operators.mli [deleted file]
camlp4/test/fixtures/original_syntax.ml [deleted file]
camlp4/test/fixtures/outside-scope.ml [deleted file]
camlp4/test/fixtures/parser.ml [deleted file]
camlp4/test/fixtures/pp_let_in.ml [deleted file]
camlp4/test/fixtures/pp_let_in2.ml [deleted file]
camlp4/test/fixtures/pp_xml.ml [deleted file]
camlp4/test/fixtures/pprecordtyp.ml [deleted file]
camlp4/test/fixtures/pr4314.ml [deleted file]
camlp4/test/fixtures/pr4314gram1.ml [deleted file]
camlp4/test/fixtures/pr4314gram2.ml [deleted file]
camlp4/test/fixtures/pr4314gram3.ml [deleted file]
camlp4/test/fixtures/pr4314gram4.ml [deleted file]
camlp4/test/fixtures/pr4314gram5.ml [deleted file]
camlp4/test/fixtures/pr4329.ml [deleted file]
camlp4/test/fixtures/pr4330.ml [deleted file]
camlp4/test/fixtures/pr4357.ml [deleted file]
camlp4/test/fixtures/pr4357sample.ml [deleted file]
camlp4/test/fixtures/pr4357sample2.ml [deleted file]
camlp4/test/fixtures/pr4452.ml [deleted file]
camlp4/test/fixtures/private_row.ml [deleted file]
camlp4/test/fixtures/rec.ml [deleted file]
camlp4/test/fixtures/seq.ml [deleted file]
camlp4/test/fixtures/seq2.ml [deleted file]
camlp4/test/fixtures/simplify.ml [deleted file]
camlp4/test/fixtures/simplify_r.ml [deleted file]
camlp4/test/fixtures/stream-parser-bug.ml [deleted file]
camlp4/test/fixtures/string.ml [deleted file]
camlp4/test/fixtures/superfluous.ml [deleted file]
camlp4/test/fixtures/transform-examples.ml [deleted file]
camlp4/test/fixtures/try.ml [deleted file]
camlp4/test/fixtures/tuple_as_retval.ml [deleted file]
camlp4/test/fixtures/type.ml [deleted file]
camlp4/test/fixtures/type_decl.ml [deleted file]
camlp4/test/fixtures/unit.ml [deleted file]
camlp4/test/fixtures/use.ml [deleted file]
camlp4/test/fixtures/where.o.ml [deleted file]
camlp4/test/fixtures/where.r.ml [deleted file]
camlp4/unmaintained/Makefile [deleted file]
camlp4/unmaintained/compile/.cvsignore [deleted file]
camlp4/unmaintained/compile/.depend [deleted file]
camlp4/unmaintained/compile/Makefile [deleted file]
camlp4/unmaintained/compile/comp_head.ml [deleted file]
camlp4/unmaintained/compile/comp_trail.ml [deleted file]
camlp4/unmaintained/compile/compile.ml [deleted file]
camlp4/unmaintained/compile/compile.sh [deleted file]
camlp4/unmaintained/etc/.cvsignore [deleted file]
camlp4/unmaintained/etc/.depend [deleted file]
camlp4/unmaintained/etc/Makefile [deleted file]
camlp4/unmaintained/etc/pa_fstream.ml [deleted file]
camlp4/unmaintained/etc/pa_ifdef.ml [deleted file]
camlp4/unmaintained/etc/pa_oop.ml [deleted file]
camlp4/unmaintained/etc/pa_ru.ml [deleted file]
camlp4/unmaintained/etc/parserify.ml [deleted file]
camlp4/unmaintained/etc/parserify.mli [deleted file]
camlp4/unmaintained/etc/pr_depend.ml [deleted file]
camlp4/unmaintained/etc/pr_extend.ml [deleted file]
camlp4/unmaintained/etc/pr_extfun.ml [deleted file]
camlp4/unmaintained/etc/pr_null.ml [deleted file]
camlp4/unmaintained/etc/pr_op.ml [deleted file]
camlp4/unmaintained/etc/pr_op_main.ml [deleted file]
camlp4/unmaintained/etc/pr_rp.ml [deleted file]
camlp4/unmaintained/etc/pr_rp_main.ml [deleted file]
camlp4/unmaintained/etc/q_phony.ml [deleted file]
camlp4/unmaintained/extfold/README [deleted file]
camlp4/unmaintained/extfold/pa_extfold.ml [deleted file]
camlp4/unmaintained/format/.depend [deleted file]
camlp4/unmaintained/format/Makefile [deleted file]
camlp4/unmaintained/format/README [deleted file]
camlp4/unmaintained/format/pa_format.ml [deleted file]
camlp4/unmaintained/lefteval/.depend [deleted file]
camlp4/unmaintained/lefteval/Makefile [deleted file]
camlp4/unmaintained/lefteval/README [deleted file]
camlp4/unmaintained/lefteval/pa_lefteval.ml [deleted file]
camlp4/unmaintained/lib/.cvsignore [deleted file]
camlp4/unmaintained/lib/.depend [deleted file]
camlp4/unmaintained/lib/Makefile [deleted file]
camlp4/unmaintained/lib/extfun.ml [deleted file]
camlp4/unmaintained/lib/extfun.mli [deleted file]
camlp4/unmaintained/lib/fstream.ml [deleted file]
camlp4/unmaintained/lib/fstream.mli [deleted file]
camlp4/unmaintained/ocamllex/Makefile [deleted file]
camlp4/unmaintained/ocamllex/README [deleted file]
camlp4/unmaintained/ocamllex/pa_ocamllex.ml [deleted file]
camlp4/unmaintained/ocpp/.cvsignore [deleted file]
camlp4/unmaintained/ocpp/.depend [deleted file]
camlp4/unmaintained/ocpp/Makefile [deleted file]
camlp4/unmaintained/ocpp/ocpp.ml [deleted file]
camlp4/unmaintained/odyl/.cvsignore [deleted file]
camlp4/unmaintained/odyl/.depend [deleted file]
camlp4/unmaintained/odyl/Makefile [deleted file]
camlp4/unmaintained/odyl/odyl.ml [deleted file]
camlp4/unmaintained/odyl/odyl_main.mli [deleted file]
camlp4/unmaintained/olabl/.depend [deleted file]
camlp4/unmaintained/olabl/Makefile [deleted file]
camlp4/unmaintained/olabl/README [deleted file]
camlp4/unmaintained/olabl/pa_olabl.ml [deleted file]
camlp4/unmaintained/scheme/.depend [deleted file]
camlp4/unmaintained/scheme/Makefile [deleted file]
camlp4/unmaintained/scheme/README [deleted file]
camlp4/unmaintained/scheme/pa_scheme.ml [deleted file]
camlp4/unmaintained/scheme/pa_scheme.sc [deleted file]
camlp4/unmaintained/scheme/pr_scheme.ml [deleted file]
camlp4/unmaintained/scheme/pr_schp_main.ml [deleted file]
camlp4/unmaintained/sml/.depend [deleted file]
camlp4/unmaintained/sml/Makefile [deleted file]
camlp4/unmaintained/sml/README [deleted file]
camlp4/unmaintained/sml/pa_sml.ml [deleted file]
camlp4/unmaintained/sml/smllib.sml [deleted file]
config/Makefile-templ
config/Makefile.mingw
config/Makefile.msvc
config/Makefile.msvc64
config/auto-aux/align.c
config/auto-aux/async_io.c
config/auto-aux/bytecopy.c
config/auto-aux/dblalign.c
config/auto-aux/divmod.c
config/auto-aux/elf.c
config/auto-aux/endian.c
config/auto-aux/getgroups.c
config/auto-aux/gethostbyaddr.c
config/auto-aux/gethostbyname.c
config/auto-aux/ia32sse2.c
config/auto-aux/initgroups.c
config/auto-aux/int64align.c
config/auto-aux/longlong.c
config/auto-aux/schar.c
config/auto-aux/schar2.c
config/auto-aux/setgroups.c
config/auto-aux/sighandler.c
config/auto-aux/signals.c
config/auto-aux/sizes.c
config/auto-aux/stackov.c
config/m-nt.h
config/m-templ.h
config/s-nt.h
config/s-templ.h
configure
debugger/.cvsignore
debugger/Makefile
debugger/Makefile.nt
debugger/Makefile.shared
debugger/breakpoints.ml
debugger/breakpoints.mli
debugger/checkpoints.ml
debugger/checkpoints.mli
debugger/command_line.ml
debugger/command_line.mli
debugger/debugcom.ml
debugger/debugcom.mli
debugger/debugger_config.ml
debugger/debugger_config.mli
debugger/dynlink.ml [deleted file]
debugger/dynlink.mli [deleted file]
debugger/envaux.ml
debugger/envaux.mli
debugger/eval.ml
debugger/eval.mli
debugger/events.ml
debugger/events.mli
debugger/exec.ml
debugger/exec.mli
debugger/frames.ml
debugger/frames.mli
debugger/history.ml
debugger/history.mli
debugger/input_handling.ml
debugger/input_handling.mli
debugger/int64ops.ml
debugger/int64ops.mli
debugger/lexer.mli
debugger/lexer.mll
debugger/loadprinter.ml
debugger/loadprinter.mli
debugger/main.ml
debugger/parameters.ml
debugger/parameters.mli
debugger/parser.mly
debugger/parser_aux.mli
debugger/pattern_matching.ml
debugger/pattern_matching.mli
debugger/pos.ml
debugger/pos.mli
debugger/primitives.ml
debugger/primitives.mli
debugger/printval.ml
debugger/printval.mli
debugger/program_loading.ml
debugger/program_loading.mli
debugger/program_management.ml
debugger/program_management.mli
debugger/show_information.ml
debugger/show_information.mli
debugger/show_source.ml
debugger/show_source.mli
debugger/source.ml
debugger/source.mli
debugger/symbols.ml
debugger/symbols.mli
debugger/time_travel.ml
debugger/time_travel.mli
debugger/trap_barrier.ml
debugger/trap_barrier.mli
debugger/unix_tools.ml
debugger/unix_tools.mli
driver/compile.ml
driver/compile.mli
driver/errors.ml
driver/errors.mli
driver/main.ml
driver/main.mli
driver/main_args.ml
driver/main_args.mli
driver/optcompile.ml
driver/optcompile.mli
driver/opterrors.ml
driver/opterrors.mli
driver/optmain.ml
driver/optmain.mli
driver/pparse.ml
driver/pparse.mli
emacs/Makefile
emacs/README
emacs/caml-compat.el
emacs/caml-emacs.el
emacs/caml-font-old.el
emacs/caml-help.el
emacs/caml-hilit.el
emacs/caml-types.el
emacs/caml-xemacs.el
emacs/caml.el
emacs/camldebug.el
emacs/inf-caml.el
emacs/ocamltags.in
lex/Makefile
lex/Makefile.nt
lex/compact.ml
lex/compact.mli
lex/cset.ml
lex/cset.mli
lex/lexer.mli
lex/lexer.mll
lex/lexgen.ml
lex/lexgen.mli
lex/main.ml
lex/output.ml
lex/output.mli
lex/outputbis.ml
lex/outputbis.mli
lex/parser.mly
lex/syntax.ml
lex/syntax.mli
man/Makefile
man/ocaml.m
man/ocamlc.m
man/ocamlcp.m
man/ocamldebug.m
man/ocamldep.m
man/ocamldoc.m
man/ocamllex.m
man/ocamlmktop.m
man/ocamlopt.m
man/ocamlprof.m
man/ocamlrun.m
man/ocamlyacc.m
myocamlbuild.ml
ocamlbuild/Makefile
ocamlbuild/manual/.cvsignore [deleted file]
ocamlbuild/manual/Makefile [deleted file]
ocamlbuild/manual/manual.hva [deleted file]
ocamlbuild/manual/manual.tex [deleted file]
ocamlbuild/manual/myocamlbuild.ml [deleted file]
ocamlbuild/manual/trace.out [deleted file]
ocamlbuild/ocamlbuild_unix_plugin.ml
ocamlbuild/options.ml
ocamlbuild/slurp.ml
ocamlbuild/test/good-output [deleted file]
ocamlbuild/test/runtest.sh [deleted file]
ocamlbuild/test/test1/foo.ml [deleted file]
ocamlbuild/test/test10/dbdi [deleted file]
ocamlbuild/test/test10/test.sh [deleted file]
ocamlbuild/test/test11/_tags [deleted file]
ocamlbuild/test/test11/a/aa.ml [deleted file]
ocamlbuild/test/test11/a/aa.mli [deleted file]
ocamlbuild/test/test11/b/bb.ml [deleted file]
ocamlbuild/test/test11/b/libb.mllib [deleted file]
ocamlbuild/test/test11/myocamlbuild.ml [deleted file]
ocamlbuild/test/test11/test.sh [deleted file]
ocamlbuild/test/test2/_tags [deleted file]
ocamlbuild/test/test2/tata.ml [deleted file]
ocamlbuild/test/test2/tata.mli [deleted file]
ocamlbuild/test/test2/test.sh [deleted file]
ocamlbuild/test/test2/titi.ml [deleted file]
ocamlbuild/test/test2/toto.ml [deleted file]
ocamlbuild/test/test2/tutu.ml [deleted file]
ocamlbuild/test/test2/tutu.mli [deleted file]
ocamlbuild/test/test2/tyty.mli [deleted file]
ocamlbuild/test/test2/vivi1.ml [deleted file]
ocamlbuild/test/test2/vivi2.ml [deleted file]
ocamlbuild/test/test2/vivi3.ml [deleted file]
ocamlbuild/test/test3/_tags [deleted file]
ocamlbuild/test/test3/a.ml [deleted file]
ocamlbuild/test/test3/a.mli [deleted file]
ocamlbuild/test/test3/b.ml [deleted file]
ocamlbuild/test/test3/b.mli [deleted file]
ocamlbuild/test/test3/c.ml [deleted file]
ocamlbuild/test/test3/c.mli [deleted file]
ocamlbuild/test/test3/d.ml [deleted file]
ocamlbuild/test/test3/d.mli [deleted file]
ocamlbuild/test/test3/e.ml [deleted file]
ocamlbuild/test/test3/e.mli [deleted file]
ocamlbuild/test/test3/f.ml [deleted file]
ocamlbuild/test/test3/f.mli [deleted file]
ocamlbuild/test/test3/proj.odocl [deleted file]
ocamlbuild/test/test3/test.sh [deleted file]
ocamlbuild/test/test4/_tags [deleted file]
ocamlbuild/test/test4/a/aa.ml [deleted file]
ocamlbuild/test/test4/a/aa.mli [deleted file]
ocamlbuild/test/test4/b/bb.ml [deleted file]
ocamlbuild/test/test4/test.sh [deleted file]
ocamlbuild/test/test5/_tags [deleted file]
ocamlbuild/test/test5/a.ml [deleted file]
ocamlbuild/test/test5/a.mli [deleted file]
ocamlbuild/test/test5/b.ml [deleted file]
ocamlbuild/test/test5/c.mlpack [deleted file]
ocamlbuild/test/test5/d.ml [deleted file]
ocamlbuild/test/test5/stack.ml [deleted file]
ocamlbuild/test/test5/test.sh [deleted file]
ocamlbuild/test/test6/a.ml [deleted file]
ocamlbuild/test/test6/a.mli [deleted file]
ocamlbuild/test/test6/b.ml [deleted file]
ocamlbuild/test/test6/b.mli [deleted file]
ocamlbuild/test/test6/b.mli.v1 [deleted file]
ocamlbuild/test/test6/b.mli.v2 [deleted file]
ocamlbuild/test/test6/d.ml [deleted file]
ocamlbuild/test/test6/d.mli [deleted file]
ocamlbuild/test/test6/d.mli.v1 [deleted file]
ocamlbuild/test/test6/d.mli.v2 [deleted file]
ocamlbuild/test/test6/main.ml [deleted file]
ocamlbuild/test/test6/main.mli [deleted file]
ocamlbuild/test/test6/test.sh [deleted file]
ocamlbuild/test/test7/_tags [deleted file]
ocamlbuild/test/test7/aa.ml [deleted file]
ocamlbuild/test/test7/bb.mli [deleted file]
ocamlbuild/test/test7/bb1.ml [deleted file]
ocamlbuild/test/test7/bb2.ml [deleted file]
ocamlbuild/test/test7/bb3.ml [deleted file]
ocamlbuild/test/test7/bbcc.mllib [deleted file]
ocamlbuild/test/test7/c2.ml [deleted file]
ocamlbuild/test/test7/c2.mli [deleted file]
ocamlbuild/test/test7/c3.ml [deleted file]
ocamlbuild/test/test7/cc.ml [deleted file]
ocamlbuild/test/test7/cool_plugin.ml [deleted file]
ocamlbuild/test/test7/main.ml [deleted file]
ocamlbuild/test/test7/myocamlbuild.ml [deleted file]
ocamlbuild/test/test7/test.sh [deleted file]
ocamlbuild/test/test8/a.ml [deleted file]
ocamlbuild/test/test8/myocamlbuild.ml [deleted file]
ocamlbuild/test/test8/test.sh [deleted file]
ocamlbuild/test/test9/dbgl [deleted file]
ocamlbuild/test/test9/test.sh [deleted file]
ocamlbuild/test/test9/testglob.ml [deleted file]
ocamlbuild/test/test_virtual/foo.itarget [deleted file]
ocamlbuild/test/test_virtual/foo1 [deleted file]
ocamlbuild/test/test_virtual/foo2 [deleted file]
ocamlbuild/test/test_virtual/myocamlbuild.ml [deleted file]
ocamlbuild/test/test_virtual/test.sh [deleted file]
ocamldoc/.depend
ocamldoc/Makefile
ocamldoc/Makefile.nt
ocamldoc/odoc.ml
ocamldoc/odoc_analyse.ml
ocamldoc/odoc_analyse.mli
ocamldoc/odoc_args.ml
ocamldoc/odoc_args.mli
ocamldoc/odoc_ast.ml
ocamldoc/odoc_ast.mli
ocamldoc/odoc_class.ml
ocamldoc/odoc_comments.ml
ocamldoc/odoc_comments.mli
ocamldoc/odoc_comments_global.ml
ocamldoc/odoc_comments_global.mli
ocamldoc/odoc_config.ml
ocamldoc/odoc_config.mli
ocamldoc/odoc_control.ml
ocamldoc/odoc_cross.ml
ocamldoc/odoc_cross.mli
ocamldoc/odoc_dag2html.ml
ocamldoc/odoc_dag2html.mli
ocamldoc/odoc_dep.ml
ocamldoc/odoc_dot.ml
ocamldoc/odoc_env.ml
ocamldoc/odoc_env.mli
ocamldoc/odoc_exception.ml
ocamldoc/odoc_global.ml
ocamldoc/odoc_global.mli
ocamldoc/odoc_html.ml
ocamldoc/odoc_info.ml
ocamldoc/odoc_info.mli
ocamldoc/odoc_inherit.ml
ocamldoc/odoc_latex.ml
ocamldoc/odoc_latex_style.ml
ocamldoc/odoc_lexer.mll
ocamldoc/odoc_man.ml
ocamldoc/odoc_merge.ml
ocamldoc/odoc_merge.mli
ocamldoc/odoc_messages.ml
ocamldoc/odoc_misc.ml
ocamldoc/odoc_misc.mli
ocamldoc/odoc_module.ml
ocamldoc/odoc_name.ml
ocamldoc/odoc_name.mli
ocamldoc/odoc_ocamlhtml.mll
ocamldoc/odoc_parameter.ml
ocamldoc/odoc_parser.mly
ocamldoc/odoc_print.ml
ocamldoc/odoc_print.mli
ocamldoc/odoc_scan.ml
ocamldoc/odoc_search.ml
ocamldoc/odoc_search.mli
ocamldoc/odoc_see_lexer.mll
ocamldoc/odoc_sig.ml
ocamldoc/odoc_sig.mli
ocamldoc/odoc_str.ml
ocamldoc/odoc_str.mli
ocamldoc/odoc_test.ml
ocamldoc/odoc_texi.ml
ocamldoc/odoc_text.ml
ocamldoc/odoc_text.mli
ocamldoc/odoc_text_lexer.mll
ocamldoc/odoc_text_parser.mly
ocamldoc/odoc_to_text.ml
ocamldoc/odoc_type.ml
ocamldoc/odoc_types.ml
ocamldoc/odoc_types.mli
ocamldoc/odoc_value.ml
ocamldoc/remove_DEBUG
ocamldoc/runocamldoc
otherlibs/Makefile
otherlibs/Makefile.nt
otherlibs/Makefile.shared
otherlibs/bigarray/.depend
otherlibs/bigarray/Makefile
otherlibs/bigarray/Makefile.nt
otherlibs/bigarray/bigarray.h
otherlibs/bigarray/bigarray.ml
otherlibs/bigarray/bigarray.mli
otherlibs/bigarray/bigarray_stubs.c
otherlibs/bigarray/mmap_unix.c
otherlibs/bigarray/mmap_win32.c
otherlibs/dbm/Makefile
otherlibs/dbm/cldbm.c
otherlibs/dbm/dbm.ml
otherlibs/dbm/dbm.mli
otherlibs/dynlink/Makefile
otherlibs/dynlink/Makefile.nt
otherlibs/dynlink/dynlink.ml
otherlibs/dynlink/dynlink.mli
otherlibs/dynlink/extract_crc.ml
otherlibs/dynlink/natdynlink.ml
otherlibs/graph/.depend
otherlibs/graph/Makefile
otherlibs/graph/color.c
otherlibs/graph/draw.c
otherlibs/graph/dump_img.c
otherlibs/graph/events.c
otherlibs/graph/fill.c
otherlibs/graph/graphics.ml
otherlibs/graph/graphics.mli
otherlibs/graph/graphicsX11.ml
otherlibs/graph/graphicsX11.mli
otherlibs/graph/image.c
otherlibs/graph/image.h
otherlibs/graph/libgraph.h
otherlibs/graph/make_img.c
otherlibs/graph/open.c
otherlibs/graph/point_col.c
otherlibs/graph/sound.c
otherlibs/graph/subwindow.c
otherlibs/graph/text.c
otherlibs/labltk/Makefile.nt
otherlibs/labltk/browser/Makefile
otherlibs/labltk/browser/Makefile.nt
otherlibs/labltk/browser/Makefile.shared
otherlibs/labltk/browser/dummyUnix.mli
otherlibs/labltk/browser/dummyWin.mli
otherlibs/labltk/browser/editor.ml
otherlibs/labltk/browser/editor.mli
otherlibs/labltk/browser/fileselect.ml
otherlibs/labltk/browser/fileselect.mli
otherlibs/labltk/browser/jg_bind.ml
otherlibs/labltk/browser/jg_bind.mli
otherlibs/labltk/browser/jg_box.ml
otherlibs/labltk/browser/jg_button.ml
otherlibs/labltk/browser/jg_completion.ml
otherlibs/labltk/browser/jg_completion.mli
otherlibs/labltk/browser/jg_config.ml
otherlibs/labltk/browser/jg_config.mli
otherlibs/labltk/browser/jg_entry.ml
otherlibs/labltk/browser/jg_memo.ml
otherlibs/labltk/browser/jg_memo.mli
otherlibs/labltk/browser/jg_menu.ml
otherlibs/labltk/browser/jg_message.ml
otherlibs/labltk/browser/jg_message.mli
otherlibs/labltk/browser/jg_multibox.ml
otherlibs/labltk/browser/jg_multibox.mli
otherlibs/labltk/browser/jg_text.ml
otherlibs/labltk/browser/jg_text.mli
otherlibs/labltk/browser/jg_tk.ml
otherlibs/labltk/browser/jg_toplevel.ml
otherlibs/labltk/browser/lexical.ml
otherlibs/labltk/browser/lexical.mli
otherlibs/labltk/browser/list2.ml
otherlibs/labltk/browser/main.ml
otherlibs/labltk/browser/mytypes.mli
otherlibs/labltk/browser/searchid.ml
otherlibs/labltk/browser/searchid.mli
otherlibs/labltk/browser/searchpos.ml
otherlibs/labltk/browser/searchpos.mli
otherlibs/labltk/browser/setpath.ml
otherlibs/labltk/browser/setpath.mli
otherlibs/labltk/browser/shell.ml
otherlibs/labltk/browser/shell.mli
otherlibs/labltk/browser/typecheck.ml
otherlibs/labltk/browser/typecheck.mli
otherlibs/labltk/browser/useunix.ml
otherlibs/labltk/browser/useunix.mli
otherlibs/labltk/browser/viewer.ml
otherlibs/labltk/browser/viewer.mli
otherlibs/labltk/browser/winmain.c
otherlibs/labltk/builtin/LICENSE
otherlibs/labltk/compiler/compile.ml
otherlibs/labltk/compiler/intf.ml
otherlibs/labltk/compiler/lexer.mll
otherlibs/labltk/compiler/maincompile.ml
otherlibs/labltk/compiler/parser.mly
otherlibs/labltk/compiler/tables.ml
otherlibs/labltk/compiler/tsort.ml
otherlibs/labltk/examples_labltk/README
otherlibs/labltk/examples_labltk/calc.ml
otherlibs/labltk/examples_labltk/clock.ml
otherlibs/labltk/examples_labltk/demo.ml
otherlibs/labltk/examples_labltk/eyes.ml
otherlibs/labltk/examples_labltk/hello.ml
otherlibs/labltk/examples_labltk/taquin.ml
otherlibs/labltk/examples_labltk/tetris.ml
otherlibs/labltk/frx/frx_entry.ml
otherlibs/labltk/frx/frx_fileinput.ml
otherlibs/labltk/frx/frx_font.ml
otherlibs/labltk/frx/frx_lbutton.ml
otherlibs/labltk/frx/frx_listbox.ml
otherlibs/labltk/frx/frx_req.ml
otherlibs/labltk/frx/frx_text.ml
otherlibs/labltk/frx/frx_widget.ml
otherlibs/labltk/jpf/balloon.ml
otherlibs/labltk/jpf/balloon.mli
otherlibs/labltk/jpf/balloontest.ml
otherlibs/labltk/jpf/fileselect.ml
otherlibs/labltk/jpf/fileselect.mli
otherlibs/labltk/lib/Makefile
otherlibs/labltk/lib/labltk.bat [new file with mode: 0755]
otherlibs/labltk/support/camltk.h
otherlibs/labltk/support/cltkCaml.c
otherlibs/labltk/support/cltkDMain.c
otherlibs/labltk/support/cltkEval.c
otherlibs/labltk/support/cltkEvent.c
otherlibs/labltk/support/cltkFile.c
otherlibs/labltk/support/cltkMain.c
otherlibs/labltk/support/cltkMisc.c
otherlibs/labltk/support/cltkTimer.c
otherlibs/labltk/support/cltkUtf.c
otherlibs/labltk/support/cltkVar.c
otherlibs/labltk/support/cltkWait.c
otherlibs/labltk/support/fileevent.ml
otherlibs/labltk/support/fileevent.mli
otherlibs/labltk/support/protocol.ml
otherlibs/labltk/support/protocol.mli
otherlibs/labltk/support/rawwidget.ml
otherlibs/labltk/support/rawwidget.mli
otherlibs/labltk/support/slave.ml
otherlibs/labltk/support/support.ml
otherlibs/labltk/support/support.mli
otherlibs/labltk/support/textvariable.ml
otherlibs/labltk/support/textvariable.mli
otherlibs/labltk/support/timer.ml
otherlibs/labltk/support/timer.mli
otherlibs/labltk/support/tkthread.ml
otherlibs/labltk/support/tkthread.mli
otherlibs/labltk/support/tkwait.ml
otherlibs/labltk/support/widget.ml
otherlibs/labltk/support/widget.mli
otherlibs/num/.depend
otherlibs/num/Makefile
otherlibs/num/Makefile.nt
otherlibs/num/arith_flags.ml
otherlibs/num/arith_flags.mli
otherlibs/num/arith_status.ml
otherlibs/num/arith_status.mli
otherlibs/num/big_int.ml
otherlibs/num/big_int.mli
otherlibs/num/bng.c
otherlibs/num/bng.h
otherlibs/num/bng_alpha.c
otherlibs/num/bng_amd64.c
otherlibs/num/bng_digit.c
otherlibs/num/bng_ia32.c
otherlibs/num/bng_mips.c
otherlibs/num/bng_ppc.c
otherlibs/num/bng_sparc.c
otherlibs/num/int_misc.ml
otherlibs/num/int_misc.mli
otherlibs/num/nat.h
otherlibs/num/nat.ml
otherlibs/num/nat.mli
otherlibs/num/nat_stubs.c
otherlibs/num/num.ml
otherlibs/num/num.mli
otherlibs/num/ratio.mli
otherlibs/str/.depend
otherlibs/str/Makefile
otherlibs/str/Makefile.nt
otherlibs/str/str.ml
otherlibs/str/str.mli
otherlibs/str/strstubs.c
otherlibs/systhreads/.depend
otherlibs/systhreads/Makefile
otherlibs/systhreads/Makefile.nt
otherlibs/systhreads/condition.ml
otherlibs/systhreads/condition.mli
otherlibs/systhreads/event.ml
otherlibs/systhreads/event.mli
otherlibs/systhreads/mutex.ml
otherlibs/systhreads/mutex.mli
otherlibs/systhreads/thread.mli
otherlibs/systhreads/threadUnix.ml
otherlibs/systhreads/threadUnix.mli
otherlibs/threads/.depend
otherlibs/threads/Makefile
otherlibs/threads/condition.ml
otherlibs/threads/condition.mli
otherlibs/threads/event.ml
otherlibs/threads/event.mli
otherlibs/threads/marshal.ml
otherlibs/threads/mutex.ml
otherlibs/threads/mutex.mli
otherlibs/threads/pervasives.ml
otherlibs/threads/scheduler.c
otherlibs/threads/thread.ml
otherlibs/threads/thread.mli
otherlibs/threads/threadUnix.ml
otherlibs/threads/threadUnix.mli
otherlibs/threads/unix.ml
otherlibs/unix/.depend
otherlibs/unix/Makefile
otherlibs/unix/accept.c
otherlibs/unix/access.c
otherlibs/unix/addrofstr.c
otherlibs/unix/alarm.c
otherlibs/unix/bind.c
otherlibs/unix/chdir.c
otherlibs/unix/chmod.c
otherlibs/unix/chown.c
otherlibs/unix/chroot.c
otherlibs/unix/close.c
otherlibs/unix/closedir.c
otherlibs/unix/connect.c
otherlibs/unix/cst2constr.c
otherlibs/unix/cst2constr.h
otherlibs/unix/cstringv.c
otherlibs/unix/dup.c
otherlibs/unix/dup2.c
otherlibs/unix/envir.c
otherlibs/unix/errmsg.c
otherlibs/unix/execv.c
otherlibs/unix/execve.c
otherlibs/unix/execvp.c
otherlibs/unix/exit.c
otherlibs/unix/fchmod.c
otherlibs/unix/fchown.c
otherlibs/unix/fcntl.c
otherlibs/unix/fork.c
otherlibs/unix/ftruncate.c
otherlibs/unix/getaddrinfo.c
otherlibs/unix/getcwd.c
otherlibs/unix/getegid.c
otherlibs/unix/geteuid.c
otherlibs/unix/getgid.c
otherlibs/unix/getgr.c
otherlibs/unix/getgroups.c
otherlibs/unix/gethost.c
otherlibs/unix/gethostname.c
otherlibs/unix/getlogin.c
otherlibs/unix/getnameinfo.c
otherlibs/unix/getpeername.c
otherlibs/unix/getpid.c
otherlibs/unix/getppid.c
otherlibs/unix/getproto.c
otherlibs/unix/getpw.c
otherlibs/unix/getserv.c
otherlibs/unix/getsockname.c
otherlibs/unix/gettimeofday.c
otherlibs/unix/getuid.c
otherlibs/unix/gmtime.c
otherlibs/unix/initgroups.c
otherlibs/unix/isatty.c
otherlibs/unix/itimer.c
otherlibs/unix/kill.c
otherlibs/unix/link.c
otherlibs/unix/listen.c
otherlibs/unix/lockf.c
otherlibs/unix/lseek.c
otherlibs/unix/mkdir.c
otherlibs/unix/mkfifo.c
otherlibs/unix/nice.c
otherlibs/unix/open.c
otherlibs/unix/opendir.c
otherlibs/unix/pipe.c
otherlibs/unix/putenv.c
otherlibs/unix/read.c
otherlibs/unix/readdir.c
otherlibs/unix/readlink.c
otherlibs/unix/rename.c
otherlibs/unix/rewinddir.c
otherlibs/unix/rmdir.c
otherlibs/unix/select.c
otherlibs/unix/sendrecv.c
otherlibs/unix/setgid.c
otherlibs/unix/setgroups.c
otherlibs/unix/setsid.c
otherlibs/unix/setuid.c
otherlibs/unix/shutdown.c
otherlibs/unix/signals.c
otherlibs/unix/sleep.c
otherlibs/unix/socket.c
otherlibs/unix/socketaddr.c
otherlibs/unix/socketaddr.h
otherlibs/unix/socketpair.c
otherlibs/unix/sockopt.c
otherlibs/unix/stat.c
otherlibs/unix/strofaddr.c
otherlibs/unix/symlink.c
otherlibs/unix/termios.c
otherlibs/unix/time.c
otherlibs/unix/times.c
otherlibs/unix/truncate.c
otherlibs/unix/umask.c
otherlibs/unix/unix.ml
otherlibs/unix/unix.mli
otherlibs/unix/unixLabels.ml
otherlibs/unix/unixLabels.mli
otherlibs/unix/unixsupport.c
otherlibs/unix/unixsupport.h
otherlibs/unix/unlink.c
otherlibs/unix/utimes.c
otherlibs/unix/wait.c
otherlibs/unix/write.c
otherlibs/win32graph/.cvsignore [new file with mode: 0644]
otherlibs/win32graph/Makefile.nt
otherlibs/win32graph/dib.c
otherlibs/win32graph/draw.c
otherlibs/win32graph/events.c
otherlibs/win32graph/libgraph.h
otherlibs/win32graph/open.c
otherlibs/win32unix/.cvsignore
otherlibs/win32unix/Makefile.nt
otherlibs/win32unix/accept.c
otherlibs/win32unix/bind.c
otherlibs/win32unix/channels.c
otherlibs/win32unix/close.c
otherlibs/win32unix/close_on.c
otherlibs/win32unix/connect.c
otherlibs/win32unix/createprocess.c
otherlibs/win32unix/dup.c
otherlibs/win32unix/dup2.c
otherlibs/win32unix/errmsg.c
otherlibs/win32unix/getpeername.c
otherlibs/win32unix/getpid.c
otherlibs/win32unix/getsockname.c
otherlibs/win32unix/gettimeofday.c
otherlibs/win32unix/link.c
otherlibs/win32unix/listen.c
otherlibs/win32unix/lockf.c
otherlibs/win32unix/lseek.c
otherlibs/win32unix/mkdir.c
otherlibs/win32unix/nonblock.c
otherlibs/win32unix/open.c
otherlibs/win32unix/pipe.c
otherlibs/win32unix/read.c
otherlibs/win32unix/rename.c
otherlibs/win32unix/select.c
otherlibs/win32unix/sendrecv.c
otherlibs/win32unix/shutdown.c
otherlibs/win32unix/sleep.c
otherlibs/win32unix/socket.c
otherlibs/win32unix/socketaddr.h
otherlibs/win32unix/sockopt.c
otherlibs/win32unix/startup.c
otherlibs/win32unix/stat.c
otherlibs/win32unix/system.c
otherlibs/win32unix/unix.ml
otherlibs/win32unix/unixsupport.c
otherlibs/win32unix/unixsupport.h
otherlibs/win32unix/windbug.c
otherlibs/win32unix/windbug.h
otherlibs/win32unix/windir.c
otherlibs/win32unix/winlist.c
otherlibs/win32unix/winlist.h
otherlibs/win32unix/winwait.c
otherlibs/win32unix/winworker.c
otherlibs/win32unix/winworker.h
otherlibs/win32unix/write.c
parsing/asttypes.mli
parsing/lexer.mli
parsing/lexer.mll
parsing/linenum.mli
parsing/linenum.mll
parsing/location.ml
parsing/location.mli
parsing/longident.ml
parsing/longident.mli
parsing/parse.ml
parsing/parse.mli
parsing/parser.mly
parsing/parsetree.mli
parsing/printast.ml
parsing/printast.mli
parsing/syntaxerr.ml
parsing/syntaxerr.mli
stdlib/Compflags
stdlib/Makefile
stdlib/Makefile.nt
stdlib/Makefile.shared
stdlib/StdlibModules
stdlib/arg.ml
stdlib/arg.mli
stdlib/array.ml
stdlib/array.mli
stdlib/arrayLabels.ml
stdlib/arrayLabels.mli
stdlib/buffer.ml
stdlib/buffer.mli
stdlib/callback.ml
stdlib/callback.mli
stdlib/camlinternalLazy.ml
stdlib/camlinternalLazy.mli
stdlib/camlinternalMod.ml
stdlib/camlinternalMod.mli
stdlib/camlinternalOO.ml
stdlib/camlinternalOO.mli
stdlib/char.ml
stdlib/char.mli
stdlib/complex.ml
stdlib/complex.mli
stdlib/digest.ml
stdlib/digest.mli
stdlib/filename.ml
stdlib/filename.mli
stdlib/format.ml
stdlib/format.mli
stdlib/gc.ml
stdlib/gc.mli
stdlib/genlex.ml
stdlib/genlex.mli
stdlib/hashtbl.ml
stdlib/hashtbl.mli
stdlib/header.c
stdlib/headernt.c
stdlib/int32.ml
stdlib/int32.mli
stdlib/int64.ml
stdlib/int64.mli
stdlib/lazy.ml
stdlib/lazy.mli
stdlib/lexing.ml
stdlib/lexing.mli
stdlib/list.ml
stdlib/list.mli
stdlib/listLabels.ml
stdlib/listLabels.mli
stdlib/map.ml
stdlib/map.mli
stdlib/marshal.ml
stdlib/marshal.mli
stdlib/moreLabels.ml
stdlib/moreLabels.mli
stdlib/nativeint.ml
stdlib/nativeint.mli
stdlib/obj.ml
stdlib/obj.mli
stdlib/oo.ml
stdlib/oo.mli
stdlib/parsing.ml
stdlib/parsing.mli
stdlib/pervasives.ml
stdlib/pervasives.mli
stdlib/printexc.ml
stdlib/printexc.mli
stdlib/printf.ml
stdlib/printf.mli
stdlib/queue.ml
stdlib/queue.mli
stdlib/random.ml
stdlib/random.mli
stdlib/scanf.ml
stdlib/scanf.mli
stdlib/set.ml
stdlib/set.mli
stdlib/sort.ml
stdlib/sort.mli
stdlib/stack.ml
stdlib/stack.mli
stdlib/stdLabels.ml
stdlib/stdLabels.mli
stdlib/std_exit.ml
stdlib/stdlib.mllib
stdlib/stream.ml
stdlib/stream.mli
stdlib/string.ml
stdlib/string.mli
stdlib/stringLabels.ml
stdlib/stringLabels.mli
stdlib/sys.mli
stdlib/sys.mlp
stdlib/weak.ml
stdlib/weak.mli
test/.cvsignore [deleted file]
test/.depend [deleted file]
test/test_bng.c [deleted file]
testlabl/.cvsignore [deleted file]
testlabl/coerce.diffs [deleted file]
testlabl/dirs_multimatch [deleted file]
testlabl/dirs_poly [deleted file]
testlabl/els.ml [deleted file]
testlabl/fixedtypes.ml [deleted file]
testlabl/marshal_objects.diffs [deleted file]
testlabl/multimatch.diffs [deleted file]
testlabl/multimatch.ml [deleted file]
testlabl/newlabels.ps [deleted file]
testlabl/objvariant.diffs [deleted file]
testlabl/objvariant.ml [deleted file]
testlabl/printers.ml [deleted file]
testlabl/sigsubst.ml [deleted file]
testlabl/tests.ml [deleted file]
testlabl/valvirt.diffs [deleted file]
testlabl/varunion.ml [deleted file]
testsuite/Makefile
testsuite/tests/basic/maps.ml [new file with mode: 0644]
testsuite/tests/basic/maps.reference [new file with mode: 0644]
testsuite/tests/lib-str/t01.ml
testsuite/tests/lib-threads/test2.checker
testsuite/tests/lib-threads/test3.checker
testsuite/tests/lib-threads/testsignal.checker
testsuite/tests/lib-threads/testsignal2.checker
testsuite/tests/typing-objects-bugs/pr4824_ok.ml [new file with mode: 0644]
testsuite/tests/typing-objects-bugs/pr4824a_bad.ml [new file with mode: 0644]
testsuite/tests/typing-objects/Exemples.ml.reference
testsuite/tests/typing-objects/Tests.ml.reference
testsuite/tests/typing-poly/poly.ml
testsuite/tests/typing-poly/poly.ml.principal.reference
testsuite/tests/typing-poly/poly.ml.reference
testsuite/tests/typing-polyvariants-bugs/pr5057_ok.ml [new file with mode: 0644]
testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.ml [new file with mode: 0644]
testsuite/tests/typing-private/private.ml.reference
tools/.cvsignore
tools/.depend
tools/Characters
tools/DoMake
tools/MakeDepend
tools/Makefile
tools/Makefile.nt
tools/Makefile.shared
tools/addlabels.ml
tools/checkstack.c
tools/cvt_emit.mll
tools/depend.ml
tools/depend.mli
tools/dumpapprox.ml [deleted file]
tools/dumpobj.ml
tools/lexer299.mll
tools/lexer301.mll
tools/make-package-macosx
tools/objinfo.ml
tools/objinfo_helper.c [new file with mode: 0644]
tools/ocaml-objcopy-macosx
tools/ocaml299to3.ml
tools/ocamlcp.ml
tools/ocamldep.ml
tools/ocamlmklib.mlp
tools/ocamlmktop.ml
tools/ocamlmktop.tpl
tools/ocamlprof.ml
tools/primreq.ml
tools/profiling.ml
tools/profiling.mli
tools/scrapelabels.ml
toplevel/expunge.ml
toplevel/genprintval.ml
toplevel/genprintval.mli
toplevel/opttopdirs.ml
toplevel/opttopdirs.mli
toplevel/opttoploop.ml
toplevel/opttoploop.mli
toplevel/opttopmain.ml
toplevel/opttopmain.mli
toplevel/opttopstart.ml
toplevel/topdirs.ml
toplevel/topdirs.mli
toplevel/toploop.ml
toplevel/toploop.mli
toplevel/topmain.ml
toplevel/topmain.mli
toplevel/topstart.ml
toplevel/trace.ml
toplevel/trace.mli
typing/annot.mli
typing/btype.ml
typing/btype.mli
typing/ctype.ml
typing/ctype.mli
typing/datarepr.ml
typing/datarepr.mli
typing/env.ml
typing/env.mli
typing/ident.ml
typing/ident.mli
typing/includeclass.ml
typing/includeclass.mli
typing/includecore.ml
typing/includecore.mli
typing/includemod.ml
typing/includemod.mli
typing/mtype.ml
typing/mtype.mli
typing/oprint.ml
typing/oprint.mli
typing/outcometree.mli
typing/parmatch.ml
typing/parmatch.mli
typing/path.ml
typing/path.mli
typing/predef.ml
typing/predef.mli
typing/primitive.ml
typing/primitive.mli
typing/printtyp.ml
typing/printtyp.mli
typing/stypes.ml
typing/stypes.mli
typing/subst.ml
typing/subst.mli
typing/typeclass.ml
typing/typeclass.mli
typing/typecore.ml
typing/typecore.mli
typing/typedecl.ml
typing/typedecl.mli
typing/typedtree.ml
typing/typedtree.mli
typing/typemod.ml
typing/typemod.mli
typing/types.ml
typing/types.mli
typing/typetexp.ml
typing/typetexp.mli
typing/unused_var.ml
typing/unused_var.mli
utils/ccomp.ml
utils/ccomp.mli
utils/clflags.ml
utils/clflags.mli
utils/config.mlbuild
utils/config.mli
utils/config.mlp
utils/consistbl.ml
utils/consistbl.mli
utils/misc.ml
utils/misc.mli
utils/tbl.ml
utils/tbl.mli
utils/terminfo.ml
utils/terminfo.mli
utils/warnings.ml
utils/warnings.mli
win32caml/Makefile
win32caml/inria.h
win32caml/libgraph.h
win32caml/menu.c
win32caml/ocaml.c
win32caml/startocaml.c
yacc/Makefile
yacc/Makefile.nt
yacc/closure.c
yacc/defs.h
yacc/error.c
yacc/lalr.c
yacc/lr0.c
yacc/main.c
yacc/mkpar.c
yacc/output.c
yacc/reader.c
yacc/skeleton.c
yacc/symtab.c
yacc/verbose.c
yacc/warshall.c

diff --git a/.depend b/.depend
index 316b34e93f7db72e23187dc23eec4fc40ceddb52..9c00f119bb3d1459465f69f4092490124d592120 100644 (file)
--- a/.depend
+++ b/.depend
@@ -76,7 +76,7 @@ typing/includeclass.cmi: typing/types.cmi typing/typedtree.cmi typing/env.cmi \
 typing/includecore.cmi: typing/types.cmi typing/typedtree.cmi \
     typing/ident.cmi typing/env.cmi
 typing/includemod.cmi: typing/types.cmi typing/typedtree.cmi typing/path.cmi \
-    typing/ident.cmi typing/env.cmi typing/ctype.cmi
+    typing/includecore.cmi typing/ident.cmi typing/env.cmi typing/ctype.cmi
 typing/mtype.cmi: typing/types.cmi typing/path.cmi typing/ident.cmi \
     typing/env.cmi
 typing/oprint.cmi: typing/outcometree.cmi
@@ -97,8 +97,8 @@ typing/typecore.cmi: typing/types.cmi typing/typedtree.cmi typing/path.cmi \
     parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \
     typing/ident.cmi typing/env.cmi parsing/asttypes.cmi typing/annot.cmi
 typing/typedecl.cmi: typing/types.cmi typing/path.cmi parsing/parsetree.cmi \
-    parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
-    typing/env.cmi
+    parsing/longident.cmi parsing/location.cmi typing/includecore.cmi \
+    typing/ident.cmi typing/env.cmi
 typing/typedtree.cmi: typing/types.cmi typing/primitive.cmi typing/path.cmi \
     parsing/location.cmi typing/ident.cmi typing/env.cmi parsing/asttypes.cmi
 typing/typemod.cmi: typing/types.cmi typing/typedtree.cmi \
@@ -216,17 +216,19 @@ typing/typeclass.cmx: utils/warnings.cmx typing/typetexp.cmx typing/types.cmx \
 typing/typecore.cmo: utils/warnings.cmi typing/typetexp.cmi typing/types.cmi \
     typing/typedtree.cmi typing/subst.cmi typing/stypes.cmi \
     typing/printtyp.cmi typing/primitive.cmi typing/predef.cmi \
-    typing/path.cmi parsing/parsetree.cmi typing/parmatch.cmi utils/misc.cmi \
-    parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
-    typing/env.cmi typing/ctype.cmi utils/clflags.cmi typing/btype.cmi \
-    parsing/asttypes.cmi typing/annot.cmi typing/typecore.cmi
+    typing/path.cmi parsing/parsetree.cmi typing/parmatch.cmi \
+    typing/oprint.cmi utils/misc.cmi parsing/longident.cmi \
+    parsing/location.cmi typing/ident.cmi typing/env.cmi typing/ctype.cmi \
+    utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi typing/annot.cmi \
+    typing/typecore.cmi
 typing/typecore.cmx: utils/warnings.cmx typing/typetexp.cmx typing/types.cmx \
     typing/typedtree.cmx typing/subst.cmx typing/stypes.cmx \
     typing/printtyp.cmx typing/primitive.cmx typing/predef.cmx \
-    typing/path.cmx parsing/parsetree.cmi typing/parmatch.cmx utils/misc.cmx \
-    parsing/longident.cmx parsing/location.cmx typing/ident.cmx \
-    typing/env.cmx typing/ctype.cmx utils/clflags.cmx typing/btype.cmx \
-    parsing/asttypes.cmi typing/annot.cmi typing/typecore.cmi
+    typing/path.cmx parsing/parsetree.cmi typing/parmatch.cmx \
+    typing/oprint.cmx utils/misc.cmx parsing/longident.cmx \
+    parsing/location.cmx typing/ident.cmx typing/env.cmx typing/ctype.cmx \
+    utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi typing/annot.cmi \
+    typing/typecore.cmi
 typing/typedecl.cmo: utils/warnings.cmi typing/typetexp.cmi typing/types.cmi \
     typing/typedtree.cmi typing/subst.cmi typing/printtyp.cmi \
     typing/primitive.cmi typing/predef.cmi typing/path.cmi \
@@ -472,17 +474,20 @@ bytecomp/typeopt.cmx: typing/types.cmx typing/typedtree.cmx \
     parsing/asttypes.cmi bytecomp/typeopt.cmi
 asmcomp/asmgen.cmi: bytecomp/lambda.cmi asmcomp/cmm.cmi
 asmcomp/asmlibrarian.cmi:
-asmcomp/asmlink.cmi: asmcomp/compilenv.cmi
+asmcomp/asmlink.cmi: asmcomp/cmx_format.cmi
 asmcomp/asmpackager.cmi:
 asmcomp/clambda.cmi: bytecomp/lambda.cmi typing/ident.cmi \
     asmcomp/debuginfo.cmi parsing/asttypes.cmi
 asmcomp/closure.cmi: bytecomp/lambda.cmi asmcomp/clambda.cmi
 asmcomp/cmm.cmi: typing/ident.cmi asmcomp/debuginfo.cmi
-asmcomp/cmmgen.cmi: asmcomp/compilenv.cmi asmcomp/cmm.cmi asmcomp/clambda.cmi
+asmcomp/cmmgen.cmi: asmcomp/cmx_format.cmi asmcomp/cmm.cmi \
+    asmcomp/clambda.cmi
+asmcomp/cmx_format.cmi: asmcomp/clambda.cmi
 asmcomp/codegen.cmi: asmcomp/cmm.cmi
 asmcomp/coloring.cmi:
 asmcomp/comballoc.cmi: asmcomp/mach.cmi
-asmcomp/compilenv.cmi: typing/ident.cmi asmcomp/clambda.cmi
+asmcomp/compilenv.cmi: typing/ident.cmi asmcomp/cmx_format.cmi \
+    asmcomp/clambda.cmi
 asmcomp/debuginfo.cmi: parsing/location.cmi bytecomp/lambda.cmi
 asmcomp/emit.cmi: asmcomp/linearize.cmi asmcomp/cmm.cmi
 asmcomp/emitaux.cmi: asmcomp/debuginfo.cmi
@@ -526,31 +531,35 @@ asmcomp/asmgen.cmx: bytecomp/translmod.cmx asmcomp/split.cmx \
     asmcomp/comballoc.cmx asmcomp/coloring.cmx asmcomp/cmmgen.cmx \
     asmcomp/cmm.cmx asmcomp/closure.cmx utils/clflags.cmx asmcomp/asmgen.cmi
 asmcomp/asmlibrarian.cmo: utils/misc.cmi utils/config.cmi \
-    asmcomp/compilenv.cmi utils/clflags.cmi asmcomp/clambda.cmi \
-    utils/ccomp.cmi asmcomp/asmlink.cmi asmcomp/asmlibrarian.cmi
+    asmcomp/compilenv.cmi asmcomp/cmx_format.cmi utils/clflags.cmi \
+    asmcomp/clambda.cmi utils/ccomp.cmi asmcomp/asmlink.cmi \
+    asmcomp/asmlibrarian.cmi
 asmcomp/asmlibrarian.cmx: utils/misc.cmx utils/config.cmx \
-    asmcomp/compilenv.cmx utils/clflags.cmx asmcomp/clambda.cmx \
-    utils/ccomp.cmx asmcomp/asmlink.cmx asmcomp/asmlibrarian.cmi
+    asmcomp/compilenv.cmx asmcomp/cmx_format.cmi utils/clflags.cmx \
+    asmcomp/clambda.cmx utils/ccomp.cmx asmcomp/asmlink.cmx \
+    asmcomp/asmlibrarian.cmi
 asmcomp/asmlink.cmo: bytecomp/runtimedef.cmi asmcomp/proc.cmi utils/misc.cmi \
     parsing/location.cmi asmcomp/emitaux.cmi asmcomp/emit.cmi \
     utils/consistbl.cmi utils/config.cmi asmcomp/compilenv.cmi \
-    asmcomp/cmmgen.cmi utils/clflags.cmi utils/ccomp.cmi asmcomp/asmgen.cmi \
-    asmcomp/asmlink.cmi
+    asmcomp/cmx_format.cmi asmcomp/cmmgen.cmi utils/clflags.cmi \
+    utils/ccomp.cmi asmcomp/asmgen.cmi asmcomp/asmlink.cmi
 asmcomp/asmlink.cmx: bytecomp/runtimedef.cmx asmcomp/proc.cmx utils/misc.cmx \
     parsing/location.cmx asmcomp/emitaux.cmx asmcomp/emit.cmx \
     utils/consistbl.cmx utils/config.cmx asmcomp/compilenv.cmx \
-    asmcomp/cmmgen.cmx utils/clflags.cmx utils/ccomp.cmx asmcomp/asmgen.cmx \
-    asmcomp/asmlink.cmi
+    asmcomp/cmx_format.cmi asmcomp/cmmgen.cmx utils/clflags.cmx \
+    utils/ccomp.cmx asmcomp/asmgen.cmx asmcomp/asmlink.cmi
 asmcomp/asmpackager.cmo: typing/typemod.cmi bytecomp/translmod.cmi \
     utils/misc.cmi parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi \
-    typing/env.cmi utils/config.cmi asmcomp/compilenv.cmi utils/clflags.cmi \
-    asmcomp/clambda.cmi utils/ccomp.cmi asmcomp/asmlink.cmi \
-    asmcomp/asmgen.cmi asmcomp/asmpackager.cmi
+    typing/env.cmi utils/config.cmi asmcomp/compilenv.cmi \
+    asmcomp/cmx_format.cmi utils/clflags.cmi asmcomp/clambda.cmi \
+    utils/ccomp.cmi asmcomp/asmlink.cmi asmcomp/asmgen.cmi \
+    asmcomp/asmpackager.cmi
 asmcomp/asmpackager.cmx: typing/typemod.cmx bytecomp/translmod.cmx \
     utils/misc.cmx parsing/location.cmx bytecomp/lambda.cmx typing/ident.cmx \
-    typing/env.cmx utils/config.cmx asmcomp/compilenv.cmx utils/clflags.cmx \
-    asmcomp/clambda.cmx utils/ccomp.cmx asmcomp/asmlink.cmx \
-    asmcomp/asmgen.cmx asmcomp/asmpackager.cmi
+    typing/env.cmx utils/config.cmx asmcomp/compilenv.cmx \
+    asmcomp/cmx_format.cmi utils/clflags.cmx asmcomp/clambda.cmx \
+    utils/ccomp.cmx asmcomp/asmlink.cmx asmcomp/asmgen.cmx \
+    asmcomp/asmpackager.cmi
 asmcomp/clambda.cmo: bytecomp/lambda.cmi typing/ident.cmi \
     asmcomp/debuginfo.cmi parsing/asttypes.cmi asmcomp/clambda.cmi
 asmcomp/clambda.cmx: bytecomp/lambda.cmx typing/ident.cmx \
@@ -570,13 +579,15 @@ asmcomp/cmm.cmx: typing/ident.cmx asmcomp/debuginfo.cmx asmcomp/arch.cmx \
 asmcomp/cmmgen.cmo: typing/types.cmi bytecomp/switch.cmi asmcomp/proc.cmi \
     typing/primitive.cmi utils/misc.cmi bytecomp/lambda.cmi typing/ident.cmi \
     asmcomp/debuginfo.cmi utils/config.cmi asmcomp/compilenv.cmi \
-    asmcomp/cmm.cmi utils/clflags.cmi asmcomp/clambda.cmi \
-    parsing/asttypes.cmi asmcomp/arch.cmo asmcomp/cmmgen.cmi
+    asmcomp/cmx_format.cmi asmcomp/cmm.cmi utils/clflags.cmi \
+    asmcomp/clambda.cmi parsing/asttypes.cmi asmcomp/arch.cmo \
+    asmcomp/cmmgen.cmi
 asmcomp/cmmgen.cmx: typing/types.cmx bytecomp/switch.cmx asmcomp/proc.cmx \
     typing/primitive.cmx utils/misc.cmx bytecomp/lambda.cmx typing/ident.cmx \
     asmcomp/debuginfo.cmx utils/config.cmx asmcomp/compilenv.cmx \
-    asmcomp/cmm.cmx utils/clflags.cmx asmcomp/clambda.cmx \
-    parsing/asttypes.cmi asmcomp/arch.cmx asmcomp/cmmgen.cmi
+    asmcomp/cmx_format.cmi asmcomp/cmm.cmx utils/clflags.cmx \
+    asmcomp/clambda.cmx parsing/asttypes.cmi asmcomp/arch.cmx \
+    asmcomp/cmmgen.cmi
 asmcomp/codegen.cmo: asmcomp/split.cmi asmcomp/spill.cmi asmcomp/reload.cmi \
     asmcomp/reg.cmi asmcomp/printmach.cmi asmcomp/printlinear.cmi \
     asmcomp/printcmm.cmi asmcomp/liveness.cmi asmcomp/linearize.cmi \
@@ -594,9 +605,11 @@ asmcomp/comballoc.cmo: asmcomp/reg.cmi asmcomp/mach.cmi utils/config.cmi \
 asmcomp/comballoc.cmx: asmcomp/reg.cmx asmcomp/mach.cmx utils/config.cmx \
     asmcomp/comballoc.cmi
 asmcomp/compilenv.cmo: utils/misc.cmi typing/ident.cmi typing/env.cmi \
-    utils/config.cmi asmcomp/clambda.cmi asmcomp/compilenv.cmi
+    utils/config.cmi asmcomp/cmx_format.cmi asmcomp/clambda.cmi \
+    asmcomp/compilenv.cmi
 asmcomp/compilenv.cmx: utils/misc.cmx typing/ident.cmx typing/env.cmx \
-    utils/config.cmx asmcomp/clambda.cmx asmcomp/compilenv.cmi
+    utils/config.cmx asmcomp/cmx_format.cmi asmcomp/clambda.cmx \
+    asmcomp/compilenv.cmi
 asmcomp/debuginfo.cmo: parsing/location.cmi bytecomp/lambda.cmi \
     asmcomp/debuginfo.cmi
 asmcomp/debuginfo.cmx: parsing/location.cmx bytecomp/lambda.cmx \
diff --git a/Changes b/Changes
index f7e2be0e13cfe6422dfdd64e15a29fd04affea5e..cf46fd1f9f4096f975f70831fd70018874aabee3 100644 (file)
--- a/Changes
+++ b/Changes
@@ -34,7 +34,7 @@ Language features:
   be made explicit, by writing "method!", "val!" or "inherit!" in place of
   "method", "val" and "inherit". It is an error to override an
   undefined member (or to use overriding inheritance when nothing get
-  overriden). Additionally, these constructs disactivate respectively
+  overridden). Additionally, these constructs disactivate respectively
   warnings 7 (method override, code 'M') and 13 (instance variable
   override, code 'V'). Note that, by default, warning 7 is inactive
   and warning 13 is active.
@@ -44,7 +44,12 @@ Language features:
   inside the signature, removing their respective fields. Among other
   uses, this allows to merge two signatures containing identically
   named fields.
-
+* While fixing PR#4824, also corrected a gaping hole in the type checker,
+  which allowed instantiating separately object parameters and instance
+  variables in an interface. This hole was here since the beginning of
+  ocaml, and as a result many programs using object inheritance in a non
+  trivial way will need to be corrected. You can look at lablgtk2 for an
+  example.
 
 Compilers and toplevel:
 - Warnings are now numbered and can be switched on and off individually.
@@ -69,6 +74,10 @@ Compilers and toplevel:
   This option can help working around mysterious type incompatibilities
   caused by the incomplete comparison of applicative paths F(X).t.
 
+Native-code compiler:
+- AMD64: shorter and slightly more efficient code generated for 
+  float comparisons.
+
 Standard library:
 - Format: new function ikfprintf analoguous to ifprintf with a continuation
   argument.
@@ -80,17 +89,42 @@ Standard library:
   low level input, value Scanf.stdin has been added.
 * Random: changed the algorithm to produce better randomness.  Now passes the
   DieHard tests.
+- Map: implement functions from Set that make sense for Map.
+
+Other libraries:
+* Str: letters that constitute a word now include digits 0-9 and
+  underscore _.  This changes the interpretation of '\b' (word boundary)
+  in regexps, but is more consistent with other regexp libraries. (PR#4874).
 
 Ocamlbuild:
 - Add support for native dynlink.
 
+New tool:
+- ocamlobjinfo: displays various information, esp. dependencies, for
+  compiled OCaml files (.cmi, .cmo, .cma, .cmx, .cmxa, .cmxs, and bytecode
+  executables).  Extends and makes more official the old objinfo tool
+  that was installed by some OCaml packages.
+
+All tools:
+- PR#4857: add a -vnum option to display the version number and nothing else
+
 Bug Fixes:
+- PR#4012: Map.map and Map.mapi do not conform to specification
+- PR#4478: better error messages for type definition mismatches
+- PR#4683: labltk script uses fixed path on windows
+- PR#4742: finalisation function raising an exception blocks other finalisations
 - PR#4775: compiler crash on crazy types (temporary fix)
+- PR#4824: narrowing the type of class parameters with a module specification
+- PR#4862: relaxed value restriction and records
+- PR#4884: optional arguments do not work when Some is redefined
+- PR#4964: parenthesized names for infix functions in annot files
 - PR#4970: better error message for instance variables
+- PR#4975: spelling mistakes
 - PR#4988: contravariance lost with ocamlc -i
 - PR#5004: problem in Buffer.add_channel with very large lengths.
 - PR#5008: on AMD64/MSVC port, rare float corruption during GC.
 - PR#5018: wrong exception raised by Dynlink.loadfile.
+- PR#5057: fatal typing error with local module + functor + polymorphic variant
 - Wrong type for Obj.add_offset.
 - Small problem with the representation of Int32, Int64, and Nativeint constants.
 
@@ -963,7 +997,7 @@ Type-checking:
   type of any subexpression in the source file.  Works even in the case
   of a type error (all the types computed up to the error are available).
   This new feature is also supported by ocamlbrowser.
-- Disable "method is overriden" warning when the method was explicitly
+- Disable "method is overridden" warning when the method was explicitly
   redefined as virtual beforehand (i.e. not through inheritance). Typing
   and semantics are unchanged.
 
@@ -2589,4 +2623,4 @@ Caml Special Light 1.06:
 
 * First public release.
 
-$Id$
+$Id: Changes 10566 2010-06-16 01:32:26Z garrigue $
diff --git a/INSTALL b/INSTALL
index 0f1ed5335bc24a2dcaca1d0aeddcbc2f8654d687..cc88e26b37c29fa877e57dfb470c8bdee86c6426 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -26,6 +26,11 @@ PREREQUISITES
   are all *required*.  The vendor-provided compiler, assembler and make
   have major problems.
 
+* GNU make is needed to build ocamlbuild and camlp4.  If your system's
+  default make is not GNU make, you need to define the GNUMAKE environment
+  variable to the name of GNU make, typically with this command:
+
+    export GNUMAKE=gnumake
 
 INSTALLATION INSTRUCTIONS
 
index cc96068fd88f3f450a6164d1976191da68a7970b..7b777da3f508978a7b5751e7433677236ce5a074 100644 (file)
--- a/Makefile
+++ b/Makefile
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 10566 2010-06-16 01:32:26Z garrigue $
 
 # The main Makefile
 
 include config/Makefile
 include stdlib/StdlibModules
 
-CAMLC=boot/ocamlrun boot/ocamlc -strict-sequence -nostdlib -I boot
-CAMLOPT=boot/ocamlrun ./ocamlopt -strict-sequence -nostdlib -I stdlib -I otherlibs/dynlink
-COMPFLAGS=-warn-error A $(INCLUDES)
+CAMLC=boot/ocamlrun boot/ocamlc -nostdlib -I boot
+CAMLOPT=boot/ocamlrun ./ocamlopt -nostdlib -I stdlib -I otherlibs/dynlink
+COMPFLAGS=-strict-sequence -warn-error A $(INCLUDES)
 LINKFLAGS=
 
 CAMLYACC=boot/ocamlyacc
@@ -267,6 +267,10 @@ opt.opt: checkstack runtime core ocaml opt-core ocamlc.opt otherlibraries \
         otherlibrariesopt \
         ocamllex.opt ocamltoolsopt.opt ocamlbuild.native camlp4opt ocamldoc.opt
 
+base.opt: checkstack runtime core ocaml opt-core ocamlc.opt otherlibraries \
+        ocamlbuild.byte camlp4out $(DEBUGGER) ocamldoc ocamlopt.opt \
+        otherlibrariesopt
+
 # Installation
 install:
        if test -d $(BINDIR); then : ; else $(MKDIR) $(BINDIR); fi
@@ -620,10 +624,10 @@ clean::
 
 # Tools
 
-ocamltools: ocamlc ocamlyacc ocamllex
+ocamltools: ocamlc ocamlyacc ocamllex asmcomp/cmx_format.cmi
        cd tools; $(MAKE) all
 
-ocamltoolsopt.opt: ocamlc.opt ocamlyacc ocamllex
+ocamltoolsopt.opt: ocamlc.opt ocamlyacc ocamllex asmcomp/cmx_format.cmi
        cd tools; $(MAKE) opt.opt
 
 partialclean::
index 22028e6466c31326e422239f791e0f71cd68ce40..d9a95eefb3ef3e40c863965b3ee84039c0373ff7 100644 (file)
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 10472 2010-05-28 11:21:46Z garrigue $
 
 # The main Makefile
 
 include config/Makefile
 include stdlib/StdlibModules
 
-CAMLC=boot/ocamlrun boot/ocamlc -I boot
-CAMLOPT=boot/ocamlrun ./ocamlopt -I stdlib -I otherlibs/dynlink
-COMPFLAGS=$(INCLUDES)
+CAMLC=boot/ocamlrun boot/ocamlc -nostdlib -I boot
+CAMLOPT=boot/ocamlrun ./ocamlopt -nostdlib -I stdlib -I otherlibs/dynlink
+COMPFLAGS=-strict-sequence -warn-error A $(INCLUDES)
 LINKFLAGS=
 CAMLYACC=boot/ocamlyacc
 YACCFLAGS=
@@ -206,11 +206,15 @@ cleanboot:
        rm -rf boot/Saved/Saved.prev/*
 
 # Compile the native-code compiler
-opt: runtimeopt ocamlopt libraryopt otherlibrariesopt ocamlbuildlib.native
+opt-core: runtimeopt ocamlopt libraryopt
+opt: opt-core otherlibrariesopt ocamlbuildlib.native
 
 # Native-code versions of the tools
-opt.opt: ocamlc.opt ocamlopt.opt ocamllex.opt ocamltoolsopt.opt \
-       ocamlbuild.native camlp4opt ocamldoc.opt
+opt.opt: core opt-core ocamlc.opt all ocamlopt.opt ocamllex.opt \
+        ocamltoolsopt.opt ocamlbuild.native camlp4opt ocamldoc.opt
+
+# Complete build using fast compilers
+world.opt: coldstart opt.opt
 
 # Installation
 install: installbyt installopt
@@ -377,6 +381,9 @@ beforedepend:: parsing/linenum.ml
 ocamlc.opt: $(COMPOBJS:.cmo=.cmx)
        cd asmrun ; $(MAKEREC) meta.$(O) dynlink.$(O)
        $(CAMLOPT) $(LINKFLAGS) -o ocamlc.opt $(COMPOBJS:.cmo=.cmx) asmrun/meta.$(O) asmrun/dynlink.$(O)
+       @sed -e 's|@compiler@|$$topdir/ocamlc.opt|' \
+         driver/ocamlcomp.sh.in > ocamlcomp.sh
+       @chmod +x ocamlcomp.sh
 
 partialclean::
        rm -f ocamlc.opt
@@ -385,6 +392,9 @@ partialclean::
 
 ocamlopt.opt: $(OPTOBJS:.cmo=.cmx)
        $(CAMLOPT) $(LINKFLAGS) -o ocamlopt.opt $(OPTOBJS:.cmo=.cmx)
+       @sed -e 's|@compiler@|$$topdir/ocamlopt.opt|' \
+         driver/ocamlcomp.sh.in > ocamlcompopt.sh
+       @chmod +x ocamlcompopt.sh
 
 partialclean::
        rm -f ocamlopt.opt
@@ -551,9 +561,9 @@ clean::
 
 # Tools
 
-ocamltools:
+ocamltools: asmcomp/cmx_format.cmi
        cd tools ; $(MAKEREC) all
-ocamltoolsopt.opt:
+ocamltoolsopt.opt: asmcomp/cmx_format.cmi
        cd tools ; $(MAKEREC) opt.opt
 partialclean::
        cd tools ; $(MAKEREC) clean
@@ -596,23 +606,23 @@ alldepend::
 # Camlp4
 
 camlp4out: ocamlc otherlibraries ocamlbuild-mixed-boot ocamlbuild.byte
-       ./build/camlp4-byte-only.sh
+       OCAMLBUILD_FIND=/usr/bin/find ./build/camlp4-byte-only.sh
 camlp4opt: ocamlopt otherlibrariesopt ocamlbuild-mixed-boot ocamlbuild.native
-       ./build/camlp4-native-only.sh
+       OCAMLBUILD_FIND=/usr/bin/find ./build/camlp4-native-only.sh
 
 # Ocamlbuild
 
 ocamlbuild.byte: ocamlc otherlibraries ocamlbuild-mixed-boot
-       ./build/ocamlbuild-byte-only.sh
+       OCAMLBUILD_FIND=/usr/bin/find ./build/ocamlbuild-byte-only.sh
 ocamlbuild.native: ocamlopt otherlibrariesopt ocamlbuild-mixed-boot
-       ./build/ocamlbuild-native-only.sh
+       OCAMLBUILD_FIND=/usr/bin/find ./build/ocamlbuild-native-only.sh
 ocamlbuildlib.native: ocamlopt otherlibrariesopt ocamlbuild-mixed-boot
-       ./build/ocamlbuildlib-native-only.sh
+       OCAMLBUILD_FIND=/usr/bin/find ./build/ocamlbuildlib-native-only.sh
 
 
 .PHONY: ocamlbuild-mixed-boot
 ocamlbuild-mixed-boot:
-       ./build/mixed-boot.sh
+       OCAMLBUILD_FIND=/usr/bin/find ./build/mixed-boot.sh
 partialclean::
        rm -rf _build
 
diff --git a/README b/README
index c0670ea677ed09444f2eedaa22da9932a6b4e94c..0f9505fd6d39e0e63af012433dd21cbbd2bb0035 100644 (file)
--- a/README
+++ b/README
@@ -135,4 +135,4 @@ You can also contact the implementors directly at caml@inria.fr.
 
 
 ----
-$Id$
+$Id: README 9547 2010-01-22 12:48:24Z doligez $
index 46fec15790d108d473944312d9bef34e551b8a50..a103630f7d15e767b074ff43a34f5fb07c70e1c1 100644 (file)
@@ -49,22 +49,18 @@ The remainder of this document gives more information on each port.
 
 REQUIREMENTS:
 
-This port runs under MS Windows Vista, XP, and 2000.
+This port runs under MS Windows 7, Vista, XP, and 2000.
 
 The base bytecode system (ocamlc, ocaml, ocamllex, ocamlyacc, ...)
 runs without any additional tools.
 
-Statically linking Caml bytecode with C code (ocamlc -custom) requires the
-Microsoft Visual C++ compiler (items [1] and [2] in the section
-"third-party software" below) and the flexdll tool (item [5]).
-
-The native-code compiler (ocamlopt) requires Visual C++ (items [1], [2]),
-the Microsoft assembler MASM (item [3]) and the flexdll tool (item [5]).
+The native-code compiler (ocamlopt) requires the Microsoft Windows SDK
+(item [1]) and the flexdll tool (item [3]).
 
-Instead of items [1], [2] and [3], it is possible to use item [6] which contains
-everything needed.
+Statically linking Caml bytecode with C code (ocamlc -custom) also requires
+items [1] and [3].
 
-The LablTk GUI requires Tcl/Tk 8.5 (item [4]).
+The LablTk GUI requires Tcl/Tk 8.5 (item [2]).
 
 
 INSTALLATION:
@@ -79,53 +75,60 @@ installer) must be added to the PATH environment variable.
 To compile programs that use the LablTK GUI, the directory where the
 libraries tk85.lib and tcl85.lib were installed (by the Tcl/Tk
 installer) must be added to the library search path in the LIB
-environment variable.  E.g. if Tcl/Tk was installed in C:\tcl, add
-"C:\tcl\lib" to the LIB environment variable.
+environment variable.  E.g. if Tcl/Tk was installed in C:\Tcl, add
+"C:\Tcl\lib" to the LIB environment variable.
 
 THIRD-PARTY SOFTWARE:
 
-[1] Visual C++ version 2008, 2005, 2003, or 6.
-    We use Visual C++ 2008 Express Edition, which can be downloaded for free
-    from http://www.microsoft.com.
+[1] Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1.
+    Can be downloaded for free from
+    http://www.microsoft.com/downloads/en/default.aspx
+    under the name "Microsoft Windows 7 SDK".
 
-[2] Windows header files and development libraries.  They are included
-    in the Visual C++ 2008 Express Edition distribution.
-    Otherwise, you can find them in the Windows Platform SDK,
-    which can be downloaded for free from http://www.microsoft.com/.
-
-[3] MASM version 6.11 or later. The full distribution of Visual C++ 2005
-    or 2008 contains MASM version 8.  Users of the Express Edition of Visual C++
-    2005 can download MASM version 8 from
-http://www.microsoft.com/downloads/details.aspx?FamilyID=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en
-    To obtain MASM version 6.11, see
-    http://users.easystreet.com/jkirwan/new/pctools.html.
-
-[4] TCL/TK version 8.5.  Windows binaries are available as part of the
+[2] TCL/TK version 8.5.  Windows binaries are available as part of the
     ActiveTCL distribution at http://www.activestate.com/products/ActiveTcl/
 
-[5] flexdll.
+[3] flexdll version 0.23 or later.
     Can be downloaded from http://alain.frisch.fr/flexdll.html
 
-[6] Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1
-
 
 RECOMPILATION FROM THE SOURCES:
 
 The command-line tools can be recompiled from the Unix source
-distribution (ocaml-X.YZ.tar.gz), which also contains the files modified
+distribution (ocaml-X.YY.Z.tar.gz), which also contains the files modified
 for Windows.
 
 You will need the following software components to perform the recompilation:
-- Windows NT, 2000, XP, or Vista.
-- Items [1], [2], [3], [4] and [5] from the list of recommended software above.
+- Windows NT, 2000, XP, Vista, or 7.
+- Items [1], [2] and [3] from the list of recommended software above.
 - The Cygwin port of GNU tools, available from http://www.cygwin.com/
   Install at least the following packages: diffutils, make, ncurses.
 
-Remember to add the directory where the libraries tk84.lib and
-tcl84.lib were installed (by the Tcl/Tk installer) to the LIB variable
-(library search path).
+First, you need to set up your cygwin environment for using the MS
+tools.  The following assumes that you have installed [1], [2], and [3]
+in their default directories.  If this is not the case, you will need
+to adjust the paths accordingly.
 
-To recompile, start a Cygwin shell and change to the top-level
+  Open a Windows Command Prompt and enter the following commands:
+    cd "C:\Program Files\Visual Studio 9.0\VC\bin"
+    vcvars32
+    echo VCPATH="`cygpath -p '%Path%'`" >C:\cygwin\tmp\msenv
+    echo LIB="%LIB%;C:\Tcl\lib" >>C:\cygwin\tmp\msenv
+    echo LIBPATH="%LIBPATH%" >>C:\cygwin\tmp\msenv
+    echo INCLUDE="%INCLUDE%;C:\Tcl\include" >>C:\cygwin\tmp\msenv
+    echo FLPATH="`cygpath 'C:\Program Files\flexdll'`" >>C:\cygwin\tmp\msenv
+
+  Open a Cygwin shell and enter the following commands:
+    tr -d '\r' </tmp/msenv >.msenv
+    echo '. $HOME/.msenv' >>.bashrc
+    echo 'PATH="${VCPATH}:$PATH:${FLPATH}"' >>.bashrc
+    echo 'export PATH LIB LIBPATH INCLUDE' >>.bashrc
+
+Now, close the Command Prompt and the shell and you're set up for
+using the MS tools under Cygwin.
+
+
+To recompile OCaml, start a new Cygwin shell and change to the top-level
 directory of the OCaml distribution.  Then, do
 
         cp config/m-nt.h config/m.h
@@ -145,11 +148,6 @@ Finally, use "make -f Makefile.nt" to build the system, e.g.
         make -f Makefile.nt opt.opt
         make -f Makefile.nt install
 
-Alternatively you can use the experimental build procedure using ocamlbuild:
-
-        ./build/fastworld.sh
-        ./build/install.sh
-
 NOTES:
 
 * The VC++ compiler does not implement "computed gotos", and therefore
diff --git a/VERSION b/VERSION
index 58fc0bdc1d82b3ef0a69dc8202cc805c94026b93..7c40b26f0c808dea47967fd7d7501d3e86ce837c 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
-3.12.0+dev23 (2010-05-12)
+3.12.0+beta1
 
 # The version string is the first line of this file.
 # It must be in the format described in stdlib/sys.mli
 
-# $Id$
+# $Id: VERSION 10582 2010-06-16 11:24:09Z doligez $
diff --git a/_tags b/_tags
index a3b545706c34c60ce73ce38b1756268636c1e0e5..052d8aee1956c277def3e18c403219de646b9418 100644 (file)
--- a/_tags
+++ b/_tags
@@ -21,6 +21,8 @@ true: use_stdlib
 
 <**/*.ml*>: warn_error_A
 
+<{bytecomp,driver,stdlib,tools,asmcomp,toplevel,typing,utils,lex,parsing}/**>: strict_sequence
+
 "toplevel/topstart.byte": linkall
 
 <ocamldoc/**>: -debug
@@ -33,7 +35,6 @@ true: use_stdlib
 "camlp4/Camlp4_import.ml": -warn_Z
 <camlp4/build/*> or <camlp4/boot/*> or "camlp4/Camlp4/Struct/Lexer.ml": -camlp4boot, -warn_Z, warn_a
 <camlp4/Camlp4Bin.{byte,native}> or <camlp4/{mkcamlp4,boot/camlp4boot}.byte>: use_dynlink
-"camlp4/Camlp4/Printers/OCaml.ml" or "camlp4/Camlp4/Printers/OCamlr.ml": -warn_Z, warn_v
 <camlp4/Camlp4Printers/**.ml>: include_unix
 "camlp4/Camlp4/Struct/DynLoader.ml" or "camlp4/boot/Camlp4.ml": include_dynlink
 <camlp4/Camlp4Top/**>: include_toplevel
@@ -48,7 +49,7 @@ true: use_stdlib
 
 "tools/addlabels.ml": warn_s
 
-<debugger/main.byte> or <debugger/main.native>: use_unix, use_dynlink, linkall
+<debugger/main.byte> or <debugger/main.native>: use_unix, linkall
 <debugger/*.ml*>: include_unix
 
 <otherlibs/{,win32}unix/unix.cm{,x}a> or <otherlibs/str/str.cm{,x}a>: ocamlmklib
index 52d1f11b1b8349894c82183ea12ccfb80957a67b..773397c127b47e06dcc685ecf5f79b6851fe59d6 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *)
 
 (* Specific operations for the Alpha processor *)
 
index 6857da04ef9ab280029a238853130088bead5fa5..3de1c01ad7fa36cb8dd4743db1134287d3605a46 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 9547 2010-01-22 12:48:24Z doligez $ *)
 
 module LabelSet =
   Set.Make(struct type t = Linearize.label let compare = compare end)
index 93c2422f61df34d0aff94fddb2ea8908e9eb1eac..ce2b651ab454d96fcbeb11a6b334da7896d3f126 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 10268 2010-04-18 09:02:40Z xleroy $ *)
 
 (* Description of the Alpha processor *)
 
index 53f7b183c93dcdee008db18a6f079e3f398450fc..e95a99098c8bdf5d50db03d5045065af00fd1b04 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Reloading for the Alpha *)
 
index f59c26ed582838b827f001927c9ac96038585fc6..3f6ca8af2225260873ba1a582c58c96db5f5a5d6 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 open Arch
 open Mach
index d91ec5bdf86a05649a529de89417ffcd1e27f748..1cd0d559e0e0e870924617c03ffd7de09020006c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 10296 2010-04-22 12:51:06Z xleroy $ *)
 
 (* Instruction selection for the Alpha processor *)
 
index 3e8f4b1113361711c16e1b103efbf7392bd7ea56..fe52e54d3425fa680f82866fad7aab7e0a102e35 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 7784 2007-01-01 13:07:35Z xleroy $ *)
 
 (* Machine-specific command-line options *)
 
index b1f886da9cc7cca243cce6df74cbeb0cbc054749..55da47b5fad5c94f6bea6e7d2ecf505c655d4391 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 10488 2010-06-02 08:55:35Z xleroy $ *)
 
 (* Emission of x86-64 (AMD 64) assembly code *)
 
@@ -270,40 +270,50 @@ let output_test_zero arg =
 (* Output a floating-point compare and branch *)
 
 let emit_float_test cmp neg arg lbl =
-  begin match cmp with
-  | Ceq | Cne -> `     ucomisd `
-  | _         -> `     comisd  `
-  end;
-  `{emit_reg arg.(1)}, {emit_reg arg.(0)}\n`;
-  let (branch_opcode, need_jp) =
-    match (cmp, neg) with
-      (Ceq, false) -> ("je", true)
-    | (Ceq, true)  -> ("jne", true)
-    | (Cne, false) -> ("jne", true)
-    | (Cne, true)  -> ("je", true)
-    | (Clt, false) -> ("jb", true)
-    | (Clt, true)  -> ("jae", true)
-    | (Cle, false) -> ("jbe", true)
-    | (Cle, true)  -> ("ja", true)
-    | (Cgt, false) -> ("ja", false)
-    | (Cgt, true)  -> ("jbe", false)
-    | (Cge, false) -> ("jae", true)
-    | (Cge, true)  -> ("jb", false) in
-  let branch_if_not_comparable =
-    if cmp = Cne then not neg else neg in
-  if need_jp then
-    if branch_if_not_comparable then begin
-      `        jp      {emit_label lbl}\n`;
-      `        {emit_string branch_opcode}     {emit_label lbl}\n`
-    end else begin
+  (* Effect of comisd on flags and conditional branches:
+                     ZF PF CF  cond. branches taken
+        unordered     1  1  1  je, jb, jbe, jp
+        >             0  0  0  jne, jae, ja
+        <             0  0  1  jne, jbe, jb
+        =             1  0  0  je, jae, jbe.
+     If FP traps are on (they are off by default),
+     comisd traps on QNaN and SNaN but ucomisd traps on SNaN only.
+  *)
+  match (cmp, neg) with
+  | (Ceq, false) | (Cne, true) ->
       let next = new_label() in
-      `        jp      {emit_label next}\n`;
-      `        {emit_string branch_opcode}     {emit_label lbl}\n`;
+      `        ucomisd {emit_reg arg.(1)}, {emit_reg arg.(0)}\n`;
+      `        jp      {emit_label next}\n`;    (* skip if unordered *)
+      `        je      {emit_label lbl}\n`;     (* branch taken if x=y *)
       `{emit_label next}:\n`
-    end
-  else begin
-    `  {emit_string branch_opcode}     {emit_label lbl}\n`
-  end
+  | (Cne, false) | (Ceq, true) ->
+      `        ucomisd {emit_reg arg.(1)}, {emit_reg arg.(0)}\n`;
+      `        jp      {emit_label lbl}\n`;     (* branch taken if unordered *)
+      `        jne     {emit_label lbl}\n`      (* branch taken if x<y or x>y *)
+  | (Clt, _) ->
+      ` comisd {emit_reg arg.(0)}, {emit_reg arg.(1)}\n`;  (* swap compare *)
+      if not neg then
+      `        ja      {emit_label lbl}\n`     (* branch taken if y>x i.e. x<y *)
+      else
+      `        jbe     {emit_label lbl}\n` (* taken if unordered or y<=x i.e. !(x<y) *)
+  | (Cle, _) ->
+      ` comisd {emit_reg arg.(0)}, {emit_reg arg.(1)}\n`;  (* swap compare *)
+      if not neg then
+      `        jae     {emit_label lbl}\n`     (* branch taken if y>=x i.e. x<=y *)
+      else
+      `        jb      {emit_label lbl}\n` (* taken if unordered or y<x i.e. !(x<=y) *)
+  | (Cgt, _) ->
+      ` comisd {emit_reg arg.(1)}, {emit_reg arg.(0)}\n`;
+      if not neg then
+      `        ja      {emit_label lbl}\n`     (* branch taken if x>y *)
+      else
+      `        jbe     {emit_label lbl}\n` (* taken if unordered or x<=y i.e. !(x>y) *)
+  | (Cge, _) ->
+      ` comisd {emit_reg arg.(1)}, {emit_reg arg.(0)}\n`;  (* swap compare *)
+      if not neg then
+      `        jae     {emit_label lbl}\n`     (* branch taken if x>=y *)
+      else
+      `        jb      {emit_label lbl}\n` (* taken if unordered or x<y i.e. !(x>=y) *)
 
 (* Deallocate the stack frame before a return or tail call *)
 
@@ -731,19 +741,14 @@ let data l =
 let begin_assembly() =
   if !Clflags.dlcode then begin
     (* from amd64.S; could emit these constants on demand *)
-    if macosx then begin
-        `      .literal16\n`;
-        `      .align  4\n`;
-        `caml_negf_mask:       .quad   0x8000000000000000, 0\n`;
-        `      .align  4\n`;
-        `caml_absf_mask:       .quad   0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF\n`;
-    end else begin
+    if macosx then
+        `      .literal16\n`
+    else
         `      .section        .rodata.cst8,\"a\",@progbits\n`;
-        `      .align  16\n`;
-        `caml_negf_mask:       .quad   0x8000000000000000, 0\n`;
-        `      .align  16\n`;
-        `caml_absf_mask:       .quad   0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF\n`;
-    end;
+    emit_align 16;
+    `{emit_symbol "caml_negf_mask"}:   .quad   0x8000000000000000, 0\n`;
+    emit_align 16;
+    `{emit_symbol "caml_absf_mask"}:   .quad   0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF\n`
   end;
   let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
   `    .data\n`;
index 23c5b34ec302bd10fe31dec6a7b1281c9e5e1404..60b5400ea687d55ea280694dfa521e09c4289189 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit_nt.mlp 10460 2010-05-24 15:26:23Z xleroy $ *)
 
 (* Emission of x86-64 (AMD 64) assembly code, MASM syntax *)
 
@@ -264,40 +264,50 @@ let output_test_zero arg =
 (* Output a floating-point compare and branch *)
 
 let emit_float_test cmp neg arg lbl =
-  begin match cmp with
-  | Ceq | Cne -> `     ucomisd `
-  | _         -> `     comisd  `
-  end;
-  `{emit_reg arg.(0)}, {emit_reg arg.(1)}\n`;
-  let (branch_opcode, need_jp) =
-    match (cmp, neg) with
-      (Ceq, false) -> ("je", true)
-    | (Ceq, true)  -> ("jne", true)
-    | (Cne, false) -> ("jne", true)
-    | (Cne, true)  -> ("je", true)
-    | (Clt, false) -> ("jb", true)
-    | (Clt, true)  -> ("jae", true)
-    | (Cle, false) -> ("jbe", true)
-    | (Cle, true)  -> ("ja", true)
-    | (Cgt, false) -> ("ja", false)
-    | (Cgt, true)  -> ("jbe", false)
-    | (Cge, false) -> ("jae", true)
-    | (Cge, true)  -> ("jb", false) in
-  let branch_if_not_comparable =
-    if cmp = Cne then not neg else neg in
-  if need_jp then
-    if branch_if_not_comparable then begin
-      `        jp      {emit_label lbl}\n`;
-      `        {emit_string branch_opcode}     {emit_label lbl}\n`
-    end else begin
+  (* Effect of comisd on flags and conditional branches:
+                     ZF PF CF  cond. branches taken
+        unordered     1  1  1  je, jb, jbe, jp
+        >             0  0  0  jne, jae, ja
+        <             0  0  1  jne, jbe, jb
+        =             1  0  0  je, jae, jbe.
+     If FP traps are on (they are off by default),
+     comisd traps on QNaN and SNaN but ucomisd traps on SNaN only.
+  *)
+  match (cmp, neg) with
+  | (Ceq, false) | (Cne, true) ->
       let next = new_label() in
-      `        jp      {emit_label next}\n`;
-      `        {emit_string branch_opcode}     {emit_label lbl}\n`;
+      `        ucomisd {emit_reg arg.(0)}, {emit_reg arg.(1)}\n`;
+      `        jp      {emit_label next}\n`;    (* skip if unordered *)
+      `        je      {emit_label lbl}\n`;     (* branch taken if x=y *)
       `{emit_label next}:\n`
-    end
-  else begin
-    `  {emit_string branch_opcode}     {emit_label lbl}\n`
-  end
+  | (Cne, false) | (Ceq, true) ->
+      `        ucomisd {emit_reg arg.(0)}, {emit_reg arg.(1)}\n`;
+      `        jp      {emit_label lbl}\n`;     (* branch taken if unordered *)
+      `        jne     {emit_label lbl}\n`      (* branch taken if x<y or x>y *)
+  | (Clt, _) ->
+      ` comisd {emit_reg arg.(1)}, {emit_reg arg.(0)}\n`;  (* swap compare *)
+      if not neg then
+      `        ja      {emit_label lbl}\n`     (* branch taken if y>x i.e. x<y *)
+      else
+      `        jbe     {emit_label lbl}\n` (* taken if unordered or y<=x i.e. !(x<y) *)
+  | (Cle, _) ->
+      ` comisd {emit_reg arg.(1)}, {emit_reg arg.(0)}\n`;  (* swap compare *)
+      if not neg then
+      `        jae     {emit_label lbl}\n`     (* branch taken if y>=x i.e. x<=y *)
+      else
+      `        jb      {emit_label lbl}\n` (* taken if unordered or y<x i.e. !(x<=y) *)
+  | (Cgt, _) ->
+      ` comisd {emit_reg arg.(0)}, {emit_reg arg.(1)}\n`;
+      if not neg then
+      `        ja      {emit_label lbl}\n`     (* branch taken if x>y *)
+      else
+      `        jbe     {emit_label lbl}\n` (* taken if unordered or x<=y i.e. !(x>y) *)
+  | (Cge, _) ->
+      ` comisd {emit_reg arg.(0)}, {emit_reg arg.(1)}\n`;  (* swap compare *)
+      if not neg then
+      `        jae     {emit_label lbl}\n`     (* branch taken if x>=y *)
+      else
+      `        jb      {emit_label lbl}\n` (* taken if unordered or x<y i.e. !(x>=y) *)
 
 (* Deallocate the stack frame before a return or tail call *)
 
index 4ba0d5c3ec29a05547e9ba273e211c92bff3a801..2abe5216f982cf4042e76d3c730715d9d18906f4 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Description of the AMD64 processor *)
 
index 5c90e4f52ebd82434fafaffd45308d937ef3ec3a..14b1b105b897af69a82e4a95bfa447b113f5865d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc_nt.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Description of the AMD64 processor with Win64 conventions *)
 
index 50b962f89152b74b59e97dd4987870b59e157837..46588a9b9a293fce72dc60dca746275212f0c71b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 10460 2010-05-24 15:26:23Z xleroy $ *)
 
 open Cmm
 open Arch
@@ -49,7 +49,7 @@ open Mach
    Conditional branches:
      Iinttest                           S       R
                                     or  R       S
-     Ifloattest                         R       S
+     Ifloattest                         R       S    (or  S R if swapped test)
      other tests                        S
 *)
 
@@ -64,7 +64,7 @@ inherit Reloadgen.reload_generic as super
 
 method! reload_operation op arg res =
   match op with
-    Iintop(Iadd|Isub|Iand|Ior|Ixor|Icomp _|Icheckbound) ->
+  | Iintop(Iadd|Isub|Iand|Ior|Ixor|Icomp _|Icheckbound) ->
       (* One of the two arguments can reside in the stack, but not both *)
       if stackp arg.(0) && stackp arg.(1)
       then ([|arg.(0); self#makereg arg.(1)|], res)
@@ -106,7 +106,13 @@ method! reload_test tst arg =
       if stackp arg.(0) && stackp arg.(1)
       then [| self#makereg arg.(0); arg.(1) |]
       else arg
-  | Ifloattest(_, _) ->
+  | Ifloattest((Clt|Cle), _) ->
+      (* Cf. emit.mlp: we swap arguments in this case *)
+      (* First argument can be on stack, second must be in register *)
+      if stackp arg.(1)
+      then [| arg.(0); self#makereg arg.(1) |]
+      else arg
+  | Ifloattest((Ceq|Cne|Cgt|Cge), _) ->
       (* Second argument can be on stack, first must be in register *)
       if stackp arg.(0)
       then [| self#makereg arg.(0); arg.(1) |]
index faf0353ed6378dff5cbe09c3db5133feaf65cda9..aeecf9e36a46b3c5a0e8e29176a328293338d715 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 5634 2003-06-30 08:28:48Z xleroy $ *)
 
 open Schedgen (* to create a dependency *)
 
index 4921e5110aab46a3fac4dad2865bd1600db229a8..f0546cf8b8cd5c656c398b7009c719c3a09ac44b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 (* Instruction selection for the AMD64 *)
 
index aafb094b72b16aebe94289f96fa114f088022e91..998fa4bb7a4403bbdea1b6549ea9e9025f424e60 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *)
 
 (* Specific operations for the ARM processor *)
 
index cfcb0c94fbdc2faa465929e92f8094cd39c034f3..200331391bc1ec62898d499e6f9ac6742c2013aa 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 10293 2010-04-22 09:33:18Z xleroy $ *)
 
 (* Emission of ARM assembly code *)
 
index 06b085b4df6eb0e8445696ec228eef7eb1dc1ccf..e56ac6e414ed3482923bc8b7b1778886205008b6 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 9252 2009-05-04 13:46:46Z xleroy $ *)
 
 (* Description of the ARM processor *)
 
index 65d8118179420333db91f5b7200029bcd4dd326e..09174387396adc9e91814e38aa7bc4bbaa91e921 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Reloading for the ARM *)
 
index 8f49ad1eefc8080b376cbd640c61590e22644d99..930e1bc2e6c6a83c7d5b95d5ae5cdc32110a03aa 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 open Mach
 
index 1574bf01e7b6f77d2be5051c91bc7f8c78bf62be..f09d146b642fc95198061ca4db4f1a8f8d6a0a56 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 10295 2010-04-22 12:39:40Z xleroy $ *)
 
 (* Instruction selection for the ARM processor *)
 
index 9cdf61f40cc810ac29133ec42656fac4aa4c3ad6..8f70d1d1cdaba8941c29bc28392e21b84fb6a5cd 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asmgen.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* From lambda to assembly code *)
 
index fe578bd4f548ca03772c0ceb866e595e36c5168c..19a79c84e1a45318ffb07873bbbd6d311b837f8f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asmgen.mli 8477 2007-11-06 15:16:56Z frisch $ *)
 
 (* From lambda to assembly code *)
 
index d54d89297b4550862d734d97b88bc35ecd36ed04..308df7be77b903614d17604fbb156d2ebd399420 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asmlibrarian.ml 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* Build libraries of .cmx files *)
 
 open Misc
 open Config
-open Compilenv
+open Cmx_format
 
 type error =
     File_not_found of string
index 66f6a127fd299c26fbba7c4bbbeec33cd4b72dbb..0224d89a84fa3ebdab4aa1a8261f11aa99e9d5a3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asmlibrarian.mli 3123 2000-04-21 08:13:22Z weis $ *)
 
 (* Build libraries of .cmx files *)
 
index c1b03106a07518d747894433b2c6103181a08071..4f83289aa9e3bab69291d713117fef12932869ab 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asmlink.ml 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* Link a set of .cmx/.o files and produce an executable *)
 
 open Sys
 open Misc
 open Config
+open Cmx_format
 open Compilenv
 
 type error =
@@ -144,8 +145,8 @@ let extract_missing_globals () =
   !mg
 
 type file =
-  | Unit of string * Compilenv.unit_infos * Digest.t
-  | Library of string * Compilenv.library_infos
+  | Unit of string * unit_infos * Digest.t
+  | Library of string * library_infos
 
 let read_file obj_name =
   let file_name =
@@ -156,12 +157,12 @@ let read_file obj_name =
   if Filename.check_suffix file_name ".cmx" then begin
     (* This is a .cmx file. It must be linked in any case.
        Read the infos to see which modules it requires. *)
-    let (info, crc) = Compilenv.read_unit_info file_name in
+    let (info, crc) = read_unit_info file_name in
     Unit (file_name,info,crc)
   end
   else if Filename.check_suffix file_name ".cmxa" then begin
     let infos =
-      try Compilenv.read_library_info file_name
+      try read_library_info file_name
       with Compilenv.Error(Not_a_unit_info _) ->
         raise(Error(Not_an_object_file file_name))
     in
@@ -241,7 +242,7 @@ let make_shared_startup_file ppf units filename =
   compile_phrase (Cmmgen.plugin_header units);
   compile_phrase
     (Cmmgen.global_table
-       (List.map (fun (ui,_) -> ui.Compilenv.ui_symbol) units));
+       (List.map (fun (ui,_) -> ui.ui_symbol) units));
   (* this is to force a reference to all units, otherwise the linker
      might drop some of them (in case of libraries) *)
 
index 2070c815d8f303fc4a2960b0a697f95993db3e49..1716cb8f99b47d690f953b9e82716f50bf8ab6d8 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asmlink.mli 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* Link a set of .cmx/.o files and produce an executable or a plugin *)
 
@@ -22,7 +22,7 @@ val link_shared: formatter -> string list -> string -> unit
 
 val call_linker_shared: string list -> string -> unit
 
-val check_consistency: string -> Compilenv.unit_infos -> Digest.t -> unit
+val check_consistency: string -> Cmx_format.unit_infos -> Digest.t -> unit
 val extract_crc_interfaces: unit -> (string * Digest.t) list
 val extract_crc_implementations: unit -> (string * Digest.t) list
 
index cb757efc239d6334b714b445c0a60a095842d41f..db5c8b59d1a723214ce0dc93849d3b7abf9b9a27 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asmpackager.ml 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* "Package" a set of .cmx/.o files into one .cmx/.o file having the
    original compilation units as sub-modules. *)
@@ -19,7 +19,7 @@ open Printf
 open Misc
 open Lambda
 open Clambda
-open Compilenv
+open Cmx_format
 
 type error =
     Illegal_renaming of string * string
index 7d0bb588b52859bcf50f954e1b5ffa0f02f99a18..9d47e851f0c2432bda0bad241c4ca5fe92844962 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asmpackager.mli 7003 2005-08-01 15:51:09Z xleroy $ *)
 
 (* "Package" a set of .cmx/.o files into one .cmx/.o file having the
    original compilation units as sub-modules. *)
index 5e31c3bbb552eff5fb3f0b182604bec44cbda588..ec836be11dca7e69b481580273edaa0740129ebb 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: clambda.ml 7812 2007-01-29 12:11:18Z xleroy $ *)
 
 (* A variant of the "lambda" code with direct / indirect calls explicit
    and closures explicit too *)
index 724490c527f6dafac97b84ee85cff2b15545d886..82d356003e8dfee66fc4ed0d0bf551e34c09ac9b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: clambda.mli 7812 2007-01-29 12:11:18Z xleroy $ *)
 
 (* A variant of the "lambda" code with direct / indirect calls explicit
    and closures explicit too *)
index 7524fb4e0d1c99003614d88b51effe90bd2da7a1..544772a6f656564ec49ce8a3559de23237f0c450 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: closure.ml 8966 2008-08-01 12:52:14Z xleroy $ *)
 
 (* Introduction of closures, uncurrying, recognition of direct calls *)
 
index f16379068d99da7bbef3fa48f949bc112f48e298..011608fb2c2146572869a1e95931ea7fde55a515 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: closure.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Introduction of closures, uncurrying, recognition of direct calls *)
 
index 68625e24c8ff7dded7b1fb09644a54075fc1ad7c..255541ac5f3cefbe346eeed8a1584f9094888aad 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: cmm.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 type machtype_component =
     Addr
index 1b09071657c8f4fb1f397598a7e4047a17168214..2bf92f3691a3b6cb02623a343f90afa28f138e55 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: cmm.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Second intermediate language (machine independent) *)
 
index b1dde74c211a67cc4429cc2db49b422d4d96f49a..0ed7435dc13ec582977d71c3422b5050a5aabab0 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: cmmgen.ml 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* Translation from closed lambda to C-- *)
 
@@ -22,6 +22,7 @@ open Types
 open Lambda
 open Clambda
 open Cmm
+open Cmx_format
 
 (* Local binding of complex expressions *)
 
@@ -1960,9 +1961,9 @@ let generic_functions shared units =
   let (apply,send,curry) =
     List.fold_left
       (fun (apply,send,curry) ui ->
-         List.fold_right IntSet.add ui.Compilenv.ui_apply_fun apply,
-         List.fold_right IntSet.add ui.Compilenv.ui_send_fun send,
-         List.fold_right IntSet.add ui.Compilenv.ui_curry_fun curry)
+         List.fold_right IntSet.add ui.ui_apply_fun apply,
+         List.fold_right IntSet.add ui.ui_send_fun send,
+         List.fold_right IntSet.add ui.ui_curry_fun curry)
       (IntSet.empty,IntSet.empty,IntSet.empty)
       units in
   let apply = if shared then apply else IntSet.union apply default_apply in
@@ -2060,28 +2061,13 @@ let predef_exception name =
 
 let mapflat f l = List.flatten (List.map f l)
 
-type dynunit = {
-  name: string;
-  crc: Digest.t;
-  imports_cmi: (string * Digest.t) list;
-  imports_cmx: (string * Digest.t) list;
-  defines: string list;
-}
-
-type dynheader = {
-  magic: string;
-  units: dynunit list;
-}
-
-let dyn_magic_number = "Caml2007D001"
-
 let plugin_header units =
   let mk (ui,crc) =
-    { name = ui.Compilenv.ui_name;
-      crc = crc;
-      imports_cmi = ui.Compilenv.ui_imports_cmi;
-      imports_cmx = ui.Compilenv.ui_imports_cmx;
-      defines = ui.Compilenv.ui_defines
+    { dynu_name = ui.ui_name;
+      dynu_crc = crc;
+      dynu_imports_cmi = ui.ui_imports_cmi;
+      dynu_imports_cmx = ui.ui_imports_cmx;
+      dynu_defines = ui.ui_defines
     } in
   global_data "caml_plugin_header"
-    { magic = dyn_magic_number; units = List.map mk units }
+    { dynu_magic = Config.cmxs_magic_number; dynu_units = List.map mk units }
index bd3d9acfffabd0d34009e05fab744a6c8361e275..32c6da032eade66b8318f16a0fb8bc39e34d234d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: cmmgen.mli 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* Translation from closed lambda to C-- *)
 
@@ -19,7 +19,7 @@ val compunit: int -> Clambda.ulambda -> Cmm.phrase list
 val apply_function: int -> Cmm.phrase
 val send_function: int -> Cmm.phrase
 val curry_function: int -> Cmm.phrase list
-val generic_functions: bool -> Compilenv.unit_infos list -> Cmm.phrase list
+val generic_functions: bool -> Cmx_format.unit_infos list -> Cmm.phrase list
 val entry_point: string list -> Cmm.phrase
 val global_table: string list -> Cmm.phrase
 val reference_symbols: string list -> Cmm.phrase
@@ -29,4 +29,4 @@ val frame_table: string list -> Cmm.phrase
 val data_segment_table: string list -> Cmm.phrase
 val code_segment_table: string list -> Cmm.phrase
 val predef_exception: string -> Cmm.phrase
-val plugin_header: (Compilenv.unit_infos * Digest.t) list -> Cmm.phrase
+val plugin_header: (Cmx_format.unit_infos * Digest.t) list -> Cmm.phrase
diff --git a/asmcomp/cmx_format.mli b/asmcomp/cmx_format.mli
new file mode 100644 (file)
index 0000000..9abfaf0
--- /dev/null
@@ -0,0 +1,63 @@
+(***********************************************************************)
+(*                                                                     *)
+(*                           Objective Caml                            *)
+(*                                                                     *)
+(*            Xavier Leroy, projet Gallium, INRIA Rocquencourt         *)
+(*                                                                     *)
+(*  Copyright 2010 Institut National de Recherche en Informatique et   *)
+(*  en Automatique.  All rights reserved.  This file is distributed    *)
+(*  under the terms of the Q Public License version 1.0.               *)
+(*                                                                     *)
+(***********************************************************************)
+
+(* $Id: compilenv.mli 9547 2010-01-22 12:48:24Z doligez $ *)
+
+(* Format of .cmx, .cmxa and .cmxs files *)
+
+(* Each .o file has a matching .cmx file that provides the following infos
+   on the compilation unit:
+     - list of other units imported, with CRCs of their .cmx files
+     - approximation of the structure implemented
+       (includes descriptions of known functions: arity and direct entry
+        points)
+     - list of currying functions and application functions needed
+   The .cmx file contains these infos (as an externed record) plus a CRC
+   of these infos *)
+
+type unit_infos =
+  { mutable ui_name: string;                    (* Name of unit implemented *)
+    mutable ui_symbol: string;            (* Prefix for symbols *)
+    mutable ui_defines: string list;      (* Unit and sub-units implemented *)
+    mutable ui_imports_cmi: (string * Digest.t) list; (* Interfaces imported *)
+    mutable ui_imports_cmx: (string * Digest.t) list; (* Infos imported *)
+    mutable ui_approx: Clambda.value_approximation; (* Approx of the structure *)
+    mutable ui_curry_fun: int list;             (* Currying functions needed *)
+    mutable ui_apply_fun: int list;             (* Apply functions needed *)
+    mutable ui_send_fun: int list;              (* Send functions needed *)
+    mutable ui_force_link: bool }               (* Always linked *)
+
+(* Each .a library has a matching .cmxa file that provides the following
+   infos on the library: *)
+
+type library_infos =
+  { lib_units: (unit_infos * Digest.t) list;  (* List of unit infos w/ CRCs *)
+    lib_ccobjs: string list;            (* C object files needed *)
+    lib_ccopts: string list }           (* Extra opts to C compiler *)
+
+(* Each .cmxs dynamically-loaded plugin contains a symbol
+   "caml_plugin_header" containing the following info
+   (as an externed record) *)
+
+type dynunit = {
+  dynu_name: string;
+  dynu_crc: Digest.t;
+  dynu_imports_cmi: (string * Digest.t) list;
+  dynu_imports_cmx: (string * Digest.t) list;
+  dynu_defines: string list;
+}
+
+type dynheader = {
+  dynu_magic: string;
+  dynu_units: dynunit list;
+}
+
index 280f139408188412101c7f9ed233823effb9f9b0..f5afae6bdb64a61fd8cf93c2e3bc15ff4308b06d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: codegen.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* From C-- to assembly code *)
 
index b6d8caa611d870ee6a61721fa02e146fd9a8bbce..06378ab06bec0bc8fe65bd61c3a5cc90737ba489 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: codegen.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* From C-- to assembly code *)
 
index 37c03a05b29a32228d766894ffc36e10b67b59b8..f44a26fb9bfad5038b01ec6480aa02bc6b02f506 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: coloring.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Register allocation by coloring of the interference graph *)
 
index cbfb2d6cd1774cad5f78aa2ffc611b3b7a142a24..c92fd41bb916a15274961d38817fc470f38c99e0 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: coloring.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Register allocation by coloring of the interference graph *)
 
index 5a862b172903a6ffb50de7335161b633f383b3d1..b62a1b059c92b5e3cbb061a40940fd3afa4a61fc 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: comballoc.ml 7812 2007-01-29 12:11:18Z xleroy $ *)
 
 (* Combine heap allocations occurring in the same basic block *)
 
index 329e927644fc479b9c66f229f00820e272a2afb4..d6d72f58e7dff25deec9f78d57b6712a7f063bff 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: comballoc.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Combine heap allocations occurring in the same basic block *)
 
index 2bf4b6ec8a37b2a46e40b74838bbf04977115165..33c35065563d6e69a8254eca460addf173005279 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: compilenv.ml 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* Compilation environments for compilation units *)
 
 open Config
 open Misc
 open Clambda
+open Cmx_format
 
 type error =
     Not_a_unit_info of string
@@ -25,36 +26,6 @@ type error =
 
 exception Error of error
 
-(* Each .o file has a matching .cmx file that provides the following infos
-   on the compilation unit:
-     - list of other units imported, with CRCs of their .cmx files
-     - approximation of the structure implemented
-       (includes descriptions of known functions: arity and direct entry
-        points)
-     - list of currying functions and application functions needed
-   The .cmx file contains these infos (as an externed record) plus a CRC
-   of these infos *)
-
-type unit_infos =
-  { mutable ui_name: string;                    (* Name of unit implemented *)
-    mutable ui_symbol: string;            (* Prefix for symbols *)
-    mutable ui_defines: string list;      (* Unit and sub-units implemented *)
-    mutable ui_imports_cmi: (string * Digest.t) list; (* Interfaces imported *)
-    mutable ui_imports_cmx: (string * Digest.t) list; (* Infos imported *)
-    mutable ui_approx: value_approximation;     (* Approx of the structure *)
-    mutable ui_curry_fun: int list;             (* Currying functions needed *)
-    mutable ui_apply_fun: int list;             (* Apply functions needed *)
-    mutable ui_send_fun: int list;              (* Send functions needed *)
-    mutable ui_force_link: bool }               (* Always linked *)
-
-(* Each .a library has a matching .cmxa file that provides the following
-   infos on the library: *)
-
-type library_infos =
-  { lib_units: (unit_infos * Digest.t) list;  (* List of unit infos w/ CRCs *)
-    lib_ccobjs: string list;            (* C object files needed *)
-    lib_ccopts: string list }           (* Extra opts to C compiler *)
-
 let global_infos_table =
   (Hashtbl.create 17 : (string, unit_infos option) Hashtbl.t)
 
index 74120f4cd025a66c02ce41f32171584c7759d1df..7ca606d8509f5191a6f7018ea7155621ba8fa090 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: compilenv.mli 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* Compilation environments for compilation units *)
 
 open Clambda
-
-(* Each .o file has a matching .cmx file that provides the following infos
-   on the compilation unit:
-     - list of other units imported, with CRCs of their .cmx files
-     - approximation of the structure implemented
-       (includes descriptions of known functions: arity and direct entry
-        points)
-     - list of currying functions and application functions needed
-   The .cmx file contains these infos (as an externed record) plus a CRC
-   of these infos *)
-
-type unit_infos =
-  { mutable ui_name: string;                    (* Name of unit implemented *)
-    mutable ui_symbol: string;            (* Prefix for symbols *)
-    mutable ui_defines: string list;      (* Unit and sub-units implemented *)
-    mutable ui_imports_cmi: (string * Digest.t) list; (* Interfaces imported *)
-    mutable ui_imports_cmx: (string * Digest.t) list; (* Infos imported *)
-    mutable ui_approx: value_approximation;     (* Approx of the structure *)
-    mutable ui_curry_fun: int list;             (* Currying functions needed *)
-    mutable ui_apply_fun: int list;             (* Apply functions needed *)
-    mutable ui_send_fun: int list;              (* Send functions needed *)
-    mutable ui_force_link: bool }               (* Always linked *)
-
-(* Each .a library has a matching .cmxa file that provides the following
-   infos on the library: *)
-
-type library_infos =
-  { lib_units: (unit_infos * Digest.t) list;  (* List of unit infos w/ CRCs *)
-    lib_ccobjs: string list;            (* C object files needed *)
-    lib_ccopts: string list }           (* Extra opts to C compiler *)
+open Cmx_format
 
 val reset: ?packname:string -> string -> unit
         (* Reset the environment and record the name of the unit being
index ab7657af9ac0414186eca6350b59bc6d1db2d2f4..57b0066f46c9b2746918a67f6d13f02268f7adc0 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Generation of assembly code *)
 
index d4db78ad75b88b6d0c064078011f8d7eadf23a66..522977aaa04f90752b0d5fb868fb38a338db990a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emitaux.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Common functions for emitting assembly code *)
 
index 4f666be736ad3e3f98cc377f1b628ecf770926c0..c253d6fa6c0e184a67b0b7e21159f806c77b64b7 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emitaux.mli 9540 2010-01-20 16:26:46Z doligez $ *)
 
 (* Common functions for emitting assembly code *)
 
index eb2e1938dd0ee4ece292c4bbd4a56c9a97097a9d..febd3b434e71af85f0db313b974098b44f35ab31 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Specific operations for the HP PA-RISC processor *)
 
index b697a335a2f50e3b9f746de43a14f9e2e6f4f11a..afa182eb1231e84679f0564e70bdf0913a8a80d3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Emission of HP PA-RISC assembly code *)
 
index c0b40adbea7c27bc363d7a22bae3c41b7ac58589..bcc1104d6a832a18c5ac21573ec0fc8e6fb2e1e4 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Description of the HP PA-RISC processor *)
 
index 54208fcc334490831b3548808a540bd55cc3669a..443715228d7ab553ff86f8d15ffd9ffcb5402d91 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 8768 2008-01-11 16:13:18Z doligez $ *)
 
 (* Reloading for the HPPA *)
 
index 0cdd0998c16328e6ee5bc6dc9056698398d3d66c..8d2ed7cce2c013dfcd68118022ad2b2b5b36dec2 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Instruction scheduling for the HPPA *)
 
index 74c546b08b5ed557106503843c4a144722f3a542..6240474ef6b5196cd4b828517671df523551499c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 10296 2010-04-22 12:51:06Z xleroy $ *)
 
 (* Instruction selection for the HPPA processor *)
 
index 04d673d91d709db9735f7339e5f886584c85b5eb..cf1d4b0d0eed67b38406e30da1548df97c94460c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Machine-specific command-line options *)
 
index 5d4802faa3940b20309817ae55d54db40b3118c6..3baba2e6ee2c9d9201dbfd7d2b317a7310ef758d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 9540 2010-01-20 16:26:46Z doligez $ *)
 
 (* Emission of Intel 386 assembly code *)
 
index da1606e44945f97db7ba3db51ef4564434d4d39c..2aff37df594f8af5df842e7930efc85c660a1b7d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit_nt.mlp 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Emission of Intel 386 assembly code, MASM syntax. *)
 
index d2e3cdda9676c1df48d76e68647d8c22c5de8e52..0b802c4bdad6d01c78e24860e5ef05c728ce967c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *)
 
 (* Description of the Intel 386 processor *)
 
index 5e617ff1a9eb9d68350deddc40a382754b3bb5fd..74d2b61a39f68ab5cd394e6bfbea5a1c39b63556 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc_nt.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Description of the Intel 386 processor, for Windows NT *)
 
index 539d45daeaa7177473b6f94362ad319d1fe49023..ac79c58230f7ee79e94f74ca3cff730d3a45bd6a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 open Cmm
 open Arch
index 6f018cc8704800c20cb564049d5514f742c96167..61a107ea418d538d124558968468157f53a135a3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 2779 2000-02-04 12:43:18Z xleroy $ *)
 
 open Schedgen (* to create a dependency *)
 
index 5a8720fbeb10ab488d53ec6d1cf446870b97e0fc..1700bf3843ea79091fd6bcff24de12bfed5f9f1a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 (* Instruction selection for the Intel x86 *)
 
index 77dddaca2c60842a8fedcf5c6224be0a2db8adb9..3c2a4c85db6bedbadcdb88db94e348edcdffc75f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *)
 
 (* Specific operations for the IA64 processor *)
 
index 3d8eeb974f55f940f4fb5b9ef128e6c752b9c19b..04e5f4990873f21f546fae7dad5c5bd1b57de53e 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Emission of IA64 assembly code *)
 
index 15311aa024561319ccc8e7d288214f47ed66b3f7..bf04d1cebdb1ed2e4e0c3f6430d935df1b0913cf 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Description of the IA64 processor *)
 
index 338c08844fada0a5000104910a5aa415cc41fdca..b9b9e6dd97260da71e67faed3ef18d1c0982fed6 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 3235 2000-07-16 02:57:31Z xleroy $ *)
 
 (* Reloading for the IA64. *)
 
index 9bed03a6c7b3837f1cef22782d0469c7d6adeb50..236a40616a361fa5aaca5fee715c97dc302f3278 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Schedgen (* to create a dependency *)
 
index 6be4a18cdb9e7665cb2456e01f48b12f2af99bb4..c8721c4782ecbf4fa69ea6bb69212a0d14f07d9f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 10296 2010-04-22 12:51:06Z xleroy $ *)
 
 (* Instruction selection for the IA64 processor *)
 
index 30f17b725095a81b7610ba3c65a4d30190195ff7..ec14b11194a6548aeeffeb3bdf2d1ffaa906cc63 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: interf.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Construction of the interference graph.
    Annotate pseudoregs with interference lists and preference lists. *)
index 00f4df49814a2a934698c39691dd9a492db7ee57..f78f4059d36aca1e7f045652951d4cb3976fe3e8 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: interf.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Construction of the interference graph.
    Annotate pseudoregs with interference lists and preference lists. *)
index 5833595ae6f49c8bb458af72bbbdc9becda1a073..3f6d641d34c472ef8eb6db33bf1dc14a6c81e6d5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: linearize.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Transformation of Mach code into a list of pseudo-instructions. *)
 
index aaf03184c2b25351d42e07f105d51c332c6aef25..9d2d02698352816787c6d94f20d0171707095ab0 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: linearize.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Transformation of Mach code into a list of pseudo-instructions. *)
 
index 4e743d646f1fdc87ca661826a5d58ace684d1179..9407f229b29b3d56ccac5b9ef3de86d7f9168d0b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: liveness.ml 7812 2007-01-29 12:11:18Z xleroy $ *)
 
 (* Liveness analysis.
    Annotate mach code with the set of regs live at each point. *)
index 3353b444391994137b0d5bf9767eb5538d1be447..de2509e8f9fdfa7ffed69f056f0995466275eca3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: liveness.mli 3123 2000-04-21 08:13:22Z weis $ *)
 
 (* Liveness analysis.
    Annotate mach code with the set of regs live at each point. *)
index 027550ab12a7197e6b958128ec0e349f809263e6..a0d71e108edd8dba4346a138b0d1272e9bf9cde5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: mach.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Representation of machine code by sequences of pseudoinstructions *)
 
index 438d15d2fc541ae703cb8763b256d5d0e9b00beb..6cfe97e2d516422e50c196b90b7cc80a6022c4ce 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: mach.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Representation of machine code by sequences of pseudoinstructions *)
 
index c174ef6c9b5d72052141340a3c9bafbfa9639e39..411c9877f5a2f726e0c162e6757c8264d339aa01 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *)
 
 (* Specific operations for the Mips processor *)
 
index 06915fd34fe71dba8878c5f5455956d135e21a54..d29b4b61c76ea387593aeb190758cfb1b88f506c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Emission of Mips assembly code *)
 
index 53971890ee896543798a386ce3da7d82a3e547bd..74eb1a8d76087893a954b40d39c5379baf2454b3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Description of the Mips processor *)
 
index 0bdd208d60e6abd48fb2f04c8f00279d31c7bdba..26a620b4450b671cb0fa01b29c1b18f67466fb5d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Reloading for the Mips *)
 
index 062529ad557fd3f9c632da956462a5032598c257..273e20bd75757c11cfe45423dfd962d36e02b2bf 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 open Schedgen (* to create a dependency *)
 
index 4dbaa86ea857ae6521192cab1d2d86ac3305c72a..34be3c9065447b20ca8c564eb9cdc32db03a9c82 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Instruction selection for the Mips processor *)
 
index 8828de7c031414f266dd27693beb24de413b3ca7..11ec295a638bcb5ae7f421674dd00469cc77e6d1 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Specific operations for the PowerPC processor *)
 
index b6496f98708181f4934b06b254f65c88d59ddc89..dd3323f9bea7680ab5e9fd6a0d4d607f6f8c11b2 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Emission of PowerPC assembly code *)
 
index ab8e5a5d5af745af3f8ac9d5768b70f69bd087a5..dc274425bbd9a37da10ca6eee69bda5f3802bfe0 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Description of the Power PC *)
 
index 3f74c3f5e5e27e9432a28dca530772b118a01c8b..abcac6c645d2604f317ddd728f856afdb012b75d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Reloading for the PowerPC *)
 
index aac37c87907bdae4b0ff7b44e6d73716dc3da951..b7bba9bdadd380b7306fecddac822401c923fe2e 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Instruction scheduling for the Power PC *)
 
index d87b300ccbf81b6559398fb32da3b8e5b739325e..ed15efbb827b3e01d42a68ef55dffc8e97cb7514 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 10296 2010-04-22 12:51:06Z xleroy $ *)
 
 (* Instruction selection for the Power PC processor *)
 
index 364d9ea88af0b3b8be44b820d2dd086111961f05..4c6ded6dab57c89731d1b65bf4d50d3388d684ec 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printcmm.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Pretty-printing of C-- code *)
 
index d498ddb72b15a0b68a6dfe6ba1a46455a2172f1c..f07a31dbc5cd80a8db83876a38780007cdd6c586 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printcmm.mli 3123 2000-04-21 08:13:22Z weis $ *)
 
 (* Pretty-printing of C-- code *)
 
index 3737e72c131aca2101300a34549680c8de466df2..941d64931d45363925c93e4a0429846604927709 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printlinear.ml 7812 2007-01-29 12:11:18Z xleroy $ *)
 
 (* Pretty-printing of linearized machine code *)
 
index 5e90c11c68cdd962a5b3c660c55184aaaf3c74d1..dee1733f327f0cb05d83b754648295ade7fdd295 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printlinear.mli 3123 2000-04-21 08:13:22Z weis $ *)
 
 (* Pretty-printing of linearized machine code *)
 
index d7d538df31baef7da150583f2130a95dc87488fb..215a3eae117fc678ba5a81fa0a4e1fd793be371d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printmach.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Pretty-printing of pseudo machine code *)
 
index 28328707c71a09de94562a1b19b5a93041bbd7f0..edbda322fbaa77cc33ce60dfd61fac4cf055720b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printmach.mli 3123 2000-04-21 08:13:22Z weis $ *)
 
 (* Pretty-printing of pseudo machine code *)
 
index ba593592bb03336d2d19074d5315d8d176065791..15086a44eb9e2724bec54d15d7fc58f24c9be511 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Processor descriptions *)
 
index f9bef49677a50019e04879c878de61ad4d9e74ef..36a5ff8f7b3eb2c52b820a8db066758b286e0579 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reg.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Cmm
 
index b802344dedadf9baad33531aad21feb5fc0790fa..e93417a50525a63e4fd5b4a52997c7a2b0b58f34 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reg.mli 9210 2009-03-31 09:44:50Z xleroy $ *)
 
 (* Pseudo-registers *)
 
index fc72446e7d2a179cecdc8477789a8387744a7ffa..16c22e4c178e8fed5faa9aa56fc2617b25c3c76b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Insert load/stores for pseudoregs that got assigned to stack locations. *)
 
index 898c65c989bd39eb414c8508e4d202bfa29e6102..b9ddf8d96fe42fdfc6605e68857017c73bcf235c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reloadgen.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Insert load/stores for pseudoregs that got assigned to stack locations. *)
 
index e84a73d71ec7f1abf8a9ed9f345f3ecadc803d35..1693905c611f77b5e964e7bb7f12ab6605538a60 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reloadgen.mli 10450 2010-05-21 12:00:49Z doligez $ *)
 
 class reload_generic : object
   method reload_operation :
     Mach.operation -> Reg.t array -> Reg.t array -> Reg.t array * Reg.t array
   method reload_test : Mach.test -> Reg.t array -> Reg.t array
-    (* Can be overriden to reflect instructions that can operate
+    (* Can be overridden to reflect instructions that can operate
        directly on stack locations *)
   method makereg : Reg.t -> Reg.t
-    (* Can be overriden to avoid creating new registers of some class
+    (* Can be overridden to avoid creating new registers of some class
        (i.e. if all "registers" of that class are actually on stack) *)
   method fundecl : Mach.fundecl -> Mach.fundecl * bool
     (* The entry point *)
index 388d0d4c8c6ccbc97e820ce2938cead2e54223a3..7c1e07736092bdc9ee79334e9b026e4d077ca149 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: schedgen.ml 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (* Instruction scheduling *)
 
@@ -115,7 +115,7 @@ let some_load = (Iload(Cmm.Word, Arch.identity_addressing))
 class virtual scheduler_generic = object (self)
 
 (* Determine whether an operation ends a basic block or not.
-   Can be overriden for some processors to signal specific instructions
+   Can be overridden for some processors to signal specific instructions
    that terminate a basic block. *)
 
 method oper_in_basic_block = function
@@ -137,7 +137,7 @@ method private instr_in_basic_block instr =
   | _ -> false
 
 (* Determine whether an operation is a memory store or a memory load.
-   Can be overriden for some processors to signal specific
+   Can be overridden for some processors to signal specific
    load or store instructions (e.g. on the I386). *)
 
 method is_store = function
index 0f54e2d69c296ec3755a1c06ca7f978ad89cb161..0c43533eb4fd0ccd7521e7416c8b287f419217a5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: schedgen.mli 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (* Instruction scheduling *)
 
@@ -24,7 +24,7 @@ type code_dag_node =
     mutable emitted_ancestors: int }
 
 class virtual scheduler_generic : object
-  (* Can be overriden by processor description *)
+  (* Can be overridden by processor description *)
   method virtual oper_issue_cycles : Mach.operation -> int
       (* Number of cycles needed to issue the given operation *)
   method virtual oper_latency : Mach.operation -> int
index dd24354ad2312231d6af91328717d81f442aa4a0..62c55741506420f32da592874187530ddb133b0e 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Instruction scheduling *)
 
index 0b75c64bdcbf52645f9b054b9441108da3779027..824dbb508f0b6f6115181bf70c0d511efc7035a5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selectgen.ml 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (* Selection of pseudo-instructions, assignment of pseudo-registers,
    sequentialization. *)
@@ -380,7 +380,7 @@ method insert_move_results loc res stacksize =
   if stacksize <> 0 then self#insert(Iop(Istackoffset(-stacksize))) [||] [||];
   self#insert_moves loc res
 
-(* Add an Iop opcode. Can be overriden by processor description
+(* Add an Iop opcode. Can be overridden by processor description
    to insert moves before and after the operation, i.e. for two-address
    instructions, or instructions using dedicated registers. *)
 
index fa2cddcf0fc24a803628f03b99e450ebcb2f6db6..ae53cda378f12ce026b56ff72b380a65331f3fd5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selectgen.mli 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (* Selection of pseudo-instructions, assignment of pseudo-registers,
    sequentialization. *)
@@ -20,7 +20,7 @@ type environment = (Ident.t, Reg.t array) Tbl.t
 val size_expr : environment -> Cmm.expression -> int
 
 class virtual selector_generic : object
-  (* The following methods must or can be overriden by the processor
+  (* The following methods must or can be overridden by the processor
      description *)
   method virtual is_immediate : int -> bool
     (* Must be defined to indicate whether a constant is a suitable
@@ -29,41 +29,41 @@ class virtual selector_generic : object
     Cmm.expression -> Arch.addressing_mode * Cmm.expression
     (* Must be defined to select addressing modes *)
   method is_simple_expr: Cmm.expression -> bool
-    (* Can be overriden to reflect special extcalls known to be pure *)
+    (* Can be overridden to reflect special extcalls known to be pure *)
   method select_operation :
     Cmm.operation ->
     Cmm.expression list -> Mach.operation * Cmm.expression list
-    (* Can be overriden to deal with special arithmetic instructions *)
+    (* Can be overridden to deal with special arithmetic instructions *)
   method select_condition : Cmm.expression -> Mach.test * Cmm.expression
-    (* Can be overriden to deal with special test instructions *)
+    (* Can be overridden to deal with special test instructions *)
   method select_store :
     Arch.addressing_mode -> Cmm.expression -> Mach.operation * Cmm.expression
-    (* Can be overriden to deal with special store constant instructions *)
+    (* Can be overridden to deal with special store constant instructions *)
   method regs_for : Cmm.machtype -> Reg.t array
     (* Return an array of fresh registers of the given type.
        Default implementation is like Reg.createv.
-       Can be overriden if float values are stored as pairs of
+       Can be overridden if float values are stored as pairs of
        integer registers. *)
   method insert_op :
     Mach.operation -> Reg.t array -> Reg.t array -> Reg.t array
-    (* Can be overriden to deal with 2-address instructions
+    (* Can be overridden to deal with 2-address instructions
        or instructions with hardwired input/output registers *)
   method insert_op_debug :
     Mach.operation -> Debuginfo.t -> Reg.t array -> Reg.t array -> Reg.t array
-    (* Can be overriden to deal with 2-address instructions
+    (* Can be overridden to deal with 2-address instructions
        or instructions with hardwired input/output registers *)
   method emit_extcall_args :
     environment -> Cmm.expression list -> Reg.t array * int
-    (* Can be overriden to deal with stack-based calling conventions *)
+    (* Can be overridden to deal with stack-based calling conventions *)
   method emit_stores :
     environment -> Cmm.expression list -> Reg.t array -> unit
-    (* Fill a freshly allocated block.  Can be overriden for architectures
+    (* Fill a freshly allocated block.  Can be overridden for architectures
        that do not provide Arch.offset_addressing. *)
 
-  (* The following method is the entry point and should not be overriden *)
+  (* The following method is the entry point and should not be overridden *)
   method emit_fundecl : Cmm.fundecl -> Mach.fundecl
 
-  (* The following methods should not be overriden.  They cannot be
+  (* The following methods should not be overridden.  They cannot be
      declared "private" in the current implementation because they
      are not always applied to "self", but ideally they should be private. *)
   method extract : Mach.instruction
index ab17b557d589378eac982238e34f57d94be5cf17..66abf607ca3ce54ce60f908b88c806320d0eac22 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Selection of pseudo-instructions, assignment of pseudo-registers,
    sequentialization. *)
index 61ba35b9a5978c5778a723b2689d42ef9e7ce352..6bd9876f3a1c28431f69d9a59beacc4f831efe38 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arch.ml 5303 2002-11-29 15:03:08Z xleroy $ *)
 
 (* Specific operations for the Sparc processor *)
 
index f44f813e53ecf69959055b1b28cfdafec90bd911..91b8c422ab67b2c4e2053c2c8b063d217771ba12 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emit.mlp 9540 2010-01-20 16:26:46Z doligez $ *)
 
 (* Emission of Sparc assembly code *)
 
index 2fd147bfc7cb53b33502c9801ffddbd18a431238..95b722f7871cf283eacce940fb3009d4038c9d96 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: proc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Description of the Sparc processor *)
 
index a590ba3ffcd49a04bb48e0b31a9c06685cdb10da..a3558a7f796c18f01e487dc891779e8659d74224 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Reloading for the Sparc *)
 
index efe9a1f4cc53ef4a28b0d29b6ebf5215b8ed8918..6f82c0dbc4cbb3c88ff465c6f4c05c9fbe430189 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scheduling.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Cmm
 open Mach
index 965680b65ed09b0eb5adc3971d9e9f1291576337..82758dc6efa6ea12250404ed0f34fab73c7381c3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: selection.ml 10296 2010-04-22 12:51:06Z xleroy $ *)
 
 (* Instruction selection for the Sparc processor *)
 
index 968987d480e3359bc9aafafc373610b58fed8e2d..c31011cb6ac0c6395f1e1bab5e946c7febe7a9c7 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: spill.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Insertion of moves to suggest possible spilling / reloading points
    before register allocation. *)
index 16a8c01add699243086f13173229d0c82c63980f..ed89388ccab4add12a34a45220b9a083c613712d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: spill.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Insertion of moves to suggest possible spilling / reloading points
    before register allocation. *)
index 9e6130d2183125cb2f6d2695d1b1098655f58eb2..facab6050063047fd6ff1f9b8ab6b553c24265ff 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: split.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Renaming of registers at reload points to split live ranges. *)
 
index 67e0956e88cdf72838bb11e6ede12fdbcbfcaf56..2cb16fda13ee8d83693f7e8d83671fc02826e834 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: split.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Renaming of registers at reload points to split live ranges. *)
 
index 9c70fd7b7c74f45a22dcfeec611af93cc0ef0729..b8ad3e1c18bbb296032ca2a1590c3f4620c26f5b 100644 (file)
@@ -35,3 +35,4 @@ unix.c
 dynlink.c
 signals.c
 debugger.c
+.depend.nt
index ab5bde8560e31a3d9b07be57903d04883f6162b9..aa0e69e1a3869c51faa7ff597a26fd9fb060abcc 100644 (file)
 alloc.o: alloc.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \
- ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \
 ../byterun/memory.h
 array.o: array.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h
 backtrace.o: backtrace.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h
 callback.o: callback.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/mlvalues.h
 compact.o: compact.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/weak.h
 ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \
 ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/weak.h
 compare.o: compare.c ../byterun/custom.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h
 custom.o: custom.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h
 debugger.o: debugger.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h
 ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h
 dynlink.o: dynlink.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \
- ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \
- ../byterun/prims.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \
 ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \
 ../byterun/prims.h
 extern.o: extern.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/reverse.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/reverse.h
 fail.o: fail.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \
- ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \
 ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h
 finalise.o: finalise.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \
- ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/signals.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \
 ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/signals.h
 floats.o: floats.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \
- ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \
 ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h
 freelist.o: freelist.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h
 gc_ctrl.o: gc_ctrl.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \
- ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \
 ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h stack.h
 globroots.o: globroots.c ../byterun/memory.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \
- ../byterun/globroots.h ../byterun/roots.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \
 ../byterun/globroots.h ../byterun/roots.h
 hash.o: hash.c ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
- ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
 ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h
 intern.o: intern.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h
 ints.o: ints.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \
- ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \
 ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h
 io.o: io.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \
- ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \
- ../byterun/sys.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \
 ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \
 ../byterun/sys.h
 lexing.o: lexing.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h
 main.o: main.c ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/sys.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/sys.h
 major_gc.o: major_gc.c ../byterun/compact.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
- ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/weak.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
 ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \
 ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/weak.h
 md5.o: md5.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \
- ../byterun/reverse.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \
 ../byterun/reverse.h
 memory.o: memory.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/signals.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/signals.h
 meta.o: meta.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \
- ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \
 ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h
 minor_gc.o: minor_gc.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \
- ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \
- ../byterun/weak.h
 ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \
 ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \
 ../byterun/weak.h
 misc.o: misc.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h
 ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h
 natdynlink.o: natdynlink.c ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \
- natdynlink.h ../byterun/osdeps.h ../byterun/fail.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \
 natdynlink.h ../byterun/osdeps.h ../byterun/fail.h
 obj.o: obj.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/prims.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/prims.h
 parsing.o: parsing.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/alloc.h
 ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \
 ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/alloc.h
 printexc.o: printexc.c ../byterun/backtrace.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \
- ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/printexc.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \
 ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/printexc.h
 roots.o: roots.c ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \
- ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h stack.h ../byterun/roots.h
 ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \
 ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \
 ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h stack.h ../byterun/roots.h
 signals.o: signals.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \
- ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \
- ../byterun/sys.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \
 ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \
 ../byterun/sys.h
 signals_asm.o: signals_asm.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \
- signals_osdep.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \
 signals_osdep.h stack.h
 startup.o: startup.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \
- ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \
- ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \
 ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \
 ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h
 str.o: str.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h
 sys.o: sys.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \
- ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \
- ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \
 ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \
 ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h
 terminfo.o: terminfo.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \
- ../byterun/io.h ../byterun/mlvalues.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \
 ../byterun/io.h ../byterun/mlvalues.h
 unix.o: unix.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \
- ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/osdeps.h
 ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \
 ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/osdeps.h
 weak.o: weak.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h
 alloc.d.o: alloc.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \
- ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \
 ../byterun/memory.h
 array.d.o: array.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h
 backtrace.d.o: backtrace.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h
 callback.d.o: callback.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/mlvalues.h
 compact.d.o: compact.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/weak.h
 ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \
 ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/weak.h
 compare.d.o: compare.c ../byterun/custom.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h
 custom.d.o: custom.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h
 debugger.d.o: debugger.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h
 ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h
 dynlink.d.o: dynlink.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \
- ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \
- ../byterun/prims.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \
 ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \
 ../byterun/prims.h
 extern.d.o: extern.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/reverse.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/reverse.h
 fail.d.o: fail.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \
- ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \
 ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h
 finalise.d.o: finalise.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \
- ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/signals.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \
 ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/signals.h
 floats.d.o: floats.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \
- ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \
 ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h
 freelist.d.o: freelist.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h
 gc_ctrl.d.o: gc_ctrl.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \
- ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \
 ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h stack.h
 globroots.d.o: globroots.c ../byterun/memory.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \
- ../byterun/globroots.h ../byterun/roots.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \
 ../byterun/globroots.h ../byterun/roots.h
 hash.d.o: hash.c ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
- ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
 ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h
 intern.d.o: intern.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h
 ints.d.o: ints.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \
- ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \
 ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h
 io.d.o: io.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \
- ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \
- ../byterun/sys.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \
 ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \
 ../byterun/sys.h
 lexing.d.o: lexing.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h
 main.d.o: main.c ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/sys.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/sys.h
 major_gc.d.o: major_gc.c ../byterun/compact.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
- ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/weak.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
 ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \
 ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/weak.h
 md5.d.o: md5.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \
- ../byterun/reverse.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \
 ../byterun/reverse.h
 memory.d.o: memory.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/signals.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/signals.h
 meta.d.o: meta.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \
- ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \
 ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h
 minor_gc.d.o: minor_gc.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \
- ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \
- ../byterun/weak.h
 ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \
 ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \
 ../byterun/weak.h
 misc.d.o: misc.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h
 ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h
 natdynlink.d.o: natdynlink.c ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \
- natdynlink.h ../byterun/osdeps.h ../byterun/fail.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \
 natdynlink.h ../byterun/osdeps.h ../byterun/fail.h
 obj.d.o: obj.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/prims.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/prims.h
 parsing.d.o: parsing.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/alloc.h
 ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \
 ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/alloc.h
 printexc.d.o: printexc.c ../byterun/backtrace.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \
- ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/printexc.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \
 ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/printexc.h
 roots.d.o: roots.c ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \
- ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h stack.h ../byterun/roots.h
 ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \
 ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \
 ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h stack.h ../byterun/roots.h
 signals.d.o: signals.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \
- ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \
- ../byterun/sys.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \
 ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \
 ../byterun/sys.h
 signals_asm.d.o: signals_asm.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \
- signals_osdep.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \
 signals_osdep.h stack.h
 startup.d.o: startup.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \
- ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \
- ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \
 ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \
 ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h
 str.d.o: str.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h
 sys.d.o: sys.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \
- ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \
- ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \
 ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \
 ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h
 terminfo.d.o: terminfo.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \
- ../byterun/io.h ../byterun/mlvalues.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \
 ../byterun/io.h ../byterun/mlvalues.h
 unix.d.o: unix.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \
- ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/osdeps.h
 ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \
 ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/osdeps.h
 weak.d.o: weak.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h
 alloc.p.o: alloc.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \
- ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \
 ../byterun/memory.h
 array.p.o: array.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h
 backtrace.p.o: backtrace.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h
 callback.p.o: callback.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/mlvalues.h
 compact.p.o: compact.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/weak.h
 ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \
 ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/weak.h
 compare.p.o: compare.c ../byterun/custom.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h
 custom.p.o: custom.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h
 debugger.p.o: debugger.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h
 ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h
 dynlink.p.o: dynlink.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \
- ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \
- ../byterun/prims.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \
 ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \
 ../byterun/prims.h
 extern.p.o: extern.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/reverse.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/reverse.h
 fail.p.o: fail.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \
- ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \
 ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h
 finalise.p.o: finalise.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \
- ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/signals.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \
 ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/signals.h
 floats.p.o: floats.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \
- ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \
 ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h
 freelist.p.o: freelist.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h
 ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h
 gc_ctrl.p.o: gc_ctrl.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \
- ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \
 ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h stack.h
 globroots.p.o: globroots.c ../byterun/memory.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \
- ../byterun/globroots.h ../byterun/roots.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \
 ../byterun/globroots.h ../byterun/roots.h
 hash.p.o: hash.c ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
- ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
 ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h
 intern.p.o: intern.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
- ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \
 ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h
 ints.p.o: ints.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \
- ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \
 ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h
 io.p.o: io.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \
- ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \
- ../byterun/sys.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \
 ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \
 ../byterun/sys.h
 lexing.p.o: lexing.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h
 main.p.o: main.c ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/sys.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/sys.h
 major_gc.p.o: major_gc.c ../byterun/compact.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
- ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/weak.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \
 ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \
 ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/weak.h
 md5.p.o: md5.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \
- ../byterun/reverse.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \
 ../byterun/reverse.h
 memory.p.o: memory.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/signals.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/signals.h
 meta.p.o: meta.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \
- ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \
 ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h
 minor_gc.p.o: minor_gc.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \
- ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
- ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \
- ../byterun/weak.h
 ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \
 ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \
 ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \
 ../byterun/weak.h
 misc.p.o: misc.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h
 ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h
 natdynlink.p.o: natdynlink.c ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \
- natdynlink.h ../byterun/osdeps.h ../byterun/fail.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \
 natdynlink.h ../byterun/osdeps.h ../byterun/fail.h
 obj.p.o: obj.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
- ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
- ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/prims.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \
 ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \
 ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/prims.h
 parsing.p.o: parsing.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \
- ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/alloc.h
 ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \
 ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/alloc.h
 printexc.p.o: printexc.c ../byterun/backtrace.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \
- ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \
- ../byterun/printexc.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \
 ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \
 ../byterun/printexc.h
 roots.p.o: roots.c ../byterun/finalise.h ../byterun/roots.h \
- ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \
- ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
- ../byterun/mlvalues.h stack.h ../byterun/roots.h
 ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \
 ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \
 ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \
 ../byterun/mlvalues.h stack.h ../byterun/roots.h
 signals.p.o: signals.c ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \
- ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
- ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \
- ../byterun/sys.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \
 ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \
 ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \
 ../byterun/sys.h
 signals_asm.p.o: signals_asm.c ../byterun/fail.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \
- signals_osdep.h stack.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \
 signals_osdep.h stack.h
 startup.p.o: startup.c ../byterun/callback.h ../byterun/mlvalues.h \
- ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
- ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \
- ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \
- ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \
- ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h
 ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \
 ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \
 ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \
 ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \
 ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h
 str.p.o: str.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h
 sys.p.o: sys.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \
- ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \
- ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \
 ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \
 ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h
 terminfo.p.o: terminfo.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
- ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \
- ../byterun/io.h ../byterun/mlvalues.h
 ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \
 ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \
 ../byterun/io.h ../byterun/mlvalues.h
 unix.p.o: unix.c ../byterun/config.h ../byterun/../config/m.h \
- ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \
- ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \
- ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
- ../byterun/misc.h ../byterun/osdeps.h
 ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \
 ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \
 ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \
 ../byterun/misc.h ../byterun/osdeps.h
 weak.p.o: weak.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \
- ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
- ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \
- ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
- ../byterun/minor_gc.h ../byterun/mlvalues.h
 ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \
 ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \
 ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \
 ../byterun/minor_gc.h ../byterun/mlvalues.h
index 3e37ab1ea45454ef6fabde6a46353048fc42163a..efffa3355ab81a3be54ac9d4558953680c98ee0a 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 10287 2010-04-20 15:47:15Z doligez $
 
 include ../config/Makefile
 
index 75fe2614155647a5c195967998fe34c5fb1d68ad..f9ed767865077ad50a433103de77f9433ab4fdd8 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 10325 2010-04-28 12:00:27Z xleroy $
 
 include ../config/Makefile
 
index c5251b73a55b6cc8c5983cfb13cf94ec74bd30df..495bed543f189a4bb38232f3ca8d948e40928db9 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: alpha.S 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Asm part of the runtime system, Alpha processor */
 
index 97de5183994106210cedf4c1be243e59506db0da..8eb4ebfaaeccf0d3ce11159d3c840170d51c628d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: amd64.S 10270 2010-04-19 08:47:10Z xleroy $ */
 
 /* Asm part of the runtime system, AMD64 processor */
 /* Must be preprocessed by cpp */
index c1d97e05b1ce9e7d29c60df52b2a8baa235a4533..fa72ed8eb56ce3b2c0a0bf021cca85e774361a90 100644 (file)
@@ -11,7 +11,7 @@
 ;
 ;*********************************************************************
 
-; $Id$
+; $Id: amd64nt.asm 10215 2010-03-28 08:04:39Z xleroy $
 
 ; Asm part of the runtime system, AMD64 processor, Intel syntax
 
index 8a47d182c92444ab90432832c7292a2c451f4eb4..164f7310eb5a247cde5d8379ab3e6a31a0df7670 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: arm.S 9252 2009-05-04 13:46:46Z xleroy $ */
 
 /* Asm part of the runtime system, ARM processor */
 
index 0825cade53866aadf75c9d73073271f0527e83d9..f81f54b17e353b02fe1d470c275c704da3bf9a57 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: backtrace.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Stack backtrace for uncaught exceptions */
 
index a1ec0fb070e82c7fa2c9c9ee8d722abfbbfe65b9..0b2544cce3d9f0959e44d2116bc540223651d11f 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fail.c 9030 2008-09-18 11:23:28Z xleroy $ */
 
 /* Raising exceptions from C. */
 
index abdd4554b87d4a58bad11b764c1e4cc7c206257b..1a7909b059c7c48b6d9ec78726321b2c3918626c 100644 (file)
@@ -11,7 +11,7 @@
 ;*                                                                   *
 ;*********************************************************************
 
-; $Id$
+; $Id: hppa.S 9547 2010-01-22 12:48:24Z doligez $
 
 ; Asm part of the runtime system for the HP PA-RISC processor.
 ; Must be preprocessed by cpp
index 73ac46741d48f05d9b9766dc4cc29989709bee90..95198e0a658bb63304221f321b3d521e5e422a32 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: i386.S 8962 2008-08-01 08:04:57Z xleroy $ */
 
 /* Asm part of the runtime system, Intel 386 processor */
 /* Must be preprocessed by cpp */
index 711449cfbb5bc04651252cda15b903278a4509b3..c00771b8edfac2fd3e0c89e030cff6ce62234e91 100644 (file)
@@ -11,7 +11,7 @@
 ;
 ;*********************************************************************
 
-; $Id$
+; $Id: i386nt.asm 9547 2010-01-22 12:48:24Z doligez $
 
 ; Asm part of the runtime system, Intel 386 processor, Intel syntax
 
index d4296fa4a4eb9944704794936f7873c2be379a9d..6145338e3b2a4ff63be1c55d228ef57eab7cab06 100644 (file)
@@ -10,7 +10,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: ia64.S 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Asm part of the runtime system, IA64 processor */
 
index 559eacbeb87444e0ff2d8e378c2a0653c54cb049..bf3cbfcb9b5c3f6831e5dfa8de759bf473d05594 100644 (file)
@@ -11,7 +11,7 @@
 |*                                                                     *
 |***********************************************************************
 
-| $Id$
+| $Id: m68k.S 6050 2004-01-03 12:51:20Z doligez $
 
 | Asm part of the runtime system, Motorola 68k processor
 
index 03fd623435ce6d2b3d072f88fbd054d4d8299189..2ce19ef2625e665cbf98ee476e3feeff0763c3c0 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: mips.s 6552 2004-07-13 12:19:15Z xleroy $ */
 
 /* Asm part of the runtime system, Mips processor, IRIX n32 conventions */
 
index d63cdae8665c9110a33a40456642761c4544f428..0f0abf86e386ce377e5435cb801273665e0ce6b8 100644 (file)
@@ -11,7 +11,7 @@
 #*                                                                   *
 #*********************************************************************
 
-# $Id$
+# $Id: power-aix.S 6050 2004-01-03 12:51:20Z doligez $
 
         .csect  .text[PR]
 
index 968e3aeb887796f661add629e4ee943d29fe2396..dfe8a38eaaddf236e41b19435649826d108112d2 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                   */
 /*********************************************************************/
 
-/* $Id$ */
+/* $Id: power-elf.S 9547 2010-01-22 12:48:24Z doligez $ */
 
 #define Addrglobal(reg,glob) \
         addis   reg, 0, glob@ha; \
index 765de9c8ccc61b78e0af0466744ca9dbc6c21b22..4826537919682be36786aa3590913f5f90db9bc2 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                   */
 /*********************************************************************/
 
-/* $Id$ */
+/* $Id: power-rhapsody.S 7812 2007-01-29 12:11:18Z xleroy $ */
 
 #ifdef __ppc64__
 #define X(a,b) b
index cb75a099cac30763997122cd88fb5ede92ca8824..a18083c9116ab0caa66a3c865cce6fdc54393c6f 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: roots.c 10315 2010-04-27 07:55:08Z xleroy $ */
 
 /* To walk the memory roots for garbage collection */
 
index f8f542ada958d93cc4f5acbc7307c0fd53edc0af..da4491d60dbfc18e5342fa97f5f5d43577c8ede5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: signals_asm.c 8768 2008-01-11 16:13:18Z doligez $ */
 
 /* Signal handling, code specific to the native-code compiler */
 
index 76552e5ee25a264bea2dde1cb5734637bc100fcd..1e913271966abc1be614a0ff5ad137cfdedca854 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: signals_osdep.h 9270 2009-05-20 11:52:42Z doligez $ */
 
 /* Processor- and OS-dependent signal interface */
 
index 38d0be0c16a5e1e7de0d08d72badc07b54f1b124..d205c65e3b2272c21fc88dc4ead83ab01dac13bb 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sparc.S 6631 2004-10-06 06:33:25Z garrigue $ */
 
 /* Asm part of the runtime system for the Sparc processor.  */
 /* Must be preprocessed by cpp */
index 62a33e71fce2331ee6ded39d6b9cdd832a177b63..c778873634ebdfdbf2c9949cb27eb96fbf8274ae 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: stack.h 10315 2010-04-27 07:55:08Z xleroy $ */
 
 /* Machine-dependent interface with the asm code */
 
index 8bfe762119ecd1d9830c726ad260181a894f9a10..b57ab9e15460f6f0a10354813cf7607fd2de49d9 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: startup.c 10315 2010-04-27 07:55:08Z xleroy $ */
 
 /* Start-up code */
 
index 836eb30299eccd99f3d1fc191d56020e6ad39fdf..2c7c1f9235f58493519e7348bcc98ed09c4b9fda 100755 (executable)
Binary files a/boot/myocamlbuild.boot and b/boot/myocamlbuild.boot differ
index 142d937d3ac8086f501eb005ac38d45eae98adec..9eaea6c889e347fd7af4685ceedfe337197380b0 100755 (executable)
Binary files a/boot/ocamlc and b/boot/ocamlc differ
index a61a315d02a4b02dd528e5e1314d8761c441ea32..9da33ff186d5ba9286e1b7d810aee6dc56c86a52 100755 (executable)
Binary files a/boot/ocamldep and b/boot/ocamldep differ
index 0b785adf08747b2870466d86f972e8a00619e53b..6f62654d27781a7d91e065c3fe80e62b66636d29 100755 (executable)
Binary files a/boot/ocamllex and b/boot/ocamllex differ
index 7329d20b76d3afc337d5df2874af566195243cf5..5625cb7cc9f9a2ef8785aa541793031f20da86a5 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id$
+# $Id: boot.sh 10443 2010-05-20 09:44:25Z doligez $
 cd `dirname $0`/..
 set -ex
 TAGLINE='true: -use_stdlib'
diff --git a/build/camlp4-bootstrap-recipe.txt b/build/camlp4-bootstrap-recipe.txt
new file mode 100644 (file)
index 0000000..9f1417a
--- /dev/null
@@ -0,0 +1,167 @@
+=== Initial setup ===
+  make clean
+  ./build/distclean.sh
+  ./configure -prefix `pwd`/_install
+  ./build/fastworld.sh
+  # Go to "Bootstrap camlp4"
+
+=== Install the bootstrapping camlp4 processor ===
+  ./build/install.sh
+
+=== Build camlp4 ===
+  # This step is not needed right after a "./build/world.sh byte"
+  ./build/camlp4-byte-only.sh
+
+=== Bootstrap camlp4 ===
+  # First "Build camlp4"
+  # Then "Install the bootstrapping camlp4 processor"
+  # Indeed the following bootstrapping script
+  # does use the installed version!
+  ./build/camlp4-bootstrap.sh
+  # If the fixpoint not is reached yet
+    # Go to "Bootstrap camlp4"
+  # Otherwise
+    # Have a look at the changes in
+    # camlp4/boot it may be a good idea to commit them
+
+=== Generate Camlp4Ast.ml ===
+  # First "Install the bootstrapping camlp4 processor"
+  # Indeed the following bootstrapping script
+  # does use the installed version!
+  ./build/camlp4-mkCamlp4Ast.sh
+
+=== Case study "let open M in e" ===
+
+ Open the revised parser
+ Camlp4Parsers/Camlp4OCamlRevisedParser.ml
+
+ Look for similar constructs, indeed rules
+ that start by the same prefix should in
+ the same entry. It is simpler to stick
+ them close to each other.
+
+ [ "let"; r = opt_rec; ...
+ | "let"; "module"; m = a_UIDENT; ...
+
+ So we naturally add something like
+
+ | "let"; "open"; ...
+
+ Then have a look to the "open" construct:
+
+ | "open"; i = module_longident ->
+
+ So we need a module_longident, it becomes:
+
+ | "let"; "open"; i = module_longident; "in"; e = SELF ->
+
+ Then we leave a dummy action but very close to what we want
+ in the end:
+
+ | "let"; "open"; i = module_longident; "in"; e = SELF ->
+   <:expr< open_in $id:i$ $e$ >>
+
+ Here it is just calling a (non-existing) function called open_in.
+
+ Check that there is no other place where we have to duplicate this
+ rule (yuk!). In our case it is! The sequence entry have the "let"
+ rules again.
+
+ Then go into Camlp4Parsers/Camlp4OCamlParser.ml and look for other
+ occurences.
+
+ When copy/pasting the rule take care of SELF occurences, you may
+ have to replace it by expr and expr LEVEL ";" in our case.
+
+ The return type of the production might be different from expr in
+ our case an action become <:str_item<...>> instead of <:expr<...>
+
+ Watch the DELETE_RULE as well, in our case I'm searching for the
+ literal string "let" in the source:
+
+ DELETE_RULE Gram expr: "let"; "open"; module_longident; "in"; SELF END;
+
+ Then build and bootstrap.
+
+ Then you can at last extend the AST, go in:
+
+ Camlp4/Camlp4Ast.partial.ml
+
+ And add the "open in" constructor (at the end).
+
+   (* let open i in e *)
+ | ExOpI of loc and ident and expr
+
+ Then "Generate Camlp4Ast.ml" and build.
+
+ We get a single warning in Camlp4/Struct/Camlp4Ast2OCamlAst.ml but
+ don't fix it now.
+
+ Then I hacked the camlp4/boot/camlp4boot.ml to generate:
+   Ast.ExOpI(_loc, i, e)
+ instead of
+   Ast.ExApp(_loc .... "open_in" ... i ... e ...)
+
+ Build. Bootstrap once and build again.
+
+ Then change the parsers again and replace the
+   open_in $id:i$ $e$
+ by
+   let open $i$ in $e$
+
+ Then change the Parsetree generation in
+   Camlp4/Struct/Camlp4Ast2OCamlAst.ml
+
+   | <:expr@loc< let open $i$ in $e$ >> ->
+       mkexp loc (Pexp_open (long_uident i) (expr e))
+
+ Change the pretty-printers as well (drawing inspiration in
+   "let module" in this case):
+
+ In Camlp4/Printers/OCaml.ml:
+   | <:expr< let open $i$ in $e$ >> ->
+       pp f "@[<2>let open %a@]@ @[<2>in@ %a@]" 
+             o#ident i o#reset_semi#expr e
+ And at the end of #simple_expr:
+   <:expr< let open $_$ in $_$ >>
+
+ Have a look in Camlp4/Printers/OCamlr.ml as well.
+
+=== Second case study "with t := ..." ===
+
+1/ Change the revised parser first.
+Add new parsing rules for := but keep the old actions for now.
+
+2/ Change Camlp4Ast.partial.ml, add:
+    (* type t := t *)
+    | WcTyS of loc and ctyp and ctyp
+    (* module i := i *)
+    | WcMoS of loc and ident and ident
+
+3/ "Generate Camlp4Ast.ml" and build.
+
+4/ Change the generated camlp4/boot/camlp4boot.ml:
+   Look for ":=" and change occurences of
+   WcMod by WcMoS and WcTyp by WcTyS
+
+5/ Build (DO NOT bootstrap)
+   "Install the bootstrapping camlp4 processor"
+
+6/ Change the required files:
+   Camlp4/Printers/OCaml.ml:
+     just copy/paste&adapt what is done for
+       "... with type t = u" and
+       "... with module M = N"
+   Camlp4/Struct/Camlp4Ast2OCamlAst.ml:
+       I've factored out a common part under
+       another function and then copy/pasted.
+   Camlp4Parsers/Camlp4OCamlRevisedParser.ml:
+       Change the <:with_constr< type $...$ = $...$ >>
+       we've introduced earlier by replacing the '='
+       by ':='.
+   Camlp4Parsers/Camlp4OCamlParser.ml:
+       Copy paste what we have done in Camlp4OCamlRevisedParser
+       and but we need to call opt_private_ctyp instead of
+       ctyp (just like the "type =" construct).
+
+7/ Build & Bootstrap
index d5b448b1613b4a20383cd025f3365bd29907c197..ef9a93c01b802b6f980dccff244a4901b691b180 100755 (executable)
@@ -1,8 +1,13 @@
 #!/bin/sh
-# $Id$
+
+# README: to bootstrap camlp4 have a look at build/camlp4-bootstrap-recipe.txt
+
 set -e
 cd `dirname $0`/..
 
+. config/config.sh
+export PATH=$BINDIR:$PATH
+
 TMPTARGETS="\
   camlp4/boot/Lexer.ml"
 
index ab98ef50ff267224937fe5a9038ca1e28f2d4462..673482cf3e3f5af11e679c64cc0fecafaf8ac566 100755 (executable)
@@ -13,7 +13,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: camlp4-byte-only.sh 10443 2010-05-20 09:44:25Z doligez $
 
 set -e
 cd `dirname $0`/..
diff --git a/build/camlp4-mkCamlp4Ast.sh b/build/camlp4-mkCamlp4Ast.sh
new file mode 100755 (executable)
index 0000000..2a30b9a
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+# $Id$
+set -e
+cd `dirname $0`/..
+
+. config/config.sh
+export PATH=$BINDIR:$PATH
+
+CAMLP4AST=camlp4/Camlp4/Struct/Camlp4Ast.ml
+BOOTP4AST=camlp4/boot/Camlp4Ast.ml
+
+[ -f "$BOOTP4AST" ] && mv "$BOOTP4AST" "$BOOTP4AST.old"
+rm -f "_build/$BOOTP4AST"
+rm -f "_build/$CAMLP4AST"
+
+if [ -x ./boot/myocamlbuild.native ]; then
+  OCAMLBUILD=./boot/myocamlbuild.native
+else
+  OCAMLBUILD="./boot/ocamlrun boot/myocamlbuild"
+fi
+$OCAMLBUILD $CAMLP4AST
+
+echo promote $CAMLP4AST
+cp _build/$CAMLP4AST camlp4/boot/`basename $CAMLP4AST`
index d9bdbd1db532767e5cef071dc25c310559d8a48a..c8e9e6c4dfbb3ae259b3c736cd7056e524b1d936 100755 (executable)
@@ -13,7 +13,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: camlp4-native-only.sh 10443 2010-05-20 09:44:25Z doligez $
 
 set -e
 cd `dirname $0`/..
index 7c68906a485a408c34162418ce6810b25bf07280..ab5b0f85929930bff8919f07ed25fb1f46394427 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id$
+# $Id: camlp4-targets.sh 10443 2010-05-20 09:44:25Z doligez $
 CAMLP4_COMMON="\
   camlp4/Camlp4/Camlp4Ast.partial.ml \
   camlp4/boot/camlp4boot.byte"
index b3efb3ab93c4e6c9a0838838c743dd1756fa9776..272b8b28d1c30750c73b79358f12107568ebd6d7 100755 (executable)
@@ -12,7 +12,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: distclean.sh 10443 2010-05-20 09:44:25Z doligez $
 
 cd `dirname $0`/..
 set -ex
index 10ffa812f8119ca376e9310fcf3187f8c8b7a1bf..ca9d9712e610e62d31f87b6e186f002dc0d4295e 100755 (executable)
@@ -13,7 +13,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: fastworld.sh 10443 2010-05-20 09:44:25Z doligez $
 
 cd `dirname $0`
 set -e
index 1a60a87ecc8659eaa6c00e60032eaf85bf31b6e8..a7ab1035d2e2caa6489a43b7a9750a3f5bdf2ca6 100755 (executable)
@@ -12,7 +12,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: install.sh 10443 2010-05-20 09:44:25Z doligez $
 
 set -e
 
index 9c7eebd3c3ef35279cd4b6925fbe044d4a4dd64a..5853191ce9b898252b388ec9b81a58cdb6c7640a 100755 (executable)
@@ -12,7 +12,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: mkmyocamlbuild_config.sh 10443 2010-05-20 09:44:25Z doligez $
 
 cd `dirname $0`/..
 
index 54f7cc5c72de57a4a90d15a3d95e0295c16a3914..9e637730065aad9a843c1a43c1e7c1234bc61a70 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id$
+# $Id: mkruntimedef.sh 10443 2010-05-20 09:44:25Z doligez $
 echo 'let builtin_exceptions = [|'; \
 sed -n -e 's|.*/\* \("[A-Za-z_]*"\) \*/$|  \1;|p' byterun/fail.h | \
 sed -e '$s/;$//'; \
index 4333542f933a6f1ff1cf4283683bc562056ae0eb..b7b00cd7c97ca17302af603fa7505051adbe8558 100755 (executable)
@@ -1,10 +1,24 @@
 #!/bin/sh
-# $Id$
+
+#########################################################################
+#                                                                       #
+#                            Objective Caml                             #
+#                                                                       #
+#   Nicolas Pouillard, Berke Durak, projet Gallium, INRIA Rocquencourt  #
+#                                                                       #
+#   Copyright 2007 Institut National de Recherche en Informatique et    #
+#   en Automatique.  All rights reserved.  This file is distributed     #
+#   under the terms of the Q Public License version 1.0.                #
+#                                                                       #
+#########################################################################
+
+# $Id: myocamlbuild.sh 10449 2010-05-21 11:48:35Z doligez $
+
 cd `dirname $0`/..
 set -xe
 if [ ! -x _build/ocamlbuild/ocamlbuildlight.byte ]; then
   if [ ! -x ocamlbuild/_build/ocamlbuildlight.byte ]; then
-    (cd ocamlbuild && make)
+    (cd ocamlbuild && ${GNUMAKE:-make})
   fi
   mkdir -p _build/ocamlbuild
   for i in "light.cmo" "light.byte" "lightlib.cma" "_plugin.cmi" "_pack.cmi"
index 17f7b87a86ad5fdf1b81b6e992f95afd5eb18d92..fe4d34e82d829b09f936f6bca8a8de98262509ef 100755 (executable)
@@ -13,7 +13,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: ocamlbuild-byte-only.sh 10443 2010-05-20 09:44:25Z doligez $
 
 set -e
 cd `dirname $0`/..
index ce964127459399c4f1538dfa85c0e6e66c6b51cd..92630a11435a7865bff3604f6919e30f2db7e48c 100755 (executable)
@@ -13,7 +13,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: ocamlbuild-native-only.sh 10443 2010-05-20 09:44:25Z doligez $
 
 set -e
 cd `dirname $0`/..
index a7a570a9248d0b89e82c21df7eddabc6c832a3b2..6997b15f9da294b52e2ec71b7b1ebc95fce8e587 100755 (executable)
@@ -13,7 +13,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: ocamlbuildlib-native-only.sh 10443 2010-05-20 09:44:25Z doligez $
 
 set -e
 cd `dirname $0`/..
index 301b75f19136a586e4dc9aac3d73d6fc559cae69..cb19fe3967502f6fdef348f242f183190f7264f0 100644 (file)
@@ -13,7 +13,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: otherlibs-targets.sh 10443 2010-05-20 09:44:25Z doligez $
 
 OTHERLIBS_BYTE=""
 OTHERLIBS_NATIVE=""
index 619976289038ff2562d59cb6548321e98856697b..56d31819b6f4ad823607be60fb77c24f939f948d 100755 (executable)
@@ -12,7 +12,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: partial-install.sh 10443 2010-05-20 09:44:25Z doligez $
 
 ######################################
 ######### Copied from build/install.sh
index 09e619b621ca7b8aba000824b3c8bc5da941d0b3..e740a9bd176f74b263a0e52ed8f5c10bb58ac68f 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: targets.sh 10443 2010-05-20 09:44:25Z doligez $
 
 . config/config.sh
 . build/otherlibs-targets.sh
index d8a18abb97d621296f1e81efcc4f1db39335b025..d78047b28d8c31c9e1952fdc6520b60c7330ad76 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id$
+# $Id: world.all.sh 10443 2010-05-20 09:44:25Z doligez $
 set -e
 cd `dirname $0`/..
 . build/targets.sh
index d3e96dc4b6a4efc29d0f76adbb0feaff8d43cdd7..3e2738e5d169c47a3eddcb0af71cf2f72119e4a1 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id$
+# $Id: world.byte.sh 10443 2010-05-20 09:44:25Z doligez $
 set -e
 cd `dirname $0`/..
 . build/targets.sh
index ac4a183237ac9f8d5fc972279303a4afda40c7d1..a492723a933d872d1a300246ba412b0bc3c8ae23 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id$
+# $Id: world.native.sh 10443 2010-05-20 09:44:25Z doligez $
 set -e
 cd `dirname $0`/..
 . build/targets.sh
index 09c254d4f3d5e7f31c5bc0a623ba8933bc00c605..7189cbc9e77b3fe4d59af5e1a42835d0d5fd530f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytegen.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (*  bytegen.ml : translation of lambda terms to lists of instructions. *)
 
index 04265fde3093629d9a74bf22cb04c7f63d86b5d2..29407c3fe2a436bc899b5dea501bfae8c0d9f3d4 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytegen.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Generation of bytecode from lambda terms *)
 
index ba08fc019ff9b1aad5241e8c1c95f0cbf0d38a55..5fc34af504393841c7594d42a667a558e5c9d3da 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytelibrarian.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Build libraries of .cmo files *)
 
index a4f9cc2f298ea3771bc0295e739df14a89e240bb..2c70697657a73153a2f7a02fa44c98a42bf5901b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytelibrarian.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 (* Build libraries of .cmo files *)
 
index ede7bb97701bd6859f22a7054a935cfd79a68992..4a6426db6828d4f4a80e26301ea95d00c606cbc5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytelink.ml 9540 2010-01-20 16:26:46Z doligez $ *)
 
 (* Link a set of .cmo files and produce a bytecode executable. *)
 
index 2e8f0cb31323e1575abddda72db7588675f8ad68..99befe1b854693de1fb4da3f62e9094a0e6f5cfd 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytelink.mli 7422 2006-05-11 15:50:53Z xleroy $ *)
 
 (* Link .cmo files and produce a bytecode executable. *)
 
index 31eff07faaee27d7f8e96f34c019f52300c665e9..cc1cdcd3b8083b9f2503173bbe049be06f6c9857 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytepackager.ml 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (* "Package" a set of .cmo files into one .cmo file having the
    original compilation units as sub-modules. *)
@@ -28,7 +28,7 @@ type error =
 
 exception Error of error
 
-(* References accumulating informations on the .cmo files *)
+(* References accumulating information on the .cmo files *)
 
 let relocs = ref ([] : (reloc_info * int) list)
 let events = ref ([] : debug_event list)
index 836eb9c6374e666e657ad7017d73b8751fa2c4f8..de5c08629deb9afe86d6baf3db12d6f6130974c4 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytepackager.mli 4367 2002-02-08 16:55:44Z xleroy $ *)
 
 (* "Package" a set of .cmo files into one .cmo file having the
    original compilation units as sub-modules. *)
index 16eaf23776fccfb64cba01dfee89270d3aac7cdf..407aeec8659a435342bd456db4a15a4f1374ddbd 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytesections.ml 6130 2004-02-22 15:07:51Z xleroy $ *)
 
 (* Handling of sections in bytecode executable files *)
 
index 5292cc1b4a17f0a908c19b686f771052ea274e94..a58ea59cb590f13435d54f8f39f80fbf14edcb62 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bytesections.mli 6130 2004-02-22 15:07:51Z xleroy $ *)
 
 (* Handling of sections in bytecode executable files *)
 
index c87e6df4e23576c8dece5f90791ed5419f9a66ce..fd3f972daff7fa851b7af72240274e221c1ab97e 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: cmo_format.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Symbol table information for .cmo and .cma files *)
 
index bcf66b4296ab99b83c4faf424883d850bcbe22b6..ae48a4ab462abb6e5dd583df38e6aa269a513362 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: dll.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Handling of dynamically-linked libraries *)
 
index fea455f7cb4a0a76a0fca4e2832a3da66a14c7dc..446e420aa3ddb6bbcb6bce0c0b1bbed8d6385d2c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: dll.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Handling of dynamically-linked libraries *)
 
index 2cec99dc8386005e2512dcce2167e3a2fb5a00a9..46bb5dd1f8c9d5fc49d5f54811b6130ab5b4ed6b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emitcode.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Generation of bytecode + relocation information *)
 
index fa20de18164c71caf8025d2bded421ffae65c769..6c78f0463b1707827c1aa889f028a0f215fab538 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: emitcode.mli 7422 2006-05-11 15:50:53Z xleroy $ *)
 
 (* Generation of bytecode for .cmo files *)
 
index 4f4fa14fa197a101c0aa0aa042836251e0a7a663..edc60d5638c9f1a907c6a190dca09989f2a82c2a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: instruct.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 open Lambda
 
index 6b9367f9a0268685f781b7a7b28c1c3c469fc1e7..3afc880bb8af917009026c8eae8139517ec22923 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: instruct.mli 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (* The type of the instructions of the abstract machine *)
 
index ff94a6d9cce3b9b2b652d3cd6500f5b7c05d70be..0b195425becd471206fac030041ebc08b0daf5fc 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lambda.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Misc
 open Path
index 8c34ac94ab9730200cec9fc7909c058ed2f416b8..2f14c2998ce426931fa5125156193ec1bbdffe26 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lambda.mli 10268 2010-04-18 09:02:40Z xleroy $ *)
 
 (* The "lambda" intermediate code *)
 
index 21006cc695e68a6363ff8d98a0d47bfc3556e4a0..cf7c0feb82c29f15d85c6a734801a3fe598c6650 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: matching.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Compilation of pattern matching *)
 
index ebfed8410dbe018ded7a2d4d49235d795b83c392..5e258565e9a5e3a80e0b89fa626afffd0fb4402d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: matching.mli 8974 2008-08-01 16:57:10Z mauny $ *)
 
 (* Compilation of pattern-matching *)
 
index a4beaf42248a6768e0b63965cc9f62770fdc1752..729e7cd2616f7655f1393fd8b22be3afc37c1bbd 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: meta.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 external global_data : unit -> Obj.t array = "caml_get_global_data"
 external realloc_global_data : int -> unit = "caml_realloc_global"
index 774c5f1374ad7b71a371cf23fde9188398b3fe64..ce1ef0cb453d78f4eec1709dec674fca6006063b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: meta.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* To control the runtime system and bytecode interpreter *)
 
index 2f0508b2997f9edc531e3794bf336f69932afc88..1f0a095c9dce80c65f772d9f4477518006a60c5d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printinstr.ml 7031 2005-08-25 15:35:16Z doligez $ *)
 
 (* Pretty-print lists of instructions *)
 
index e88e76ffc727adea2c38a1d92298696170f1573e..4b1efd690ae9c085783b7699d0cc10d16b413b0b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printinstr.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 (* Pretty-print lists of instructions *)
 
index 0d6e19148dc45cef5207573414737cb84885517b..0c7fde69629078a36e8b86f03780bc3e1c0c00f8 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printlambda.ml 8974 2008-08-01 16:57:10Z mauny $ *)
 
 open Format
 open Asttypes
index 352d6d0248c1c62516e82e8221b8e94e25d428bd..4c0d5681a78d6467c5f1aa972d80230d50b533ff 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printlambda.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 open Lambda
 
index 27309f60aac6fef7862d8a00a6cb63431b83e4fd..f89d192ca826e494a5947985228188cb9d006449 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: runtimedef.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Values and functions known and/or provided by the runtime system *)
 
index 6081d5bd4a25b4ab5546cbaaf87734d4c0bb2f06..e62af889246fcfcacaa0adf7ad921f44e4353d01 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: simplif.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Elimination of useless Llet(Alias) bindings.
    Also transform let-bound references into variables. *)
index 5e5217ff18d3811da8308f851d7e51213b37b639..fd8eab7490a806e1719be52d5a7e3d16ce81c846 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: simplif.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Elimination of useless Llet(Alias) bindings *)
 
index 136144efa592acb8b53358eadf5b1b4150abba99..d6ecc94298fe51716782533abbaa1df854e8d04c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: symtable.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* To assign numbers to globals and primitives *)
 
index cbef01e25fa375f66a2922e69865fe27bc749c42..2b1583f228933c52b1274680707b0ca3fd7eeb23 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: symtable.mli 7422 2006-05-11 15:50:53Z xleroy $ *)
 
 (* Assign locations and numbers to globals and primitives *)
 
index cf5783a979c80e55a03b2122bc8c6cdb0199307f..a8f689a05570e660800a90f725712e7d3ddbaf89 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: translclass.ml 9153 2008-12-03 18:09:09Z doligez $ *)
 
 open Misc
 open Asttypes
index 4938278f7e3fd7672268d103fca82fd8fd83e8e2..135f8d86debdac4270b877eb6a485f627eacc978 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: translclass.mli 7372 2006-04-05 02:28:13Z garrigue $ *)
 
 open Typedtree
 open Lambda
index 31b1e8093b29500a66f9e6b3c9a9aa42f4995dc0..12b2f90d3edb6c4b38620f5134735b7502856a75 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: translcore.ml 10445 2010-05-20 14:57:42Z doligez $ *)
 
 (* Translation from typed abstract syntax to lambda terms,
    for the core language *)
@@ -381,6 +381,7 @@ let check_recursive_lambda idlist lam =
         let idlist' = add_letrec bindings idlist in
         List.for_all (fun (id, arg) -> check idlist' arg) bindings &&
         check_top idlist' body
+    | Lprim (Pmakearray (Pgenarray), args) -> false
     | Lsequence (lam1, lam2) -> check idlist lam1 && check_top idlist lam2
     | Levent (lam, _) -> check_top idlist lam
     | lam -> check idlist lam
@@ -398,9 +399,8 @@ let check_recursive_lambda idlist lam =
         check idlist' body
     | Lprim(Pmakeblock(tag, mut), args) ->
         List.for_all (check idlist) args
-    | Lprim(Pmakearray(Paddrarray|Pintarray), args) ->
+    | Lprim(Pmakearray(_), args) ->
         List.for_all (check idlist) args
-    | Lprim (Pmakearray (Pgenarray), args) -> false
     | Lsequence (lam1, lam2) -> check idlist lam1 && check idlist lam2
     | Levent (lam, _) -> check idlist lam
     | lam ->
index baac05567591f27d1c760f9ad4f8f847e8801fbc..9f8e1ac2f3350ba49f8a7f2a3e190a074b18d1a1 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: translcore.mli 8232 2007-05-16 08:21:41Z doligez $ *)
 
 (* Translation from typed abstract syntax to lambda terms,
    for the core language *)
index bd6107f03561a0df701fb7ad26bc7a4e3282180c..bc3fb138056cc3130beefbcee4932eed17838584 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: translmod.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Translation from typed abstract syntax to lambda terms,
    for the module language *)
index 9e47ca5e6aca92378e0efdb81d337c63c4ac8d32..c54e0715b80716198042f615b900aec87fc3f3a7 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: translmod.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Translation from typed abstract syntax to lambda terms,
    for the module language *)
index a0df551d80c3beae0bdbd3ea771baabc73a971f0..ccf8eb1e3826b78024f96b05c7d42277ec0aca0e 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: translobj.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Misc
 open Primitive
index 26fa504b4556c78c8d6389e98b77d20c59531c0e..c2fdee9464b45865f356528c8073f602ab839e75 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: translobj.mli 9153 2008-12-03 18:09:09Z doligez $ *)
 
 open Lambda
 
index f8e43f0df742f7ae2d412c67471569f66e39f745..cfd2ee83c05bb6f61610e447ce0d599be51747c3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typeopt.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Auxiliaries for type-based optimizations, e.g. array kinds *)
 
index 811c2da37c526e75c8ec35a8f40b04c6a007b92c..e7d3a48dd8063dd2beadb80fd89d03d6473ff032 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typeopt.mli 2873 2000-02-28 15:45:50Z xleroy $ *)
 
 (* Auxiliaries for type-based optimizations, e.g. array kinds *)
 
index b4714b0506ab109fdb26580e83f1499c59536543..8873b77fb53d3f0707eb5e9ab00c31e30e4d09fd 100644 (file)
@@ -17,3 +17,4 @@ interp.a.lst
 .gdb_history
 *.so
 *.a
+.depend.nt
index 2044d56cecd24244ecf49b3cfc614325e327968a..b92cc6de2ac0e687d4ee646b28f3ea4a5d3b0d22 100644 (file)
 alloc.o: alloc.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \
- minor_gc.h stacks.h
 ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \
 minor_gc.h stacks.h
 array.o: array.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 backtrace.o: backtrace.c config.h ../config/m.h ../config/s.h \
- compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \
- fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
- startup.h stacks.h sys.h backtrace.h
 compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \
 fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
 startup.h stacks.h sys.h backtrace.h
 callback.o: callback.c callback.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h
 ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h
 compact.o: compact.c config.h ../config/m.h ../config/s.h compatibility.h \
finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h \
- minor_gc.h gc_ctrl.h weak.h
 finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h \
 freelist.h minor_gc.h gc_ctrl.h weak.h
 compare.o: compare.c custom.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h
 ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h
 custom.o: custom.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h
 ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h
 debugger.o: debugger.c config.h ../config/m.h ../config/s.h \
- compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \
- instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h sys.h
 compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \
 instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h sys.h
 dynlink.o: dynlink.c config.h ../config/m.h ../config/s.h compatibility.h \
- alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h osdeps.h prims.h
 alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h osdeps.h prims.h
 extern.o: extern.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
- memory.h major_gc.h freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
 memory.h major_gc.h freelist.h minor_gc.h reverse.h
 fail.o: fail.c alloc.h compatibility.h misc.h config.h ../config/m.h \
../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h freelist.h \
- minor_gc.h printexc.h signals.h stacks.h
 ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h \
 freelist.h minor_gc.h printexc.h signals.h stacks.h
 finalise.o: finalise.c callback.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \
- major_gc.h freelist.h minor_gc.h signals.h
 ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \
 major_gc.h freelist.h minor_gc.h signals.h
 fix_code.o: fix_code.c config.h ../config/m.h ../config/s.h \
compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h md5.h \
- io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h
 compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h \
 md5.h io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h
 floats.o: floats.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h reverse.h stacks.h
 ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h reverse.h stacks.h
 freelist.o: freelist.c config.h ../config/m.h ../config/s.h \
- compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \
- major_gc.h minor_gc.h
 compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \
 major_gc.h minor_gc.h
 gc_ctrl.o: gc_ctrl.c alloc.h compatibility.h misc.h config.h \
- ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \
- roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \
- stacks.h
 ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \
 roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \
 stacks.h
 globroots.o: globroots.c memory.h compatibility.h config.h ../config/m.h \
- ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
- roots.h globroots.h
 ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
 roots.h globroots.h
 hash.o: hash.c mlvalues.h compatibility.h config.h ../config/m.h \
- ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 instrtrace.o: instrtrace.c
 intern.o: intern.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
- memory.h major_gc.h freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
 memory.h major_gc.h freelist.h minor_gc.h reverse.h
 interp.o: interp.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \
- fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \
- memory.h gc.h minor_gc.h prims.h signals.h stacks.h jumptbl.h
 ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \
 fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \
 memory.h gc.h minor_gc.h prims.h signals.h stacks.h jumptbl.h
 ints.o: ints.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \
- memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h
 ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \
 memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h
 io.o: io.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \
- misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h signals.h sys.h
 misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h signals.h sys.h
 lexing.o: lexing.c fail.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 main.o: main.c misc.h compatibility.h config.h ../config/m.h \
- ../config/s.h mlvalues.h sys.h
 ../config/s.h mlvalues.h sys.h
 major_gc.o: major_gc.c compact.h config.h ../config/m.h ../config/s.h \
- compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \
- memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h
 compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \
 memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h
 md5.o: md5.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h reverse.h
 memory.o: memory.c fail.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \
- minor_gc.h signals.h
 ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \
 minor_gc.h signals.h
 meta.o: meta.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \
- major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h
 ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \
 major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h
 minor_gc.o: minor_gc.c config.h ../config/m.h ../config/s.h \
- compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \
- gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h
 compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \
 gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h
 misc.o: misc.c config.h ../config/m.h ../config/s.h compatibility.h \
- misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h
 misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h
 obj.o: obj.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \
- memory.h minor_gc.h prims.h
 ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \
 memory.h minor_gc.h prims.h
 parsing.o: parsing.c config.h ../config/m.h ../config/s.h compatibility.h \
- mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h alloc.h
+  mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
+  alloc.h
 prims.o: prims.c mlvalues.h compatibility.h config.h ../config/m.h \
- ../config/s.h misc.h prims.h
 ../config/s.h misc.h prims.h
 printexc.o: printexc.c backtrace.h mlvalues.h compatibility.h config.h \
- ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \
- printexc.h
 ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \
 printexc.h
 roots.o: roots.c finalise.h roots.h misc.h compatibility.h config.h \
- ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \
- freelist.h minor_gc.h globroots.h stacks.h
 ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \
 freelist.h minor_gc.h globroots.h stacks.h
 signals.o: signals.c alloc.h compatibility.h misc.h config.h \
- ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \
- major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \
- sys.h
 ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \
 major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \
 sys.h
 signals_byt.o: signals_byt.c config.h ../config/m.h ../config/s.h \
- compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \
- minor_gc.h osdeps.h signals.h signals_machdep.h
 compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \
 minor_gc.h osdeps.h signals.h signals_machdep.h
 stacks.o: stacks.c config.h ../config/m.h ../config/s.h compatibility.h \
- fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 startup.o: startup.c config.h ../config/m.h ../config/s.h compatibility.h \
- alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \
- dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \
- interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \
- prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \
- version.h
 alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \
 dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \
 interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \
 prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \
 version.h
 str.o: str.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h
 ../config/s.h mlvalues.h fail.h
 sys.o: sys.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \
- misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \
- stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h
 misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \
 stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h
 terminfo.o: terminfo.c config.h ../config/m.h ../config/s.h \
- compatibility.h alloc.h misc.h mlvalues.h fail.h io.h
 compatibility.h alloc.h misc.h mlvalues.h fail.h io.h
 unix.o: unix.c config.h ../config/m.h ../config/s.h compatibility.h \
- memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
- osdeps.h
 memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
 osdeps.h
 weak.o: weak.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \
- minor_gc.h
 ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \
 minor_gc.h
 alloc.d.o: alloc.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \
- minor_gc.h stacks.h
 ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \
 minor_gc.h stacks.h
 array.d.o: array.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 backtrace.d.o: backtrace.c config.h ../config/m.h ../config/s.h \
- compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \
- fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
- startup.h stacks.h sys.h backtrace.h
 compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \
 fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
 startup.h stacks.h sys.h backtrace.h
 callback.d.o: callback.c callback.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h
 ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h
 compact.d.o: compact.c config.h ../config/m.h ../config/s.h compatibility.h \
finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h \
- minor_gc.h gc_ctrl.h weak.h
 finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h \
 freelist.h minor_gc.h gc_ctrl.h weak.h
 compare.d.o: compare.c custom.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h
 ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h
 custom.d.o: custom.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h
 ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h
 debugger.d.o: debugger.c config.h ../config/m.h ../config/s.h \
- compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \
- instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h sys.h
 compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \
 instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h sys.h
 dynlink.d.o: dynlink.c config.h ../config/m.h ../config/s.h compatibility.h \
- alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h osdeps.h prims.h
 alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h osdeps.h prims.h
 extern.d.o: extern.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
- memory.h major_gc.h freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
 memory.h major_gc.h freelist.h minor_gc.h reverse.h
 fail.d.o: fail.c alloc.h compatibility.h misc.h config.h ../config/m.h \
../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h freelist.h \
- minor_gc.h printexc.h signals.h stacks.h
 ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h \
 freelist.h minor_gc.h printexc.h signals.h stacks.h
 finalise.d.o: finalise.c callback.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \
- major_gc.h freelist.h minor_gc.h signals.h
 ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \
 major_gc.h freelist.h minor_gc.h signals.h
 fix_code.d.o: fix_code.c config.h ../config/m.h ../config/s.h \
compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h md5.h \
- io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h
 compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h \
 md5.h io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h
 floats.d.o: floats.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h reverse.h stacks.h
 ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h reverse.h stacks.h
 freelist.d.o: freelist.c config.h ../config/m.h ../config/s.h \
- compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \
- major_gc.h minor_gc.h
 compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \
 major_gc.h minor_gc.h
 gc_ctrl.d.o: gc_ctrl.c alloc.h compatibility.h misc.h config.h \
- ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \
- roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \
- stacks.h
 ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \
 roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \
 stacks.h
 globroots.d.o: globroots.c memory.h compatibility.h config.h ../config/m.h \
- ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
- roots.h globroots.h
 ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
 roots.h globroots.h
 hash.d.o: hash.c mlvalues.h compatibility.h config.h ../config/m.h \
- ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 instrtrace.d.o: instrtrace.c instruct.h misc.h compatibility.h config.h \
- ../config/m.h ../config/s.h mlvalues.h opnames.h prims.h stacks.h \
- memory.h gc.h major_gc.h freelist.h minor_gc.h
 ../config/m.h ../config/s.h mlvalues.h opnames.h prims.h stacks.h \
 memory.h gc.h major_gc.h freelist.h minor_gc.h
 intern.d.o: intern.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
- memory.h major_gc.h freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
 memory.h major_gc.h freelist.h minor_gc.h reverse.h
 interp.d.o: interp.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \
- fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \
- memory.h gc.h minor_gc.h prims.h signals.h stacks.h
 ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \
 fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \
 memory.h gc.h minor_gc.h prims.h signals.h stacks.h
 ints.d.o: ints.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \
- memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h
 ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \
 memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h
 io.d.o: io.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \
- misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h signals.h sys.h
 misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h signals.h sys.h
 lexing.d.o: lexing.c fail.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 main.d.o: main.c misc.h compatibility.h config.h ../config/m.h \
- ../config/s.h mlvalues.h sys.h
 ../config/s.h mlvalues.h sys.h
 major_gc.d.o: major_gc.c compact.h config.h ../config/m.h ../config/s.h \
- compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \
- memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h
 compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \
 memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h
 md5.d.o: md5.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h reverse.h
 memory.d.o: memory.c fail.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \
- minor_gc.h signals.h
 ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \
 minor_gc.h signals.h
 meta.d.o: meta.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \
- major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h
 ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \
 major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h
 minor_gc.d.o: minor_gc.c config.h ../config/m.h ../config/s.h \
- compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \
- gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h
 compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \
 gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h
 misc.d.o: misc.c config.h ../config/m.h ../config/s.h compatibility.h \
- misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h
 misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h
 obj.d.o: obj.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \
- memory.h minor_gc.h prims.h
 ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \
 memory.h minor_gc.h prims.h
 parsing.d.o: parsing.c config.h ../config/m.h ../config/s.h compatibility.h \
- mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h alloc.h
+  mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
+  alloc.h
 prims.d.o: prims.c mlvalues.h compatibility.h config.h ../config/m.h \
- ../config/s.h misc.h prims.h
 ../config/s.h misc.h prims.h
 printexc.d.o: printexc.c backtrace.h mlvalues.h compatibility.h config.h \
- ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \
- printexc.h
 ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \
 printexc.h
 roots.d.o: roots.c finalise.h roots.h misc.h compatibility.h config.h \
- ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \
- freelist.h minor_gc.h globroots.h stacks.h
 ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \
 freelist.h minor_gc.h globroots.h stacks.h
 signals.d.o: signals.c alloc.h compatibility.h misc.h config.h \
- ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \
- major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \
- sys.h
 ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \
 major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \
 sys.h
 signals_byt.d.o: signals_byt.c config.h ../config/m.h ../config/s.h \
- compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \
- minor_gc.h osdeps.h signals.h signals_machdep.h
 compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \
 minor_gc.h osdeps.h signals.h signals_machdep.h
 stacks.d.o: stacks.c config.h ../config/m.h ../config/s.h compatibility.h \
- fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 startup.d.o: startup.c config.h ../config/m.h ../config/s.h compatibility.h \
- alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \
- dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \
- interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \
- prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \
- version.h
 alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \
 dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \
 interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \
 prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \
 version.h
 str.d.o: str.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h
 ../config/s.h mlvalues.h fail.h
 sys.d.o: sys.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \
- misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \
- stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h
 misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \
 stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h
 terminfo.d.o: terminfo.c config.h ../config/m.h ../config/s.h \
- compatibility.h alloc.h misc.h mlvalues.h fail.h io.h
 compatibility.h alloc.h misc.h mlvalues.h fail.h io.h
 unix.d.o: unix.c config.h ../config/m.h ../config/s.h compatibility.h \
- memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
- osdeps.h
 memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
 osdeps.h
 weak.d.o: weak.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \
- minor_gc.h
 ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \
 minor_gc.h
 alloc.pic.o: alloc.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \
- minor_gc.h stacks.h
 ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \
 minor_gc.h stacks.h
 array.pic.o: array.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 backtrace.pic.o: backtrace.c config.h ../config/m.h ../config/s.h \
- compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \
- fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
- startup.h stacks.h sys.h backtrace.h
 compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \
 fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
 startup.h stacks.h sys.h backtrace.h
 callback.pic.o: callback.c callback.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h
 ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h
 compact.pic.o: compact.c config.h ../config/m.h ../config/s.h compatibility.h \
finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h \
- minor_gc.h gc_ctrl.h weak.h
 finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h \
 freelist.h minor_gc.h gc_ctrl.h weak.h
 compare.pic.o: compare.c custom.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h
 ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h
 custom.pic.o: custom.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h
 ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h
 debugger.pic.o: debugger.c config.h ../config/m.h ../config/s.h \
- compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \
- instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h sys.h
 compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \
 instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h sys.h
 dynlink.pic.o: dynlink.c config.h ../config/m.h ../config/s.h compatibility.h \
- alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h osdeps.h prims.h
 alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h osdeps.h prims.h
 extern.pic.o: extern.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
- memory.h major_gc.h freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
 memory.h major_gc.h freelist.h minor_gc.h reverse.h
 fail.pic.o: fail.c alloc.h compatibility.h misc.h config.h ../config/m.h \
../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h freelist.h \
- minor_gc.h printexc.h signals.h stacks.h
 ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h \
 freelist.h minor_gc.h printexc.h signals.h stacks.h
 finalise.pic.o: finalise.c callback.h compatibility.h mlvalues.h config.h \
- ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \
- major_gc.h freelist.h minor_gc.h signals.h
 ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \
 major_gc.h freelist.h minor_gc.h signals.h
 fix_code.pic.o: fix_code.c config.h ../config/m.h ../config/s.h \
compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h md5.h \
- io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h
 compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h \
 md5.h io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h
 floats.pic.o: floats.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h reverse.h stacks.h
 ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h reverse.h stacks.h
 freelist.pic.o: freelist.c config.h ../config/m.h ../config/s.h \
- compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \
- major_gc.h minor_gc.h
 compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \
 major_gc.h minor_gc.h
 gc_ctrl.pic.o: gc_ctrl.c alloc.h compatibility.h misc.h config.h \
- ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \
- roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \
- stacks.h
 ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \
 roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \
 stacks.h
 globroots.pic.o: globroots.c memory.h compatibility.h config.h ../config/m.h \
- ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
- roots.h globroots.h
 ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
 roots.h globroots.h
 hash.pic.o: hash.c mlvalues.h compatibility.h config.h ../config/m.h \
- ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 instrtrace.pic.o: instrtrace.c
 intern.pic.o: intern.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
- memory.h major_gc.h freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \
 memory.h major_gc.h freelist.h minor_gc.h reverse.h
 interp.pic.o: interp.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \
- fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \
- memory.h gc.h minor_gc.h prims.h signals.h stacks.h jumptbl.h
 ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \
 fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \
 memory.h gc.h minor_gc.h prims.h signals.h stacks.h jumptbl.h
 ints.pic.o: ints.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \
- memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h
 ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \
 memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h
 io.pic.o: io.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \
- misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h signals.h sys.h
 misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h signals.h sys.h
 lexing.pic.o: lexing.c fail.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 main.pic.o: main.c misc.h compatibility.h config.h ../config/m.h \
- ../config/s.h mlvalues.h sys.h
 ../config/s.h mlvalues.h sys.h
 major_gc.pic.o: major_gc.c compact.h config.h ../config/m.h ../config/s.h \
- compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \
- memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h
 compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \
 memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h
 md5.pic.o: md5.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \
- freelist.h minor_gc.h reverse.h
 ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \
 freelist.h minor_gc.h reverse.h
 memory.pic.o: memory.c fail.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \
- minor_gc.h signals.h
 ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \
 minor_gc.h signals.h
 meta.pic.o: meta.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \
- major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h
 ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \
 major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h
 minor_gc.pic.o: minor_gc.c config.h ../config/m.h ../config/s.h \
- compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \
- gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h
 compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \
 gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h
 misc.pic.o: misc.c config.h ../config/m.h ../config/s.h compatibility.h \
- misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h
 misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h
 obj.pic.o: obj.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \
- memory.h minor_gc.h prims.h
 ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \
 memory.h minor_gc.h prims.h
 parsing.pic.o: parsing.c config.h ../config/m.h ../config/s.h compatibility.h \
- mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h alloc.h
+  mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h \
+  alloc.h
 prims.pic.o: prims.c mlvalues.h compatibility.h config.h ../config/m.h \
- ../config/s.h misc.h prims.h
 ../config/s.h misc.h prims.h
 printexc.pic.o: printexc.c backtrace.h mlvalues.h compatibility.h config.h \
- ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \
- printexc.h
 ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \
 printexc.h
 roots.pic.o: roots.c finalise.h roots.h misc.h compatibility.h config.h \
- ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \
- freelist.h minor_gc.h globroots.h stacks.h
 ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \
 freelist.h minor_gc.h globroots.h stacks.h
 signals.pic.o: signals.c alloc.h compatibility.h misc.h config.h \
- ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \
- major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \
- sys.h
 ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \
 major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \
 sys.h
 signals_byt.pic.o: signals_byt.c config.h ../config/m.h ../config/s.h \
- compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \
- minor_gc.h osdeps.h signals.h signals_machdep.h
 compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \
 minor_gc.h osdeps.h signals.h signals_machdep.h
 stacks.pic.o: stacks.c config.h ../config/m.h ../config/s.h compatibility.h \
- fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
- minor_gc.h
 fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \
 minor_gc.h
 startup.pic.o: startup.c config.h ../config/m.h ../config/s.h compatibility.h \
- alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \
- dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \
- interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \
- prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \
- version.h
 alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \
 dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \
 interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \
 prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \
 version.h
 str.pic.o: str.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h
 ../config/s.h mlvalues.h fail.h
 sys.pic.o: sys.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \
- misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \
- stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h
 misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \
 stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h
 terminfo.pic.o: terminfo.c config.h ../config/m.h ../config/s.h \
- compatibility.h alloc.h misc.h mlvalues.h fail.h io.h
 compatibility.h alloc.h misc.h mlvalues.h fail.h io.h
 unix.pic.o: unix.c config.h ../config/m.h ../config/s.h compatibility.h \
- memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
- osdeps.h
 memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \
 osdeps.h
 weak.pic.o: weak.c alloc.h compatibility.h misc.h config.h ../config/m.h \
- ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \
- minor_gc.h
 ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \
 minor_gc.h
index 151529451982d9124cf62baaa08356b3dd795023..081955f195b234edd0ba3d754bfd633b8529d792 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 9319 2009-07-20 11:51:50Z doligez $
 
 include Makefile.common
 
index db5a38c7ad9eba14ba31ecbd8d4aa86b0378c81b..d554d297fcb2f0cd9050146fb0469a9036ea80e2 100755 (executable)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.common 10448 2010-05-21 11:28:21Z doligez $
 
 include ../config/Makefile
 
@@ -84,7 +84,7 @@ jumptbl.h : instruct.h
               -e '/^}/q' instruct.h > jumptbl.h
 
 version.h : ../VERSION
-       echo "#define OCAML_VERSION \"`head -1 ../VERSION`\"" > version.h
+       echo "#define OCAML_VERSION \"`sed -e 1q ../VERSION`\"" > version.h
 
 clean ::
        rm -f ocamlrun$(EXE) ocamlrund$(EXE) *.$(O) *.$(A) *.$(SO)
index a633787de6c98e7b5474322201597de05e4106f9..55c39ed2f76dff52d8cdf7e57173259c1bf4bdd4 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 9547 2010-01-22 12:48:24Z doligez $
 
 include Makefile.common
 
index cc19698a8fa2e601d5a68b5fddf3ad2aab3fea45..1c1f11facfce67e37c96e1908613431f2742034f 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: alloc.c 7849 2007-02-09 13:31:15Z doligez $ */
 
 /* 1. Allocation functions doing the same work as the macros in the
       case where [Setup_for_gc] and [Restore_after_gc] are no-ops.
index 66cab702444a3cc77848c39d6603f30d5d3cbdff..af81bee7d8cfc89ec3a75812f11ab74a5fa6d065 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: alloc.h 7064 2005-09-22 14:21:50Z xleroy $ */
 
 #ifndef CAML_ALLOC_H
 #define CAML_ALLOC_H
index fc60659523ea8d2f4c18f68bfa3aabd56ab67161..870dc124eb03a9eb57eb3e38b6fb2f398dc840c5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: array.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Operations on arrays */
 
index 2b29c31dcc49b81c0ef7d319b03eeb8dc160c76e..85aeb47be70572dfb2be9cdb0fed531bc9ca875d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: backtrace.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Stack backtrace for uncaught exceptions */
 
index 2d9c202eaacf407982fbeb6108a4b583c64598f8..9d1766dd39a56c42eba1051205362a2251dd084c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: backtrace.h 9540 2010-01-20 16:26:46Z doligez $ */
 
 #ifndef CAML_BACKTRACE_H
 #define CAML_BACKTRACE_H
index d76cf108bf5735a31ca7d63fc98229fcc553afa8..c30716b3a7db4a5760538216ee5e1d928bd99162 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: callback.c 7596 2006-09-11 12:12:24Z doligez $ */
 
 /* Callbacks from C to Caml */
 
index ffa6cf3b5ece8be6f3ace0b706a910f30332bdf8..9937832bcc900ac9592b44e32315d8a7c23a97a7 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: callback.h 7596 2006-09-11 12:12:24Z doligez $ */
 
 /* Callbacks from C to Caml */
 
index ba1042fbe50bfba98fa6ee13bf32c003680294c4..b10b6353139af1e02cd8dba5edaa82a506c29275 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: compact.c 8822 2008-02-29 12:56:15Z doligez $ */
 
 #include <string.h>
 
index a4ef4cb186005ccfa1e3641c120b30b412f7e118..155e7ce88e2fd9749707d106473302fb654a5752 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: compact.h 6044 2003-12-31 14:20:40Z doligez $ */
 
 #ifndef CAML_COMPACT_H
 #define CAML_COMPACT_H
index 35a7f66ce9332567f964e9843e7d4a93afc05372..a383724e8239526b1bffa5d57c8764bfb3b55806 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: compare.c 8768 2008-01-11 16:13:18Z doligez $ */
 
 #include <string.h>
 #include <stdlib.h>
index dc392ff3de32d082f4e07042b36a56ff6198ffc9..603d52bcb4a75126cee2b8b1275d3830c8a7a1e6 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: compare.h 6044 2003-12-31 14:20:40Z doligez $ */
 
 #ifndef CAML_COMPARE_H
 #define CAML_COMPARE_H
index 5c21774e060f4d83fdf00725271667d7a07d8b2b..fdc87b7c6ce7936b61970f60402ee3a2c278f380 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: compatibility.h 8953 2008-07-28 11:59:55Z doligez $ */
 
 /* definitions for compatibility with old identifiers */
 
index 57d7947b904e5f3bc79490ab2512942c792a6694..7971382926624ca092d069304e19831cb9f0b969 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: config.h 9153 2008-12-03 18:09:09Z doligez $ */
 
 #ifndef CAML_CONFIG_H
 #define CAML_CONFIG_H
index 24281db84bbbabf4fb77778d4b1b4665e1073aeb..44bb553592f587dd14f91be802ec9584b27174ee 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: custom.c 7064 2005-09-22 14:21:50Z xleroy $ */
 
 #include <string.h>
 
index a706857ae0dc6d6deece180b325e16b22fc887f0..7ac9745c79a769b49663125d89e7df1ef96dba43 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: custom.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 #ifndef CAML_CUSTOM_H
 #define CAML_CUSTOM_H
index f9689126a650ec38b60463ef353666cf4e03b29b..8330063c781923a092a882119d031be0bf8dcc34 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: debugger.c 10287 2010-04-20 15:47:15Z doligez $ */
 
 /* Interface with the byte-code debugger */
 
index 57a58f1c6da96bf5ba868fae782db58aabd13fb2..31aa4b349cd787ea953d6cf708fccbf71edfdbe0 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: debugger.h 10287 2010-04-20 15:47:15Z doligez $ */
 
 /* Interface with the debugger */
 
index 7df594dbe91c7b6e7e3eaea40b5ef98aed1fb45c..9f46597df72c5d63404f3d95dda2f66e0aa494fa 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dynlink.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Dynamic loading of C primitives. */
 
index ad4bfbadbacf39a90b86f5e376759405622066a0..aed9c03eeef1904fcb1dd00e0a814e0608ccc6ba 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dynlink.h 6130 2004-02-22 15:07:51Z xleroy $ */
 
 /* Dynamic loading of C primitives. */
 
index 1abfa455c3ee84ee4aaeadedb991104dd6f72d75..d126ea847707fb3389a1d9216a87b08f9a08e0ad 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: exec.h 6359 2004-06-01 12:36:34Z xleroy $ */
 
 /* exec.h : format of executable bytecode files */
 
index 89e89f00e47618ad4a64ad8148db32a3d5eb55b0..0e7bc62e6c03632da60a0a53a7b913b335d7f19d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: extern.c 8978 2008-08-04 11:45:58Z xleroy $ */
 
 /* Structured output */
 
index b1a08c6110033de0d64c44292e3ba09da8eb79cc..72af1f0ea2582826b826449ee23f698ae0774a1c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fail.c 9030 2008-09-18 11:23:28Z xleroy $ */
 
 /* Raising exceptions from C. */
 
index f092c8115f0845cad53f1b8e8fd7cf50e828b6af..438728f9a0ab9af0d9bacb3ecee4caba91c06b81 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fail.h 9030 2008-09-18 11:23:28Z xleroy $ */
 
 #ifndef CAML_FAIL_H
 #define CAML_FAIL_H
index bc7996d550f384563435bed0467a542c70e928ed..e60763b75e28d23af611e360a39e5d2a2ba46c3b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: finalise.c 10393 2010-05-12 14:32:23Z doligez $ */
 
 /* Handling of finalised values. */
 
index ec656f4f48df22ac63f68cb4b9fb92ca7414c70a..cca82a1fa387a8cfd85567515ebd9a4481a4acba 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: finalise.h 6047 2004-01-02 19:23:29Z doligez $ */
 
 #ifndef CAML_FINALISE_H
 #define CAML_FINALISE_H
index b252efd587a43f7a40e2075579f1b9b6bdbaed38..727877ef50b8d9bd7de7cc821f794f05e425ef64 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fix_code.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Handling of blocks of bytecode (endianness switch, threading). */
 
index f6e9e3b7730959f2e543be133ecbcfaf81915429..3a841bb95cbad5489e234b957c8785434744d003 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fix_code.h 6047 2004-01-02 19:23:29Z doligez $ */
 
 /* Handling of blocks of bytecode (endianness switch, threading). */
 
index d1d178a329010ab07ad38039c3edb3cb277853a0..47c65a7ba03609a9bd5ca00457e3efd54c178d7e 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: floats.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* The interface of this file is in "mlvalues.h" and "alloc.h" */
 
index ab1d458ba249af3f9ed30d9669d8fbee3480f597..37311144a96287459da089e33aa0f2d15981516e 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: freelist.c 9153 2008-12-03 18:09:09Z doligez $ */
 
 #define FREELIST_DEBUG 0
 #if FREELIST_DEBUG
index 8db168e9b5342368040eb9ce74692b6b306af1c2..286b19789613460e17c1be68993c15f1bc2b03e7 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: freelist.h 9153 2008-12-03 18:09:09Z doligez $ */
 
 /* Free lists of heap blocks. */
 
index 50d9945a8d610f0ed3f7dd3753dde6f9b907b033..7acaea8285bde91c1fc20397e5d3ffaabc3e51ae 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gc.h 6557 2004-07-19 13:20:06Z xleroy $ */
 
 #ifndef CAML_GC_H
 #define CAML_GC_H
index 0fe2215155be25f31c4b1d873b766eb27eda651f..ccace8256e62afe824b86a248a262a4a28cf07dc 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gc_ctrl.c 10315 2010-04-27 07:55:08Z xleroy $ */
 
 #include "alloc.h"
 #include "compact.h"
index 205636d5901ebb05e7dd781062608eca2c6a0d0a..512f986f522103fc2665f3681990ac8eb557d828 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gc_ctrl.h 7064 2005-09-22 14:21:50Z xleroy $ */
 
 #ifndef CAML_GC_CTRL_H
 #define CAML_GC_CTRL_H
index acac1e2170baeebec2990ce427e10a90c7f91299..2f7283968636c25d0b9220bb2ae247c01f173ad0 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: globroots.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Registration of global memory roots */
 
index 4dee35f23be00eccb26a41ac5bc956dcd4eb9534..3f1e6c4b72d4e58084acdf8ba40e0a5c7f3c6e03 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: globroots.h 8828 2008-03-10 19:56:39Z xleroy $ */
 
 /* Registration of global memory roots */
 
index c981768d0ff29def004c73cba632aa533d3873d3..511b0ff70dae27d184648c13fc6bc2c04afa4226 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: hash.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* The generic hashing primitive */
 
index 3afdc9541e87a68e2b8cb022b23f222dcb4de1d9..d56000f1132c3be485a3a0d190ff0cab12218143 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: instrtrace.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Trace the instructions executed */
 
index c1ca4a7ec0399f359f927f49b5862371ef8a6702..1e7657bc9441b1690bdfc3e8436727af405c1a0f 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: instrtrace.h 7064 2005-09-22 14:21:50Z xleroy $ */
 
 /* Trace the instructions executed */
 
index c45d4ea2875ec53ed4764d2154598deda43ceeed..e368b5b0e983880db2ad99700a8100216b9987a5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: instruct.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* The instruction set. */
 
index ec4ed0be636f03081b5ab7874b00f1ef9cd3d0d6..b784470dbd9570242b82ef8ba7ae9ec7e8db2e4d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: int64_emul.h 10217 2010-03-29 11:29:24Z xleroy $ */
 
 /* Software emulation of 64-bit integer arithmetic, for C compilers
    that do not support it.  */
index b9ae910400d6027e09d1e95f90f00537dcf6e0b6..74fa6cf58434dded878bc46392526098137cdc0b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: int64_format.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* printf-like formatting of 64-bit integers, in case the C library
    printf() function does not support them. */
index 9c079097016f0425def5d7de0711fe3bbdcd3409..8184948d19f5d8f39bc3fd0d2fb8c64e9e8dde07 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: int64_native.h 9270 2009-05-20 11:52:42Z doligez $ */
 
 /* Wrapper macros around native 64-bit integer arithmetic,
    so that it has the same interface as the software emulation
index f4421146225b55ca8272804f3aafd3de4be26353..85cb8a4cad0829aa0f53bbb34b5347df46583047 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: intern.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Structured input, compact format */
 
index 7bcdf7acb35298bc1f51a851764940077eeb28fd..eca491125a00b23a200b35d29d23c02079dc8829 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: interp.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* The bytecode interpreter */
 #include <stdio.h>
index 9eb73394057052c9e30f89f1fb1b7e2c9eb27d4e..8b83903c2efbd8a411538bd7d5f8d3752fc3122c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: interp.h 6257 2004-04-26 14:08:22Z basile $ */
 
 /* The bytecode interpreter */
 
index b757d171869a77c8995bcf819fb07f9428693bdf..de0ef684352417979bed322a701940afd949fdbe 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: intext.h 7064 2005-09-22 14:21:50Z xleroy $ */
 
 /* Structured input/output */
 
index 9fdaa1802b2cba3b76e1e935ac4de855b4c19e44..8b5463e41953b9f0f258f66074f33615263d5ec3 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: ints.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <stdio.h>
 #include <string.h>
index e7c7f048529308aca36c105d5debd40dee0a6efd..0539a5cdd7e1aca859be6df6aeb4e3e221bfb93d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: io.c 10300 2010-04-23 07:58:59Z shinwell $ */
 
 /* Buffered input/output. */
 
index d02a5a72fcc04aab9d48d0296038cc306aba12b8..e43d5ec32f0e445a2dd3c053ccc8ef748d5dfc51 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: io.h 9041 2008-09-27 21:16:29Z weis $ */
 
 /* Buffered input/output */
 
index 6e74795c2303c766647d5c234ec03e7c75353322..dc7c03de2297e7e9f8fd50dec9878636023615a1 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: lexing.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* The table-driven automaton for lexers generated by camllex. */
 
index e6afb1b3265b6d344bbaf14ee8963ce9194cd0e0..ad7f5c5a030e628173b16f9d82b697c88ed00dee 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: main.c 8822 2008-02-29 12:56:15Z doligez $ */
 
 /* Main entry point (can be overridden by a user-provided main()
    function that calls caml_main() later). */
index b9ec8cbfe03caf9b85ea25f13d8c9cb307f5fcad..65301ff9a8cc9860c8dc06fcd0eb3fc4c9db2049 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: major_gc.c 9410 2009-11-04 12:25:47Z doligez $ */
 
 #include <limits.h>
 
index 5e48e3431f1ee31ab335e51159c5acea5d8d750e..588ea5031727e0dd5e6c77b213a85196972562dd 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: major_gc.h 8766 2008-01-11 11:55:36Z doligez $ */
 
 #ifndef CAML_MAJOR_GC_H
 #define CAML_MAJOR_GC_H
index d0b6e5e46291c3fdd673e8a10021923db2448893..fa5bb5ef97a7afe0d5fb27ef77c6b8017a27fc4a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: md5.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <string.h>
 #include "alloc.h"
index b92b02ad1215ade194534e8416a6c041ceba2f23..486ae692fb0d024ee90acf1fb0a178c891f8d9aa 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: md5.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* MD5 message digest */
 
index bc4c88df15b5310c391633d60cb93937ddc1c9e0..fbbf2bed58b49e5e5cff45b6b25f1fb811120f83 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: memory.c 9153 2008-12-03 18:09:09Z doligez $ */
 
 #include <stdlib.h>
 #include <string.h>
index f8fb8ca2bab9d97f79b91b63b2ea5f3202446d0a..21380b6e4f311d8cc1a69bba306a1e1dec41bd4e 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: memory.h 9153 2008-12-03 18:09:09Z doligez $ */
 
 /* Allocation macros and functions */
 
index 1ed4fbddd56505063e10ebc866ca3c3b5c371d69..0d0ed5c41ccca66d3b2f8d7316bb0b208b50c311 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: meta.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Primitives for the toplevel */
 
index 91aa29799bc671d551648cd24f5879e3a01df653..84d51b209caabf710fb43a2a32301df0eb93dbf4 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: minor_gc.c 8954 2008-07-28 12:03:55Z doligez $ */
 
 #include <string.h>
 #include "config.h"
index 8e834129bf526fcf24df61cefeeea8f656fe4154..c9751e0d6445f951bb8d7671ad1e9137d7e8ed68 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: minor_gc.h 8211 2007-05-04 14:05:13Z doligez $ */
 
 #ifndef CAML_MINOR_GC_H
 #define CAML_MINOR_GC_H
index e8597ee38cb1bcff0911625916887fba992bfde9..8c25b75ef4c7b926b93969806656e3366b7d0e61 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: misc.c 8822 2008-02-29 12:56:15Z doligez $ */
 
 #include <stdio.h>
 #include "config.h"
index d0aaffd1a20d9b71c8e88036a4e2761075f96aee..336f7bb39e3cd3f63405c98469c17a0b19069cae 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: misc.h 8822 2008-02-29 12:56:15Z doligez $ */
 
 /* Miscellaneous macros and variables. */
 
index d76c1f1df8b69f11065ca73b9c1c548a4f89b4ca..8f97458fd76d5cb68e9b9ee623260dc873b5fdf9 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: mlvalues.h 8970 2008-08-01 14:10:36Z xleroy $ */
 
 #ifndef CAML_MLVALUES_H
 #define CAML_MLVALUES_H
index e085d672772ad3fe4eb24b2413ea16d32a3ddf88..9fb4ecd4b21dc6a4d99eeb843f999816d96f19de 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: obj.c 9561 2010-01-25 11:55:30Z doligez $ */
 
 /* Operations on objects */
 
index 248b3f6aa344ddb5960e12f3e7db86bac7500ab0..97fe3499b6ae82fa1fe470f86510a9f71322fefd 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: osdeps.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Operating system - specific stuff */
 
index bcb9e5faa52388690a75f85a30761fe5cc01518e..bd5d820d704772e585505eec3218f87778c59670 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: parsing.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* The PDA automaton for parsers generated by camlyacc */
 
index d8c1671e1bba9171d950614752397ad4b7505af9..0f4112ea90e983e0793157d43a74715810dde1cb 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: prims.h 6130 2004-02-22 15:07:51Z xleroy $ */
 
 /* Interface with C primitives. */
 
index f72157ff08d6c7a1bcde56c1f7cb6eac07aef490..5dd50406c29a83ee3d7b7b6391a3ef852c41e350 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: printexc.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Print an uncaught exception and abort */
 
index e7d17688829209d48e79e8a852240cfe38ba5ddd..cc48f4b21246a2b4317c747ef4655191d307b2a6 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: printexc.h 6045 2004-01-01 16:42:43Z doligez $ */
 
 #ifndef CAML_PRINTEXC_H
 #define CAML_PRINTEXC_H
index e80d1f7d9f31ac673b49c3a229ca54ba1518a4cf..eaacf1bb761cee3691cbdb7508632363883f7ad5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: reverse.h 6021 2003-12-15 18:10:51Z doligez $ */
 
 /* Swap byte-order in 16, 32, and 64-bit integers or floats */
 
index 74fbb41edb92d9fc79e7be03ef8197974553bf68..34683b12c58f661bfa11a6d1672079ca204218e7 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: roots.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* To walk the memory roots for garbage collection */
 
index 95c2f63f7abbf9eb36ec4fc6b8786d53209f2545..4e02be2fc99fa741aed400c41f694c1b9928d222 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: roots.h 7064 2005-09-22 14:21:50Z xleroy $ */
 
 #ifndef CAML_ROOTS_H
 #define CAML_ROOTS_H
index 90fe8919621334b63ac651b189ac4ffed26dd3be..37a2addb048f9d0392bc1e16249f1a01ea7119c5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: signals.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Signal handling, code common to the bytecode and native systems */
 
index e5ba9877734de2e87d22033409350d0725389e9c..96372b496b43b8c11cf70c20d8e63f3b8bd073f4 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: signals.h 7904 2007-02-23 09:29:45Z xleroy $ */
 
 #ifndef CAML_SIGNALS_H
 #define CAML_SIGNALS_H
index 523814938f596474276467ac8cab774a0a19def2..13a1d04f4f08bdeebc7cc86795bafdb33059143c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: signals_byt.c 7904 2007-02-23 09:29:45Z xleroy $ */
 
 /* Signal handling, code specific to the bytecode interpreter */
 
index 08c5f4cb829d7734962ffd4e60bbfc3156729360..d96c017472e6f0df8411e32b6d68ad4cfc4ec3ac 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: signals_machdep.h 7905 2007-02-23 09:43:14Z xleroy $ */
 
 /* Processor-specific operation: atomic "read and clear" */
 
index f2de29f09ce646e7d0e9690f25e02abd153d0f41..b19ddad5fd365219fca153c255167d0086d86719 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: stacks.c 10315 2010-04-27 07:55:08Z xleroy $ */
 
 /* To initialize and resize the stacks */
 
index 48e8acc9c55bd61a6f6ef5341181c76534df7abb..70c97da3cb5bc96f9989af88e5c38ccbb2c86c28 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: stacks.h 10315 2010-04-27 07:55:08Z xleroy $ */
 
 /* structure of the stacks */
 
index f954e3ee52360d467d0936f1b2223f213ddf759e..57cbb738c1abeaaf888bd60a0bf3c519ab621bbc 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: startup.c 10444 2010-05-20 14:06:29Z doligez $ */
 
 /* Start-up code */
 
@@ -249,6 +249,9 @@ static int parse_command_line(char **argv)
       if (!strcmp (argv[i], "-version")){
         printf ("The Objective Caml runtime, version " OCAML_VERSION "\n");
         exit (0);
+      }else if (!strcmp (argv[i], "-vnum")){
+        printf (OCAML_VERSION "\n");
+        exit (0);
       }else{
         caml_verb_gc = 0x001+0x004+0x008+0x010+0x020;
       }
index 0d1a5a60469328d85a1f796f292af93d5dd1ebf8..a3ffb8b65516f6e1614f9174e498ee63e42d5384 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: startup.h 6130 2004-02-22 15:07:51Z xleroy $ */
 
 #ifndef CAML_STARTUP_H
 #define CAML_STARTUP_H
index 760b154e30603e5476691f97ffcc02bdbf519fae..d1179ecf6acae3f1667360287fd580526fbe9002 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: str.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Operations on strings */
 
index bbc0e605f4dfda74028e80ef3e8ada7b1aba3d52..458d31729685d10cfe0ae329e8009b72719f2e53 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sys.c 7944 2007-03-01 13:37:39Z xleroy $ */
 
 /* Basic system calls */
 
index 4ad8011d9c8dab10b48970ff3f7819bb4ce8f49c..ef56d94a01f57bd5a9a9430a41b79ee5abffedb9 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sys.h 7919 2007-02-25 12:38:36Z xleroy $ */
 
 #ifndef CAML_SYS_H
 #define CAML_SYS_H
index e4502fb025e25dd6c176e8f61c0289d51666f961..ac982d6ec09b8168e91c1655cd0fc16d1d56f4a3 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: terminfo.c 6045 2004-01-01 16:42:43Z doligez $ */
 
 /* Read and output terminal commands */
 
index fcd9cd9f88a7ce0b80bd452074e0316de05ff79b..2c213fdb039f8503f70c37c42a5df7da1000982d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: ui.h 6021 2003-12-15 18:10:51Z doligez $ */
 
 /* Function declarations for non-Unix user interfaces */
 
index 89e0706e2474931b27a1c898f1dcdee68cd605d1..1fe70ab8376fec344b7bff7a3c124a6becdb858c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: unix.c 9153 2008-12-03 18:09:09Z doligez $ */
 
 /* Unix-specific stuff */
 
index c6c4a223fe440b8d9ff4012f9ff93bfcfbfebb92..9661db617d7e24cf2c0db22e6abe387cb7a63aea 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: weak.c 9028 2008-09-17 14:55:30Z doligez $ */
 
 /* Operations on weak arrays */
 
index 270082dbf2d7dd08029ecdbea225cee23bc2cc3f..5b4a02d01791cb48f313f455e3f09355702eb3fa 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: weak.h 6045 2004-01-01 16:42:43Z doligez $ */
 
 /* Operations on weak arrays */
 
index 866977b121042233a3760d070b7196c30f316387..29991c0e2aa571fc11c581a059d91c819da4fda4 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: win32.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Win32-specific stuff */
 
index 4ed2fb9946376c8d7241910ed8bf8c38a7c8f4b4..b6725989decebb516c403242b18c66232a09f61d 100644 (file)
@@ -3,6 +3,34 @@
     [ BTrue
     | BFalse
     | BAnt of string ]
+   and rec_flag =
+    [ ReRecursive
+    | ReNil
+    | ReAnt of string ]
+   and direction_flag =
+    [ DiTo
+    | DiDownto
+    | DiAnt of string ]
+   and mutable_flag =
+    [ MuMutable
+    | MuNil
+    | MuAnt of string ]
+   and private_flag =
+    [ PrPrivate
+    | PrNil
+    | PrAnt of string ]
+   and virtual_flag =
+    [ ViVirtual
+    | ViNil
+    | ViAnt of string ]
+   and override_flag =
+    [ OvOverride
+    | OvNil
+    | OvAnt of string ]
+   and row_var_flag =
+    [ RvRowVar
+    | RvNil
+    | RvAnt of string ]
    and meta_option 'a =
     [ ONone
     | OSome of 'a
@@ -30,7 +58,7 @@
       (* type t 'a 'b 'c = t constraint t = t constraint t = t *)
     | TyDcl of loc and string and list ctyp and ctyp and list (ctyp * ctyp)
       (* < (t)? (..)? > *) (* < move : int -> 'a .. > as 'a  *)
-    | TyObj of loc and ctyp and meta_bool
+    | TyObj of loc and ctyp and row_var_flag
     | TyOlb of loc and string and ctyp (* ?s:t *)
     | TyPol of loc and ctyp and ctyp (* ! t . t *) (* ! 'a . list 'a -> 'a *)
     | TyQuo of loc and string (* 's *)
@@ -55,6 +83,7 @@
     | TyVrnInfSup of loc and ctyp and ctyp (* [ < t > t ] *)
     | TyAmp of loc and ctyp and ctyp (* t & t *)
     | TyOfAmp of loc and ctyp and ctyp (* t of & t *)
+    | TyPkg of loc and module_type (* (module S) *)
     | TyAnt of loc and string (* $s$ *)
     ]
    and patt =
     | ExCoe of loc and expr and ctyp and ctyp (* (e : t) or (e : t :> t) *)
     | ExFlo of loc and string (* 3.14 *)
       (* for s = e to/downto e do { e } *)
-    | ExFor of loc and string and expr and expr and meta_bool and expr
+    | ExFor of loc and string and expr and expr and direction_flag and expr
     | ExFun of loc and match_case (* fun [ mc ] *)
     | ExIfe of loc and expr and expr and expr (* if e then e else e *)
     | ExInt of loc and string (* 42 *)
     | ExLab of loc and string and expr (* ~s or ~s:e *)
     | ExLaz of loc and expr (* lazy e *)
       (* let b in e or let rec b in e *)
-    | ExLet of loc and meta_bool and binding and expr
+    | ExLet of loc and rec_flag and binding and expr
       (* let module s = me in e *)
     | ExLmd of loc and string and module_expr and expr
       (* match e with [ mc ] *)
       (* while e do { e } *)
     | ExWhi of loc and expr and expr
       (* let open i in e *)
-    | ExOpI of loc and ident and expr ]
+    | ExOpI of loc and ident and expr
+      (* fun (type t) -> e *)
+      (* let f x (type t) y z = e *)
+    | ExFUN of loc and string and expr
+      (* (module ME : S) which is represented as (module (ME : S)) *)
+    | ExPkg of loc and module_expr ]
   and module_type =
     [ MtNil of loc
       (* i *) (* A.B.C *)
     | WcTyp of loc and ctyp and ctyp
       (* module i = i *)
     | WcMod of loc and ident and ident
+      (* type t := t *)
+    | WcTyS of loc and ctyp and ctyp
+      (* module i := i *)
+    | WcMoS of loc and ident and ident
       (* wc and wc *)
     | WcAnd of loc and with_constr and with_constr
     | WcAnt of loc and string (* $s$ *) ]
     | MeStr of loc and str_item
       (* (me : mt) *)
     | MeTyc of loc and module_expr and module_type
+      (* (value e) *)
+      (* (value e : S) which is represented as (value (e : S)) *)
+    | MePkg of loc and expr
     | MeAnt of loc and string (* $s$ *) ]
   and str_item =
     [ StNil of loc
       (* type t *)
     | StTyp of loc and ctyp
       (* value (rec)? bi *)
-    | StVal of loc and meta_bool and binding
+    | StVal of loc and rec_flag and binding
     | StAnt of loc and string (* $s$ *) ]
   and class_type =
     [ CtNil of loc
       (* (virtual)? i ([ t ])? *)
-    | CtCon of loc and meta_bool and ident and ctyp
+    | CtCon of loc and virtual_flag and ident and ctyp
       (* [t] -> ct *)
     | CtFun of loc and ctyp and class_type
       (* object ((t))? (csg)? end *)
       (* inherit ct *)
     | CgInh of loc and class_type
       (* method s : t or method private s : t *)
-    | CgMth of loc and string and meta_bool and ctyp
+    | CgMth of loc and string and private_flag and ctyp
       (* value (virtual)? (mutable)? s : t *)
-    | CgVal of loc and string and meta_bool and meta_bool and ctyp
-      (* method virtual (mutable)? s : t *)
-    | CgVir of loc and string and meta_bool and ctyp
+    | CgVal of loc and string and mutable_flag and virtual_flag and ctyp
+      (* method virtual (private)? s : t *)
+    | CgVir of loc and string and private_flag and ctyp
     | CgAnt of loc and string (* $s$ *) ]
   and class_expr =
     [ CeNil of loc
       (* ce e *)
     | CeApp of loc and class_expr and expr
       (* (virtual)? i ([ t ])? *)
-    | CeCon of loc and meta_bool and ident and ctyp
+    | CeCon of loc and virtual_flag and ident and ctyp
       (* fun p -> ce *)
     | CeFun of loc and patt and class_expr
       (* let (rec)? bi in ce *)
-    | CeLet of loc and meta_bool and binding and class_expr
+    | CeLet of loc and rec_flag and binding and class_expr
       (* object ((p))? (cst)? end *)
     | CeStr of loc and patt and class_str_item
       (* ce : ct *)
     | CrSem of loc and class_str_item and class_str_item
       (* type t = t *)
     | CrCtr of loc and ctyp and ctyp
-      (* inherit ce or inherit ce as s *)
-    | CrInh of loc and class_expr and string
+      (* inherit(!)? ce (as s)? *)
+    | CrInh of loc and override_flag and class_expr and string
       (* initializer e *)
     | CrIni of loc and expr
-      (* method (private)? s : t = e or method (private)? s = e *)
-    | CrMth of loc and string and meta_bool and expr and ctyp
-      (* value (mutable)? s = e *)
-    | CrVal of loc and string and meta_bool and expr
+      (* method(!)? (private)? s : t = e or method(!)? (private)? s = e *)
+    | CrMth of loc and string and override_flag and private_flag and expr and ctyp
+      (* value(!)? (mutable)? s = e *)
+    | CrVal of loc and string and override_flag and mutable_flag and expr
       (* method virtual (private)? s : t *)
-    | CrVir of loc and string and meta_bool and ctyp
-      (* value virtual (private)? s : t *)
-    | CrVvr of loc and string and meta_bool and ctyp
+    | CrVir of loc and string and private_flag and ctyp
+      (* value virtual (mutable)? s : t *)
+    | CrVvr of loc and string and mutable_flag and ctyp
     | CrAnt of loc and string (* $s$ *) ];
index 8a70d7129af830fafe0233d4f378037fb0f51e38..85f8915f297a7181776a2c432843f15b477f9022 100644 (file)
@@ -87,6 +87,7 @@ module Make (Ast     : Sig.Camlp4Ast)
   value ctyp = Gram.Entry.mk "ctyp";
   value cvalue_binding = Gram.Entry.mk "cvalue_binding";
   value direction_flag = Gram.Entry.mk "direction_flag";
+  value direction_flag_quot = Gram.Entry.mk "direction_flag_quot";
   value dummy = Gram.Entry.mk "dummy";
   value entry_eoi = Gram.Entry.mk "entry_eoi";
   value eq_expr = Gram.Entry.mk "eq_expr";
@@ -123,6 +124,7 @@ module Make (Ast     : Sig.Camlp4Ast)
   value module_longident_with_app = Gram.Entry.mk "module_longident_with_app";
   value module_rec_declaration = Gram.Entry.mk "module_rec_declaration";
   value module_type = Gram.Entry.mk "module_type";
+  value package_type = Gram.Entry.mk "package_type";
   value more_ctyp = Gram.Entry.mk "more_ctyp";
   value name_tags = Gram.Entry.mk "name_tags";
   value opt_as_lident = Gram.Entry.mk "opt_as_lident";
@@ -132,16 +134,23 @@ module Make (Ast     : Sig.Camlp4Ast)
   value opt_class_structure = Gram.Entry.mk "opt_class_structure";
   value opt_comma_ctyp = Gram.Entry.mk "opt_comma_ctyp";
   value opt_dot_dot = Gram.Entry.mk "opt_dot_dot";
+  value row_var_flag_quot = Gram.Entry.mk "row_var_flag_quot";
   value opt_eq_ctyp = Gram.Entry.mk "opt_eq_ctyp";
   value opt_expr = Gram.Entry.mk "opt_expr";
   value opt_meth_list = Gram.Entry.mk "opt_meth_list";
   value opt_mutable = Gram.Entry.mk "opt_mutable";
+  value mutable_flag_quot = Gram.Entry.mk "mutable_flag_quot";
   value opt_polyt = Gram.Entry.mk "opt_polyt";
   value opt_private = Gram.Entry.mk "opt_private";
+  value private_flag_quot = Gram.Entry.mk "private_flag_quot";
   value opt_rec = Gram.Entry.mk "opt_rec";
+  value rec_flag_quot = Gram.Entry.mk "rec_flag_quot";
   value opt_sig_items = Gram.Entry.mk "opt_sig_items";
   value opt_str_items = Gram.Entry.mk "opt_str_items";
   value opt_virtual = Gram.Entry.mk "opt_virtual";
+  value virtual_flag_quot = Gram.Entry.mk "virtual_flag_quot";
+  value opt_override = Gram.Entry.mk "opt_override";
+  value override_flag_quot = Gram.Entry.mk "override_flag_quot";
   value opt_when_expr = Gram.Entry.mk "opt_when_expr";
   value patt = Gram.Entry.mk "patt";
   value patt_as_patt_opt = Gram.Entry.mk "patt_as_patt_opt";
index b47d4555eda895d2c121c18ff5ebd497d57600e3..dc48882e49a3b55baac593e4f28dda0dfe8e6138 100644 (file)
@@ -27,6 +27,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
   include Syntax;
 
   type sep = format unit formatter unit;
+  type fun_binding = [= `patt of Ast.patt | `newtype of string ];
 
   value pp = fprintf;
   value cut f = fprintf f "@ ";
@@ -55,7 +56,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     fun
     [ Ast.LNil -> []
     | Ast.LCons x xs -> [x :: list_of_meta_list xs]
-    | Ast.LAnt x -> assert False ];
+    | Ast.LAnt _ -> assert False ];
 
   value meta_list elt sep f mxs =
     let xs = list_of_meta_list mxs in
@@ -132,8 +133,11 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     [ <:expr< fun $p$ -> $e$ >> as ge ->
         if is_irrefut_patt p then
           let (pl, e) = expr_fun_args e in
-          ([p :: pl], e)
+          ([`patt p :: pl], e)
         else ([], ge)
+    | <:expr< fun (type $i$) -> $e$ >> ->
+        let (pl, e) = expr_fun_args e in
+        ([`newtype i :: pl], e)
     | ge -> ([], ge) ];
 
   value rec class_expr_fun_args =
@@ -165,13 +169,14 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     method reset =      {< pipe = False; semi = False >};
 
     value semisep : sep = ";;";
-    value andsep : sep = "@]@ @[<2>and@ ";
-    value value_val = "val";
-    value value_let = "let";
     value mode = if comments then `comments else `no_comments;
     value curry_constr = init_curry_constr;
     value var_conversion = False;
 
+    method andsep : sep = "@]@ @[<2>and@ ";
+    method value_val = "val";
+    method value_let = "let";
+
     method semisep = semisep;
     method set_semisep s = {< semisep = s >};
     method set_comments b = {< mode = if b then `comments else `no_comments >};
@@ -228,15 +233,31 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
           pp f "@[<1>%a,@ %a@]" o#class_params t1 o#class_params t2
       | x -> o#ctyp f x ];
 
-    method mutable_flag f b = o#flag f b "mutable";
-    method rec_flag f b = o#flag f b "rec";
-    method virtual_flag f b = o#flag f b "virtual";
-    method private_flag f b = o#flag f b "private";
-    method flag f b n =
-      match b with
-      [ Ast.BTrue -> do { pp_print_string f n; pp f "@ " }
-      | Ast.BFalse -> ()
-      | Ast.BAnt s -> o#anti f s ];
+    method override_flag f =
+      fun
+      [ Ast.OvOverride -> pp f "!"
+      | Ast.OvNil -> ()
+      | Ast.OvAnt s -> o#anti f s ];
+
+    method mutable_flag f = fun
+      [ Ast.MuMutable -> pp f "mutable@ "
+      | Ast.MuNil -> ()
+      | Ast.MuAnt s -> o#anti f s ];
+
+    method rec_flag f = fun
+      [ Ast.ReRecursive -> pp f "rec@ "
+      | Ast.ReNil -> ()
+      | Ast.ReAnt s -> o#anti f s ];
+
+    method virtual_flag f = fun
+      [ Ast.ViVirtual -> pp f "virtual@ "
+      | Ast.ViNil -> ()
+      | Ast.ViAnt s -> o#anti f s ];
+
+    method private_flag f = fun
+      [ Ast.PrPrivate -> pp f "private@ "
+      | Ast.PrNil -> ()
+      | Ast.PrAnt s -> o#anti f s ];
 
     method anti f s = pp f "$%s$" s;
 
@@ -269,12 +290,17 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
           pp f "@ | @[<2>%a@ when@ %a@ ->@ %a@]"
             o#patt p o#under_pipe#expr w o#under_pipe#expr e ];
 
+    method fun_binding f =
+      fun
+      [ `patt p -> o#simple_patt f p
+      | `newtype i -> pp f "(type %s)" i ];
+
     method binding f bi =
       let () = o#node f bi Ast.loc_of_binding in
       match bi with
       [ <:binding<>> -> ()
       | <:binding< $b1$ and $b2$ >> ->
-          do { o#binding f b1; pp f andsep; o#binding f b2 }
+          do { o#binding f b1; pp f o#andsep; o#binding f b2 }
       | <:binding< $p$ = $e$ >> ->
           let (pl, e) =
             match p with
@@ -283,9 +309,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
           match (p, e) with
           [ (<:patt< $lid:_$ >>, <:expr< ($e$ : $t$) >>) ->
               pp f "%a :@ %a =@ %a"
-                (list o#simple_patt "@ ") [p::pl] o#ctyp t o#expr e
+                (list o#fun_binding "@ ") [`patt p::pl] o#ctyp t o#expr e
           | _ -> pp f "%a @[<0>%a=@]@ %a" o#simple_patt
-                    p (list' o#simple_patt "" "@ ") pl o#expr e ]
+                    p (list' o#fun_binding "" "@ ") pl o#expr e ]
       | <:binding< $anti:s$ >> -> o#anti f s ];
 
     method record_binding f bi =
@@ -331,7 +357,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
 
     method patt_expr_fun_args f (p, e) =
       let (pl, e) = expr_fun_args e
-      in pp f "%a@ ->@ %a" (list o#simple_patt "@ ") [p::pl] o#expr e;
+      in pp f "%a@ ->@ %a" (list o#fun_binding "@ ") [p::pl] o#expr e;
 
     method patt_class_expr_fun_args f (p, ce) =
       let (pl, ce) = class_expr_fun_args ce
@@ -374,7 +400,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
            pp f "@[<2>%a :@ %a@]" o#var s o#module_type mt
       | <:module_binding< $mb1$ and $mb2$ >> ->
           do { o#module_rec_binding f mb1;
-               pp f andsep;
+               pp f o#andsep;
                o#module_rec_binding f mb2 }
       | <:module_binding< $anti:s$ >> -> o#anti f s ];
 
@@ -432,7 +458,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
           | [_] -> pp f "@[<2>%a@ %a@]" o#apply_expr x o#apply_expr y
           | al ->
               pp f "@[<2>%a@ (%a)@]" o#apply_expr a
-                 (list o#under_pipe#expr ",@ ") al ]
+                 (* The #apply_expr below may put too much parens.
+                    However using #expr would be wrong: PR#5056. *)
+                 (list o#under_pipe#apply_expr ",@ ") al ]
         else pp f "@[<2>%a@]" (list o#apply_expr "@ ") [a::al]
     | <:expr< $e1$.val := $e2$ >> ->
         pp f "@[<2>%a :=@ %a@]" o#dot_expr e1 o#expr e2
@@ -441,7 +469,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     | <:expr@loc< fun [] >> ->
         pp f "@[<2>fun@ _@ ->@ %a@]" o#raise_match_failure loc
     | <:expr< fun $p$ -> $e$ >> when is_irrefut_patt p ->
-        pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (p, e)
+        pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (`patt p, e)
+    | <:expr< fun (type $i$) -> $e$ >> ->
+        pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (`newtype i, e)
     | <:expr< fun [ $a$ ] >> ->
         pp f "@[<hv0>function%a@]" o#match_case a
     | <:expr< if $e1$ then $e2$ else $e3$ >> ->
@@ -544,10 +574,15 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
         pp f "%a,@ %a" o#simple_expr e1 o#simple_expr e2
     | <:expr< $e1$; $e2$ >> ->
         pp f "%a;@ %a" o#under_semi#expr e1 o#expr e2
+    | <:expr< (module $me$ : $mt$) >> ->
+        pp f "@[<hv0>@[<hv2>(module %a : %a@])@]"
+           o#module_expr me o#module_type mt
+    | <:expr< (module $me$) >> ->
+        pp f "@[<hv0>@[<hv2>(module %a@])@]" o#module_expr me
     | <:expr< $_$ $_$ >> | <:expr< $_$ . $_$ >> | <:expr< $_$ . ( $_$ ) >> |
       <:expr< $_$ . [ $_$ ] >> | <:expr< $_$ := $_$ >> |
       <:expr< $_$ # $_$ >> |
-      <:expr< fun [ $_$ ] >> | <:expr< match $_$ with [ $_$ ] >> |
+      <:expr< fun [ $_$ ] >> | <:expr< fun (type $_$) -> $_$ >> | <:expr< match $_$ with [ $_$ ] >> |
       <:expr< try $_$ with [ $_$ ] >> |
       <:expr< if $_$ then $_$ else $_$ >> |
       <:expr< let $rec:_$ $_$ in $_$ >> |
@@ -560,9 +595,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
 
     method direction_flag f b =
       match b with
-      [ Ast.BTrue -> pp_print_string f "to"
-      | Ast.BFalse -> pp_print_string f "downto"
-      | Ast.BAnt s -> o#anti f s ];
+      [ Ast.DiTo -> pp_print_string f "to"
+      | Ast.DiDownto -> pp_print_string f "downto"
+      | Ast.DiAnt s -> o#anti f s ];
 
     method patt f p =
     let () = o#node f p Ast.loc_of_patt in match p with
@@ -669,6 +704,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     | <:ctyp< { $t$ } >> -> pp f "@[<2>{@ %a@]@ }" o#ctyp t
     | <:ctyp< [ $t$ ] >> -> pp f "@[<0>%a@]" o#sum_type t
     | <:ctyp< ( $tup:t$ ) >> -> pp f "@[<1>(%a)@]" o#ctyp t
+    | <:ctyp< (module $mt$) >> -> pp f "@[<2>(module@ %a@])" o#module_type mt
     | <:ctyp< [ = $t$ ] >> -> pp f "@[<2>[@ %a@]@ ]" o#sum_type t
     | <:ctyp< [ < $t$ ] >> -> pp f "@[<2>[<@ %a@]@,]" o#sum_type t
     | <:ctyp< [ < $t1$ > $t2$ ] >> ->
@@ -677,8 +713,6 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
           (list o#simple_ctyp "@ ") [a::al]
     | <:ctyp< [ > $t$ ] >> -> pp f "@[<2>[>@ %a@]@,]" o#sum_type t
     | <:ctyp< # $i$ >> -> pp f "@[<2>#%a@]" o#ident i
-    | <:ctyp< $t1$ == $t2$ >> ->
-        pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1 o#simple_ctyp t2
     | <:ctyp< `$s$ >> -> pp f "`%a" o#var s
     | <:ctyp< $t1$ * $t2$ >> -> pp f "%a *@ %a" o#simple_ctyp t1 o#simple_ctyp t2
     | <:ctyp<>> -> assert False
@@ -704,6 +738,8 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     | <:ctyp< $t1$ and $t2$ >> -> pp f "%a@ and %a" o#ctyp t1 o#ctyp t2
     | <:ctyp< mutable $t$ >> -> pp f "@[<2>mutable@ %a@]" o#ctyp t
     | <:ctyp< $t1$ & $t2$ >> -> pp f "%a@ &@ %a" o#ctyp t1 o#ctyp t2
+    | <:ctyp< $t1$ == $t2$ >> ->
+        pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1 o#ctyp t2
     | Ast.TyDcl _ tn tp te cl -> do {
         pp f "@[<2>%a%a@]" o#type_params tp o#var tn;
         match te with
@@ -770,7 +806,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
           pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t semisep
       | <:sig_item< value $s$ : $t$ >> ->
           pp f "@[<2>%s %a :@ %a%(%)@]"
-            value_val o#var s o#ctyp t semisep
+            o#value_val o#var s o#ctyp t semisep
       | <:sig_item< include $mt$ >> ->
           pp f "@[<2>include@ %a%(%)@]" o#module_type mt semisep
       | <:sig_item< class type $ct$ >> ->
@@ -822,7 +858,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
       | <:str_item< type $t$ >> ->
             pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t semisep
       | <:str_item< value $rec:r$ $bi$ >> ->
-            pp f "@[<2>%s %a%a%(%)@]" value_let o#rec_flag r o#binding bi semisep
+            pp f "@[<2>%s %a%a%(%)@]" o#value_let o#rec_flag r o#binding bi semisep
       | <:str_item< $exp:e$ >> ->
             pp f "@[<2>let _ =@ %a%(%)@]" o#expr e semisep
       | <:str_item< include $me$ >> ->
@@ -860,8 +896,12 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
           pp f "@[<2>type@ %a =@ %a@]" o#ctyp t1 o#ctyp t2
     | <:with_constr< module $i1$ = $i2$ >> ->
           pp f "@[<2>module@ %a =@ %a@]" o#ident i1 o#ident i2
+    | <:with_constr< type $t1$ := $t2$ >> ->
+          pp f "@[<2>type@ %a :=@ %a@]" o#ctyp t1 o#ctyp t2
+    | <:with_constr< module $i1$ := $i2$ >> ->
+          pp f "@[<2>module@ %a :=@ %a@]" o#ident i1 o#ident i2
     | <:with_constr< $wc1$ and $wc2$ >> ->
-          do { o#with_constraint f wc1; pp f andsep; o#with_constraint f wc2 }
+          do { o#with_constraint f wc1; pp f o#andsep; o#with_constraint f wc2 }
     | <:with_constr< $anti:s$ >> -> o#anti f s ];
 
     method module_expr f me =
@@ -886,7 +926,12 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     | <:module_expr< struct $st$ end >> ->
           pp f "@[<hv0>@[<hv2>struct@ %a@]@ end@]" o#str_item st
     | <:module_expr< ( $me$ : $mt$ ) >> ->
-          pp f "@[<1>(%a :@ %a)@]" o#module_expr me o#module_type mt ];
+          pp f "@[<1>(%a :@ %a)@]" o#module_expr me o#module_type mt
+    | <:module_expr< (value $e$ : $mt$ ) >> ->
+          pp f "@[<1>(%s %a :@ %a)@]" o#value_val o#expr e o#module_type mt
+    | <:module_expr< (value $e$ ) >> ->
+          pp f "@[<1>(%s %a)@]" o#value_val o#expr e
+    ];
 
     method class_expr f ce =
     let () = o#node f ce Ast.loc_of_class_expr in
@@ -915,7 +960,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
           pp f "@[<1>(%a :@ %a)@]" o#class_expr ce o#class_type ct
     | <:class_expr< $anti:s$ >> -> o#anti f s
     | <:class_expr< $ce1$ and $ce2$ >> ->
-          do { o#class_expr f ce1; pp f andsep; o#class_expr f ce2 }
+          do { o#class_expr f ce1; pp f o#andsep; o#class_expr f ce2 }
     | <:class_expr< $ce1$ = fun $p$ -> $ce2$ >> when is_irrefut_patt p ->
           pp f "@[<2>%a@ %a" o#class_expr ce1
             o#patt_class_expr_fun_args (p, ce2)
@@ -943,7 +988,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
             o#ctyp t o#class_sig_item csg
     | <:class_type< $anti:s$ >> -> o#anti f s
     | <:class_type< $ct1$ and $ct2$ >> ->
-          do { o#class_type f ct1; pp f andsep; o#class_type f ct2 }
+          do { o#class_type f ct1; pp f o#andsep; o#class_type f ct2 }
     | <:class_type< $ct1$ : $ct2$ >> ->
           pp f "%a :@ %a" o#class_type ct1 o#class_type ct2
     | <:class_type< $ct1$ = $ct2$ >> ->
@@ -971,7 +1016,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
               o#private_flag pr o#var s o#ctyp t semisep
       | <:class_sig_item< value $mutable:mu$ $virtual:vi$ $s$ : $t$ >> ->
             pp f "@[<2>%s %a%a%a :@ %a%(%)@]"
-              value_val o#mutable_flag mu o#virtual_flag vi o#var s o#ctyp t
+              o#value_val o#mutable_flag mu o#virtual_flag vi o#var s o#ctyp t
               semisep
       | <:class_sig_item< $anti:s$ >> ->
             pp f "%a%(%)" o#anti s semisep ];
@@ -987,27 +1032,27 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
             do { o#class_str_item f cst1; cut f; o#class_str_item f cst2 }
       | <:class_str_item< constraint $t1$ = $t2$ >> ->
             pp f "@[<2>constraint %a =@ %a%(%)@]" o#ctyp t1 o#ctyp t2 semisep
-      | <:class_str_item< inherit $ce$ >> ->
-            pp f "@[<2>inherit@ %a%(%)@]" o#class_expr ce semisep
-      | <:class_str_item< inherit $ce$ as $lid:s$ >> ->
-            pp f "@[<2>inherit@ %a as@ %a%(%)@]" o#class_expr ce o#var s semisep
+      | <:class_str_item< inherit $override:ov$ $ce$ >> ->
+            pp f "@[<2>inherit%a@ %a%(%)@]" o#override_flag ov o#class_expr ce semisep
+      | <:class_str_item< inherit $override:ov$ $ce$ as $lid:s$ >> ->
+            pp f "@[<2>inherit%a@ %a as@ %a%(%)@]" o#override_flag ov o#class_expr ce o#var s semisep
       | <:class_str_item< initializer $e$ >> ->
             pp f "@[<2>initializer@ %a%(%)@]" o#expr e semisep
-      | <:class_str_item< method $private:pr$ $s$ = $e$ >> ->
-            pp f "@[<2>method %a%a =@ %a%(%)@]"
-              o#private_flag pr o#var s o#expr e semisep
-      | <:class_str_item< method $private:pr$ $s$ : $t$ = $e$ >> ->
-            pp f "@[<2>method %a%a :@ %a =@ %a%(%)@]"
-              o#private_flag pr o#var s o#ctyp t o#expr e semisep
+      | <:class_str_item< method $override:ov$ $private:pr$ $s$ = $e$ >> ->
+            pp f "@[<2>method%a %a%a =@ %a%(%)@]"
+              o#override_flag ov o#private_flag pr o#var s o#expr e semisep
+      | <:class_str_item< method $override:ov$ $private:pr$ $s$ : $t$ = $e$ >> ->
+            pp f "@[<2>method%a %a%a :@ %a =@ %a%(%)@]"
+              o#override_flag ov o#private_flag pr o#var s o#ctyp t o#expr e semisep
       | <:class_str_item< method virtual $private:pr$ $s$ : $t$ >> ->
             pp f "@[<2>method virtual@ %a%a :@ %a%(%)@]"
               o#private_flag pr o#var s o#ctyp t semisep
       | <:class_str_item< value virtual $mutable:mu$ $s$ : $t$ >> ->
             pp f "@[<2>%s virtual %a%a :@ %a%(%)@]"
-              value_val o#mutable_flag mu o#var s o#ctyp t semisep
-      | <:class_str_item< value $mutable:mu$ $s$ = $e$ >> ->
-            pp f "@[<2>%s %a%a =@ %a%(%)@]"
-              value_val o#mutable_flag mu o#var s o#expr e semisep
+              o#value_val o#mutable_flag mu o#var s o#ctyp t semisep
+      | <:class_str_item< value $override:ov$ $mutable:mu$ $s$ = $e$ >> ->
+            pp f "@[<2>%s%a %a%a =@ %a%(%)@]"
+              o#value_val o#override_flag ov o#mutable_flag mu o#var s o#expr e semisep
       | <:class_str_item< $anti:s$ >> ->
             pp f "%a%(%)" o#anti s semisep ];
 
index 6bc573b646bfecc47dc22857cf2aa4b2899c6281..c09261b96f09a9d555900f57e6cc3d3f4eaf5d96 100644 (file)
@@ -27,6 +27,7 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig
             and module Gram    = Syntax.Gram;
 
   type sep = format unit formatter unit;
+  type fun_binding = [= `patt of Ast.patt | `newtype of string ];
 
   value list' :
     (formatter -> 'a -> unit) ->
@@ -49,7 +50,7 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig
     Ast.patt -> list Ast.patt -> (Ast.patt * list Ast.patt);
   value get_ctyp_args :
     Ast.ctyp -> list Ast.ctyp -> (Ast.ctyp * list Ast.ctyp);
-  value expr_fun_args : Ast.expr -> (list Ast.patt * Ast.expr);
+  value expr_fun_args : Ast.expr -> (list fun_binding * Ast.expr);
 
   (**
     [new printer ~curry_constr:True ~comments:False]
@@ -67,8 +68,9 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig
     value pipe : bool;
     value semi : bool;
     value semisep : sep;
-    value value_val : string;
-    value value_let : string;
+    method value_val : string;
+    method value_let : string;
+    method andsep : sep;
     method anti : formatter -> string -> unit;
     method class_declaration :
       formatter -> Ast.class_expr -> unit;
@@ -88,6 +90,7 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig
     method expr : formatter -> Ast.expr -> unit;
     method expr_list : formatter -> list Ast.expr -> unit;
     method expr_list_cons : bool -> formatter -> Ast.expr -> unit;
+    method fun_binding : formatter -> fun_binding -> unit;
     method functor_arg :
       formatter -> (string * Ast.module_type) -> unit;
     method functor_args :
@@ -111,10 +114,10 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig
             option Ast.module_type);
     method module_rec_binding : formatter -> Ast.module_binding -> unit;
     method module_type : formatter -> Ast.module_type -> unit;
-    method mutable_flag : formatter -> Ast.meta_bool -> unit;
-    method direction_flag : formatter -> Ast.meta_bool -> unit;
-    method rec_flag : formatter -> Ast.meta_bool -> unit;
-    method flag : formatter -> Ast.meta_bool -> string -> unit;
+    method override_flag : formatter -> Ast.override_flag -> unit;
+    method mutable_flag : formatter -> Ast.mutable_flag -> unit;
+    method direction_flag : formatter -> Ast.direction_flag -> unit;
+    method rec_flag : formatter -> Ast.rec_flag -> unit;
     method node : formatter -> 'b -> ('b -> Loc.t) -> unit;
     method patt : formatter -> Ast.patt -> unit;
     method patt1 : formatter -> Ast.patt -> unit;
@@ -124,12 +127,12 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig
     method patt5 : formatter -> Ast.patt -> unit;
     method patt_tycon : formatter -> Ast.patt -> unit;
     method patt_expr_fun_args :
-      formatter -> (Ast.patt * Ast.expr) -> unit;
+      formatter -> (fun_binding * Ast.expr) -> unit;
     method patt_class_expr_fun_args :
       formatter -> (Ast.patt * Ast.class_expr) -> unit;
     method print_comments_before : Loc.t -> formatter -> unit;
-    method private_flag : formatter -> Ast.meta_bool -> unit;
-    method virtual_flag : formatter -> Ast.meta_bool -> unit;
+    method private_flag : formatter -> Ast.private_flag -> unit;
+    method virtual_flag : formatter -> Ast.virtual_flag -> unit;
     method quoted_string : formatter -> string -> unit;
     method raise_match_failure : formatter -> Loc.t -> unit;
     method reset : 'a;
index e268cd065e015478c40ed5b7e9a08b8f7e1cd0cb..52590ae7b75d7117caa77074ae0af43e86bfc4a7 100644 (file)
@@ -43,14 +43,14 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
   object (o)
     inherit PP_o.printer ~curry_constr:init_curry_constr ~comments () as super;
 
-    value semisep : sep = ";";
-    value andsep : sep = "@]@ @[<2>and@ ";
-    value value_val = "value";
-    value value_let = "value";
+    value! semisep : sep = ";";
     value mode = if comments then `comments else `no_comments;
     value curry_constr = init_curry_constr;
     value first_match_case = True;
 
+    method andsep : sep = "@]@ @[<2>and@ ";
+    method value_val = "value";
+    method value_let = "value";
     method under_pipe = o;
     method under_semi = o;
     method reset_semi = o;
@@ -163,7 +163,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     [ <:expr< $e1$ := $e2$ >> ->
         pp f "@[<2>%a@ :=@ %a@]" o#dot_expr e1 o#expr e2
     | <:expr< fun $p$ -> $e$ >> when Ast.is_irrefut_patt p ->
-        pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (p, e)
+        pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (`patt p, e)
+    | <:expr< fun (type $i$) -> $e$ >> ->
+        pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (`newtype i, e)
     | <:expr< fun [ $a$ ] >> ->
         pp f "@[<hv0>fun%a@]" o#match_case a
     | <:expr< assert False >> -> pp f "@[<2>assert@ False@]"
@@ -270,9 +272,16 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
   end;
 
   value with_outfile = with_outfile;
-  value print = print;
-  value print_interf = print_interf;
-  value print_implem = print_implem;
+
+  value print output_file fct =
+    let o = new printer () in
+    with_outfile output_file (fct o);
+
+  value print_interf ?input_file:(_) ?output_file sg =
+    print output_file (fun o -> o#interf) sg;
+
+  value print_implem ?input_file:(_) ?output_file st =
+    print output_file (fun o -> o#implem) st;
 
 end;
 
index f2df616b8e7a481107ac01058e778122927c9cfc..1664be75b02078eff7a6df2b62258efae2dcd393 100644 (file)
@@ -222,6 +222,13 @@ module type Ast = sig
   type binding;
   type rec_binding;
   type module_binding;
+  type rec_flag;
+  type direction_flag;
+  type mutable_flag;
+  type private_flag;
+  type virtual_flag;
+  type row_var_flag;
+  type override_flag;
 
   (** {6 Location accessors} *)
 
@@ -286,6 +293,13 @@ module type Ast = sig
     method module_binding : module_binding -> module_binding;
     method match_case : match_case -> match_case;
     method ident : ident -> ident;
+    method override_flag : override_flag -> override_flag;
+    method mutable_flag : mutable_flag -> mutable_flag;
+    method private_flag : private_flag -> private_flag;
+    method virtual_flag : virtual_flag -> virtual_flag;
+    method direction_flag : direction_flag -> direction_flag;
+    method rec_flag : rec_flag -> rec_flag;
+    method row_var_flag : row_var_flag -> row_var_flag;
 
     method unknown : ! 'a. 'a -> 'a;
   end;
@@ -315,6 +329,13 @@ module type Ast = sig
     method module_binding : module_binding -> 'self_type;
     method match_case : match_case -> 'self_type;
     method ident : ident -> 'self_type;
+    method rec_flag : rec_flag -> 'self_type;
+    method direction_flag : direction_flag -> 'self_type;
+    method mutable_flag : mutable_flag -> 'self_type;
+    method private_flag : private_flag -> 'self_type;
+    method virtual_flag : virtual_flag -> 'self_type;
+    method row_var_flag : row_var_flag -> 'self_type;
+    method override_flag : override_flag -> 'self_type;
 
     method unknown : ! 'a. 'a -> 'self_type;
   end;
@@ -425,6 +446,13 @@ module type Camlp4Ast = sig
         value meta_sig_item : loc -> sig_item -> expr;
         value meta_str_item : loc -> str_item -> expr;
         value meta_with_constr : loc -> with_constr -> expr;
+        value meta_rec_flag : loc -> rec_flag -> expr;
+        value meta_mutable_flag : loc -> mutable_flag -> expr;
+        value meta_virtual_flag : loc -> virtual_flag -> expr;
+        value meta_private_flag : loc -> private_flag -> expr;
+        value meta_row_var_flag : loc -> row_var_flag -> expr;
+        value meta_override_flag : loc -> override_flag -> expr;
+        value meta_direction_flag : loc -> direction_flag -> expr;
       end;
       module Patt : sig
         value meta_string : loc -> string -> patt;
@@ -450,6 +478,13 @@ module type Camlp4Ast = sig
         value meta_sig_item : loc -> sig_item -> patt;
         value meta_str_item : loc -> str_item -> patt;
         value meta_with_constr : loc -> with_constr -> patt;
+        value meta_rec_flag : loc -> rec_flag -> patt;
+        value meta_mutable_flag : loc -> mutable_flag -> patt;
+        value meta_virtual_flag : loc -> virtual_flag -> patt;
+        value meta_private_flag : loc -> private_flag -> patt;
+        value meta_row_var_flag : loc -> row_var_flag -> patt;
+        value meta_override_flag : loc -> override_flag -> patt;
+        value meta_direction_flag : loc -> direction_flag -> patt;
       end;
     end;
   end;
@@ -480,6 +515,13 @@ module type Camlp4Ast = sig
     method module_binding : module_binding -> module_binding;
     method match_case : match_case -> match_case;
     method ident : ident -> ident;
+    method mutable_flag : mutable_flag -> mutable_flag;
+    method private_flag : private_flag -> private_flag;
+    method virtual_flag : virtual_flag -> virtual_flag;
+    method direction_flag : direction_flag -> direction_flag;
+    method rec_flag : rec_flag -> rec_flag;
+    method row_var_flag : row_var_flag -> row_var_flag;
+    method override_flag : override_flag -> override_flag;
 
     method unknown : ! 'a. 'a -> 'a;
   end;
@@ -509,6 +551,13 @@ module type Camlp4Ast = sig
     method module_binding : module_binding -> 'self_type;
     method match_case : match_case -> 'self_type;
     method ident : ident -> 'self_type;
+    method rec_flag : rec_flag -> 'self_type;
+    method direction_flag : direction_flag -> 'self_type;
+    method mutable_flag : mutable_flag -> 'self_type;
+    method private_flag : private_flag -> 'self_type;
+    method virtual_flag : virtual_flag -> 'self_type;
+    method row_var_flag : row_var_flag -> 'self_type;
+    method override_flag : override_flag -> 'self_type;
 
     method unknown : ! 'a. 'a -> 'self_type;
   end;
@@ -612,6 +661,13 @@ module Camlp4AstToAst (M : Camlp4Ast) : Ast
    and type module_binding = M.module_binding
    and type match_case = M.match_case
    and type ident = M.ident
+   and type rec_flag = M.rec_flag
+   and type direction_flag = M.direction_flag
+   and type mutable_flag = M.mutable_flag
+   and type private_flag = M.private_flag
+   and type virtual_flag = M.virtual_flag
+   and type row_var_flag = M.row_var_flag
+   and type override_flag = M.override_flag
 = M;
 
 (** Concrete definition of Camlp4 ASTs abstracted from locations.
@@ -909,6 +965,10 @@ module Grammar = struct
     type tree;
 
     type token_pattern = ((Token.t -> bool) * string);
+    type token_info;
+    type token_stream = Stream.t (Token.t * token_info);
+
+    value token_location : token_info -> Loc.t;
 
     type symbol =
       [ Smeta of string and list symbol and Action.t
@@ -919,6 +979,7 @@ module Grammar = struct
       | Slist1 of symbol
       | Slist1sep of symbol and symbol
       | Sopt of symbol
+      | Stry of symbol
       | Sself
       | Snext
       | Stoken of token_pattern
@@ -961,11 +1022,11 @@ module Grammar = struct
 
       (** Make a new entry from a name and an hand made token parser. *)
       value of_parser :
-        gram -> string -> (Stream.t (Token.t * Loc.t) -> 'a) -> t 'a;
+        gram -> string -> (token_stream -> 'a) -> t 'a;
 
       (** Clear the entry and setup this parser instead. *)
       value setup_parser :
-        t 'a -> (Stream.t (Token.t * Loc.t) -> 'a) -> unit;
+        t 'a -> (token_stream -> 'a) -> unit;
 
       (** Get the entry name. *)
       value name : t 'a -> string;
@@ -1000,16 +1061,13 @@ module Grammar = struct
     (* value sfold1sep : ('a -> 'b -> 'b) -> 'b -> foldsep _ 'a 'b; *)
 
     (** Use the lexer to produce a non filtered token stream from a char stream. *)
-    value lex : gram -> Loc.t -> Stream.t char
-                    -> not_filtered (Stream.t (Token.t * Loc.t));
+    value lex : gram -> Loc.t -> Stream.t char -> not_filtered (Stream.t (Token.t * Loc.t));
 
     (** Token stream from string. *)
-    value lex_string : gram -> Loc.t -> string
-                            -> not_filtered (Stream.t (Token.t * Loc.t));
+    value lex_string : gram -> Loc.t -> string -> not_filtered (Stream.t (Token.t * Loc.t));
 
     (** Filter a token stream using the {!Token.Filter} module *)
-    value filter : gram -> not_filtered (Stream.t (Token.t * Loc.t))
-                                      -> Stream.t (Token.t * Loc.t);
+    value filter : gram -> not_filtered (Stream.t (Token.t * Loc.t)) -> token_stream;
 
     (** Lex, filter and parse a stream of character. *)
     value parse : Entry.t 'a -> Loc.t -> Stream.t char -> 'a;
@@ -1023,7 +1081,7 @@ module Grammar = struct
 
     (** Parse a token stream that is already filtered. *)
     value parse_tokens_after_filter :
-      Entry.t 'a -> Stream.t (Token.t * Loc.t) -> 'a;
+      Entry.t 'a -> token_stream -> 'a;
 
   end;
 
@@ -1043,11 +1101,11 @@ module Grammar = struct
 
       (** Make a new entry from a name and an hand made token parser. *)
       value of_parser :
-        string -> (Stream.t (Token.t * Loc.t) -> 'a) -> t 'a;
+        string -> (token_stream -> 'a) -> t 'a;
 
       (** Clear the entry and setup this parser instead. *)
       value setup_parser :
-        t 'a -> (Stream.t (Token.t * Loc.t) -> 'a) -> unit;
+        t 'a -> (token_stream -> 'a) -> unit;
 
       (** Get the entry name. *)
       value name : t 'a -> string;
@@ -1081,15 +1139,13 @@ module Grammar = struct
     (* value sfold1sep : ('a -> 'b -> 'b) -> 'b -> foldsep _ 'a 'b; *)
 
     (** Use the lexer to produce a non filtered token stream from a char stream. *)
-    value lex : Loc.t -> Stream.t char
-                      -> not_filtered (Stream.t (Token.t * Loc.t));
+    value lex : Loc.t -> Stream.t char -> not_filtered (Stream.t (Token.t * Loc.t));
+
     (** Token stream from string. *)
-    value lex_string : Loc.t -> string
-                            -> not_filtered (Stream.t (Token.t * Loc.t));
+    value lex_string : Loc.t -> string -> not_filtered (Stream.t (Token.t * Loc.t));
 
     (** Filter a token stream using the {!Token.Filter} module *)
-    value filter : not_filtered (Stream.t (Token.t * Loc.t))
-                              -> Stream.t (Token.t * Loc.t);
+    value filter : not_filtered (Stream.t (Token.t * Loc.t)) -> token_stream;
 
     (** Lex, filter and parse a stream of character. *)
     value parse : Entry.t 'a -> Loc.t -> Stream.t char -> 'a;
@@ -1103,7 +1159,7 @@ module Grammar = struct
 
     (** Parse a token stream that is already filtered. *)
     value parse_tokens_after_filter :
-      Entry.t 'a -> Stream.t (Token.t * Loc.t) -> 'a;
+      Entry.t 'a -> token_stream -> 'a;
 
   end;
 
@@ -1261,7 +1317,8 @@ module type Camlp4Syntax = sig
   value ctyp : Gram.Entry.t Ast.ctyp;
   value ctyp_quot : Gram.Entry.t Ast.ctyp;
   value cvalue_binding : Gram.Entry.t Ast.expr;
-  value direction_flag : Gram.Entry.t Ast.meta_bool;
+  value direction_flag : Gram.Entry.t Ast.direction_flag;
+  value direction_flag_quot : Gram.Entry.t Ast.direction_flag;
   value dummy : Gram.Entry.t unit;
   value eq_expr : Gram.Entry.t (string -> Ast.patt -> Ast.patt);
   value expr : Gram.Entry.t Ast.expr;
@@ -1287,7 +1344,7 @@ module type Camlp4Syntax = sig
   value label_patt_list : Gram.Entry.t Ast.patt;
   value labeled_ipatt : Gram.Entry.t Ast.patt;
   value let_binding : Gram.Entry.t Ast.binding;
-  value meth_list : Gram.Entry.t (Ast.ctyp * Ast.meta_bool);
+  value meth_list : Gram.Entry.t (Ast.ctyp * Ast.row_var_flag);
   value meth_decl : Gram.Entry.t Ast.ctyp;
   value module_binding : Gram.Entry.t Ast.module_binding;
   value module_binding0 : Gram.Entry.t Ast.module_expr;
@@ -1299,6 +1356,7 @@ module type Camlp4Syntax = sig
   value module_longident_with_app : Gram.Entry.t Ast.ident;
   value module_rec_declaration : Gram.Entry.t Ast.module_binding;
   value module_type : Gram.Entry.t Ast.module_type;
+  value package_type : Gram.Entry.t Ast.module_type;
   value module_type_quot : Gram.Entry.t Ast.module_type;
   value more_ctyp : Gram.Entry.t Ast.ctyp;
   value name_tags : Gram.Entry.t Ast.ctyp;
@@ -1306,15 +1364,22 @@ module type Camlp4Syntax = sig
   value opt_class_self_patt : Gram.Entry.t Ast.patt;
   value opt_class_self_type : Gram.Entry.t Ast.ctyp;
   value opt_comma_ctyp : Gram.Entry.t Ast.ctyp;
-  value opt_dot_dot : Gram.Entry.t Ast.meta_bool;
+  value opt_dot_dot : Gram.Entry.t Ast.row_var_flag;
+  value row_var_flag_quot : Gram.Entry.t Ast.row_var_flag;
   value opt_eq_ctyp : Gram.Entry.t Ast.ctyp;
   value opt_expr : Gram.Entry.t Ast.expr;
   value opt_meth_list : Gram.Entry.t Ast.ctyp;
-  value opt_mutable : Gram.Entry.t Ast.meta_bool;
+  value opt_mutable : Gram.Entry.t Ast.mutable_flag;
+  value mutable_flag_quot : Gram.Entry.t Ast.mutable_flag;
+  value opt_override : Gram.Entry.t Ast.override_flag;
+  value override_flag_quot : Gram.Entry.t Ast.override_flag;
   value opt_polyt : Gram.Entry.t Ast.ctyp;
-  value opt_private : Gram.Entry.t Ast.meta_bool;
-  value opt_rec : Gram.Entry.t Ast.meta_bool;
-  value opt_virtual : Gram.Entry.t Ast.meta_bool;
+  value opt_private : Gram.Entry.t Ast.private_flag;
+  value private_flag_quot : Gram.Entry.t Ast.private_flag;
+  value opt_rec : Gram.Entry.t Ast.rec_flag;
+  value rec_flag_quot : Gram.Entry.t Ast.rec_flag;
+  value opt_virtual : Gram.Entry.t Ast.virtual_flag;
+  value virtual_flag_quot : Gram.Entry.t Ast.virtual_flag;
   value opt_when_expr : Gram.Entry.t Ast.expr;
   value patt : Gram.Entry.t Ast.patt;
   value patt_as_patt_opt : Gram.Entry.t Ast.patt;
index 8354935d6aff674fa36199fa3f2fa93429679246..020a7e0c2ebda1d63c5f42ae549499d04fa60a55 100644 (file)
@@ -74,13 +74,15 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | _ -> { (t) with ptyp_desc = Ptyp_poly [] t } ]
   ;
 
-  value mb2b =
-    fun
-    [ Ast.BTrue -> True
-    | Ast.BFalse -> False
-    | Ast.BAnt _ -> assert False ];
+  value mkvirtual = fun
+    [ <:virtual_flag< virtual >> -> Virtual
+    | <:virtual_flag<>> -> Concrete
+    | _ -> assert False ];
 
-  value mkvirtual m = if mb2b m then Virtual else Concrete;
+  value mkdirection = fun
+    [ <:direction_flag< to >> -> Upto
+    | <:direction_flag< downto >> -> Downto
+    | _ -> assert False ];
 
   value lident s = Lident s;
   value ldot l s = Ldot l s;
@@ -110,9 +112,9 @@ module Make (Ast : Sig.Camlp4Ast) = struct
 
   value mkrf =
     fun
-    [ Ast.BTrue -> Recursive
-    | Ast.BFalse -> Nonrecursive
-    | Ast.BAnt _ -> assert False ];
+    [ <:rec_flag< rec >> -> Recursive
+    | <:rec_flag<>> -> Nonrecursive
+    | _ -> assert False ];
 
   value mkli s = loop lident
     where rec loop f =
@@ -232,6 +234,9 @@ module Make (Ast : Sig.Camlp4Ast) = struct
         mktyp loc (Ptyp_object (meth_list fl [mkfield loc Pfield_var]))
     | TyCls loc id ->
         mktyp loc (Ptyp_class (ident id) [] [])
+    | <:ctyp@loc< (module $pt$) >> ->
+        let (i, cs) = package_type pt in
+        mktyp loc (Ptyp_package i cs)
     | TyLab loc _ _ -> error loc "labelled type not allowed here"
     | TyMan loc _ _ -> error loc "manifest type not allowed here"
     | TyOlb loc _ _ -> error loc "labelled type not allowed here"
@@ -256,7 +261,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | TyAnt loc _ -> error loc "antiquotation not allowed here"
     | TyOfAmp _ _ _ |TyAmp _ _ _ |TySta _ _ _ |
       TyCom _ _ _ |TyVrn _ _ |TyQuM _ _ |TyQuP _ _ |TyDcl _ _ _ _ _ |
-      TyObj _ _ (BAnt _) | TyNil _ | TyTup _ _ ->
+      TyObj _ _ (RvAnt _) | TyNil _ | TyTup _ _ ->
         assert False ]
   and row_field = fun
     [ <:ctyp<>> -> []
@@ -276,6 +281,22 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | <:ctyp@loc< $lid:lab$ : $t$ >> ->
         [mkfield loc (Pfield lab (mkpolytype (ctyp t))) :: acc]
     | _ -> assert False ]
+
+  and package_type_constraints wc acc =
+    match wc with
+    [ <:with_constr<>> -> acc
+    | <:with_constr< type $lid:id$ = $ct$ >> ->
+        [(id, ctyp ct) :: acc]
+    | <:with_constr< $wc1$ and $wc2$ >> ->
+        package_type_constraints wc1 (package_type_constraints wc2 acc)
+    | _ -> error (loc_of_with_constr wc) "unexpected `with constraint' for a package type" ]
+
+  and package_type : module_type -> package_type =
+    fun
+    [ <:module_type< $id:i$ with $wc$ >> ->
+      (long_uident i, package_type_constraints wc [])
+    | <:module_type< $id:i$ >> -> (long_uident i, [])
+    | mt -> error (loc_of_module_type mt) "unexpected package type" ]
   ;
 
   value mktype loc tl cl tk tp tm =
@@ -285,7 +306,10 @@ module Make (Ast : Sig.Camlp4Ast) = struct
      ptype_variance = variance}
   ;
   value mkprivate' m = if m then Private else Public;
-  value mkprivate m = mkprivate' (mb2b m);
+  value mkprivate = fun
+    [ <:private_flag< private >> -> Private
+    | <:private_flag<>> -> Public
+    | _ -> assert False ];
   value mktrecord =
     fun
     [ <:ctyp@loc< $lid:s$ : mutable $t$ >> ->
@@ -332,7 +356,10 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | Ast.LCons x xs -> [x :: list_of_meta_list xs]
     | Ast.LAnt _ -> assert False ];
 
-  value mkmutable m = if mb2b m then Mutable else Immutable;
+  value mkmutable = fun
+    [ <:mutable_flag< mutable >> -> Mutable
+    | <:mutable_flag<>> -> Immutable
+    | _ -> assert False ];
 
   value paolab lab p =
     match (lab, p) with
@@ -370,22 +397,28 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | <:ctyp< $id:i$ >> -> (ident i, acc)
     | _ -> assert False ];
 
+  value mkwithtyp pwith_type loc id_tpl ct =
+    let (id, tpl) = type_parameters_and_type_name id_tpl [] in
+    let (params, variance) = List.split tpl in
+    let (kind, priv, ct) = opt_private_ctyp ct in
+    (id, pwith_type
+      {ptype_params = params; ptype_cstrs = [];
+        ptype_kind = kind;
+        ptype_private = priv;
+        ptype_manifest = Some ct;
+        ptype_loc = mkloc loc; ptype_variance = variance});
+
   value rec mkwithc wc acc =
     match wc with
-    [ WcNil _ -> acc
-    | WcTyp loc id_tpl ct ->
-        let (id, tpl) = type_parameters_and_type_name id_tpl [] in
-        let (params, variance) = List.split tpl in
-        let (kind, priv, ct) = opt_private_ctyp ct in
-        [(id,
-        Pwith_type
-          {ptype_params = params; ptype_cstrs = [];
-            ptype_kind = kind;
-            ptype_private = priv;
-            ptype_manifest = Some ct;
-            ptype_loc = mkloc loc; ptype_variance = variance}) :: acc]
-    | WcMod _ i1 i2 ->
+    [ <:with_constr<>> -> acc
+    | <:with_constr@loc< type $id_tpl$ = $ct$ >> ->
+        [mkwithtyp (fun x -> Pwith_type x) loc id_tpl ct :: acc]
+    | <:with_constr< module $i1$ = $i2$ >> ->
         [(long_uident i1, Pwith_module (long_uident i2)) :: acc]
+    | <:with_constr@loc< type $id_tpl$ := $ct$ >> ->
+        [mkwithtyp (fun x -> Pwith_typesubst x) loc id_tpl ct :: acc]
+    | <:with_constr< module $i1$ := $i2$ >> (*WcMoS _ i1 i2*) ->
+        [(long_uident i1, Pwith_modsubst (long_uident i2)) :: acc]
     | <:with_constr< $wc1$ and $wc2$ >> -> mkwithc wc1 (mkwithc wc2 acc)
     | <:with_constr@loc< $anti:_$ >> ->
          error loc "bad with constraint (antiquotation)" ];
@@ -545,6 +578,12 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | e -> [(loc_of_expr e, [], e) :: l] ]
   ;
 
+  value override_flag loc =
+    fun [ <:override_flag< ! >> -> Override
+        | <:override_flag<>> -> Fresh
+        |  _ -> error loc "antiquotation not allowed here"
+        ];
+
   value list_of_opt_ctyp ot acc =
     match ot with
     [ <:ctyp<>> -> acc
@@ -643,8 +682,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | ExFlo loc s -> mkexp loc (Pexp_constant (Const_float (remove_underscores s)))
     | ExFor loc i e1 e2 df el ->
         let e3 = ExSeq loc el in
-        let df = if mb2b df then Upto else Downto in
-        mkexp loc (Pexp_for i (expr e1) (expr e2) df (expr e3))
+        mkexp loc (Pexp_for i (expr e1) (expr e2) (mkdirection df) (expr e3))
     | <:expr@loc< fun [ $PaLab _ lab po$ when $w$ -> $e$ ] >> ->
         mkexp loc
           (Pexp_function lab None
@@ -737,6 +775,12 @@ module Make (Ast : Sig.Camlp4Ast) = struct
         mkexp loc (Pexp_while (expr e1) (expr e2))
     | <:expr@loc< let open $i$ in $e$ >> ->
         mkexp loc (Pexp_open (long_uident i) (expr e))
+    | <:expr@loc< (module $me$ : $pt$) >> ->
+        mkexp loc (Pexp_pack (module_expr me) (package_type pt))
+    | <:expr@loc< (module $_$) >> ->
+        error loc "(module_expr : package_type) expected here"
+    | ExFUN loc i e ->
+        mkexp loc (Pexp_newtype i (expr e))
     | <:expr@loc< $_$,$_$ >> -> error loc "expr, expr: not allowed here"
     | <:expr@loc< $_$;$_$ >> ->
         error loc "expr; expr: not allowed here, use do {...} or [|...|] to surround them"
@@ -758,6 +802,8 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     match x with
     [ <:binding< $x$ and $y$ >> ->
          binding x (binding y acc)
+    | <:binding@_loc< $p$ = ($e$ : ! $vs$ . $ty$) >> ->
+        [(patt <:patt< ($p$ : ! $vs$ . $ty$ ) >>, expr e) :: acc]
     | <:binding< $p$ = $e$ >> -> [(patt p, expr e) :: acc]
     | <:binding<>> -> acc
     | _ -> assert False ]
@@ -871,6 +917,10 @@ module Make (Ast : Sig.Camlp4Ast) = struct
         mkmod loc (Pmod_structure (str_item sl []))
     | <:module_expr@loc< ($me$ : $mt$) >> ->
         mkmod loc (Pmod_constraint (module_expr me) (module_type mt))
+    | <:module_expr@loc< (value $e$ : $pt$) >> ->
+        mkmod loc (Pmod_unpack (expr e) (package_type pt))
+    | <:module_expr@loc< (value $_$) >> ->
+        error loc "(value expr) not supported yet"
     | <:module_expr@loc< $anti:_$ >> -> error loc "antiquotation in module_expr" ]
   and str_item s l =
     match s with
@@ -906,7 +956,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | <:str_item@loc< $anti:_$ >> -> error loc "antiquotation in str_item" ]
   and class_type =
     fun
-    [ CtCon loc Ast.BFalse id tl ->
+    [ CtCon loc ViNil id tl ->
         mkcty loc
           (Pcty_constr (long_class_ident id) (List.map ctyp (list_of_opt_ctyp tl [])))
     | CtFun loc (TyLab _ lab t) ct ->
@@ -936,7 +986,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct
         [ <:ctyp<>> -> (loc, ([], []))
         | t -> (loc_of_ctyp t, List.split (class_parameters t [])) ]
       in
-      {pci_virt = if mb2b vir then Virtual else Concrete;
+      {pci_virt = mkvirtual vir;
        pci_params = (params, mkloc loc_params);
        pci_name = name;
        pci_expr = class_expr ce;
@@ -952,7 +1002,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct
         [ <:ctyp<>> -> (loc, ([], []))
         | t -> (loc_of_ctyp t, List.split (class_parameters t [])) ]
       in
-      {pci_virt = if mb2b vir then Virtual else Concrete;
+      {pci_virt = mkvirtual vir;
        pci_params = (params, mkloc loc_params);
        pci_name = name;
        pci_expr = class_type ct;
@@ -980,7 +1030,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct
         let (ce, el) = class_expr_fa [] c in
         let el = List.map label_expr el in
         mkpcl loc (Pcl_apply (class_expr ce) el)
-    | CeCon loc Ast.BFalse id tl ->
+    | CeCon loc ViNil id tl ->
         mkpcl loc
           (Pcl_constr (long_class_ident id) (List.map ctyp (list_of_opt_ctyp tl [])))
     | CeFun loc (PaLab _ lab po) ce ->
@@ -1015,22 +1065,23 @@ module Make (Ast : Sig.Camlp4Ast) = struct
     | CrCtr loc t1 t2 -> [Pcf_cstr (ctyp t1, ctyp t2, mkloc loc) :: l]
     | <:class_str_item< $cst1$; $cst2$ >> ->
         class_str_item cst1 (class_str_item cst2 l)
-    | CrInh _ ce "" -> [Pcf_inher Fresh (class_expr ce) None :: l]
-    | CrInh _ ce pb -> [Pcf_inher Fresh (class_expr ce) (Some pb) :: l]
+    | CrInh loc ov ce pb ->
+        let opb = if pb = "" then None else Some pb in
+        [Pcf_inher (override_flag loc ov) (class_expr ce) opb :: l]
     | CrIni _ e -> [Pcf_init (expr e) :: l]
-    | CrMth loc s b e t ->
+    | CrMth loc s ov pf e t ->
         let t =
           match t with
           [ <:ctyp<>> -> None
           | t -> Some (mkpolytype (ctyp t)) ] in
         let e = mkexp loc (Pexp_poly (expr e) t) in
-        [Pcf_meth (s, mkprivate b, Fresh, e, mkloc loc) :: l]
-    | CrVal loc s b e ->
-        [Pcf_val (s, mkmutable b, Fresh, expr e, mkloc loc) :: l]
-    | CrVir loc s b t ->
-        [Pcf_virt (s, mkprivate b, mkpolytype (ctyp t), mkloc loc) :: l]
-    | CrVvr loc s b t ->
-        [Pcf_valvirt (s, mkmutable b, ctyp t, mkloc loc) :: l]
+        [Pcf_meth (s, mkprivate pf, override_flag loc ov, e, mkloc loc) :: l]
+    | CrVal loc s ov mf e ->
+        [Pcf_val (s, mkmutable mf, override_flag loc ov, expr e, mkloc loc) :: l]
+    | CrVir loc s pf t ->
+        [Pcf_virt (s, mkprivate pf, mkpolytype (ctyp t), mkloc loc) :: l]
+    | CrVvr loc s mf t ->
+        [Pcf_valvirt (s, mkmutable mf, ctyp t, mkloc loc) :: l]
     | CrAnt _ _ -> assert False ];
 
   value sig_item ast = sig_item ast [];
index 7ce12e24d91c66978c678efbb05c85b36a396e4f..69e9030367468e3258cca992337b54613cf2c50d 100644 (file)
@@ -106,10 +106,10 @@ module Make (Ast : Sig.Camlp4Ast) = struct
 
       method class_str_item =
         fun
-        [ <:class_str_item< inherit $_$ >> as cst -> super#class_str_item cst
-        | <:class_str_item< inherit $ce$ as $s$ >> ->
+        [ <:class_str_item< inherit $override:_$ $_$ >> as cst -> super#class_str_item cst
+        | <:class_str_item< inherit $override:_$ $ce$ as $s$ >> ->
             (o#class_expr ce)#add_atom s
-        | <:class_str_item< value $mutable:_$ $s$ = $e$ >> ->
+        | <:class_str_item< value $override:_$ $mutable:_$ $s$ = $e$ >> ->
             (o#expr e)#add_atom s
         | <:class_str_item< value virtual $mutable:_$ $s$ : $t$ >> ->
             (o#ctyp t)#add_atom s
index 23c342940c3ee7ddf32e2df7d4bf155c8e314bb2..46fb34f74b5474b85256f5a49594c7a26ebb4f5f 100644 (file)
@@ -1,4 +1,3 @@
-Context
 Delete
 Dynamic
 Entry
diff --git a/camlp4/Camlp4/Struct/Grammar/Context.ml b/camlp4/Camlp4/Struct/Grammar/Context.ml
deleted file mode 100644 (file)
index b92c291..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-(****************************************************************************)
-(*                                                                          *)
-(*                              Objective Caml                              *)
-(*                                                                          *)
-(*                            INRIA Rocquencourt                            *)
-(*                                                                          *)
-(*  Copyright  2006   Institut National de Recherche  en  Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed under   *)
-(*  the terms of the GNU Library General Public License, with the special   *)
-(*  exception on linking described in LICENSE at the top of the Objective   *)
-(*  Caml source tree.                                                       *)
-(*                                                                          *)
-(****************************************************************************)
-
-(* Authors:
- * - Daniel de Rauglaudre: initial version
- * - Nicolas Pouillard: refactoring
- *)
-
-module type S = sig
-  module Token : Sig.Token;
-  open Token;
-  type t;
-  value call_with_ctx : Stream.t (Token.t * Loc.t) -> (t -> 'a) -> 'a;
-  value loc_bp : t -> Loc.t;
-  value loc_ep : t -> Loc.t;
-  value stream : t -> Stream.t (Token.t * Loc.t);
-  value peek_nth : t -> int -> option (Token.t * Loc.t);
-  value njunk : t -> int -> unit;
-  value junk : Stream.t (Token.t * Loc.t) -> unit;
-  value bp : Stream.t (Token.t * Loc.t) -> Loc.t;
-end;
-
-module Make (Token : Sig.Token) : S with module Token = Token = struct
-  module Token = Token;
-  open Token;
-
-  type t = { strm : mutable Stream.t (Token.t * Loc.t);
-             loc  : mutable Loc.t };
-
-  value loc_bp c =
-    match Stream.peek c.strm with
-    [ None -> Loc.ghost
-    | Some (_, loc) -> loc ];
-
-  value loc_ep c = c.loc;
-
-  value set_loc c =
-    match Stream.peek c.strm with
-    [ Some (_, loc) -> c.loc := loc
-    | None -> () ];
-
-  value mk strm =
-    match Stream.peek strm with
-    [ Some (_, loc) -> { strm = strm; loc = loc }
-    | None -> { strm = strm ; loc = Loc.ghost } ];
-
-  value stream c = c.strm;
-
-  value peek_nth c n =
-    let list = Stream.npeek n c.strm in
-    let rec loop list n =
-      match (list, n) with
-      [ ([((_, loc) as x) :: _], 1) -> do { c.loc := loc; Some x }
-      | ([_ :: l], n) -> loop l (n - 1)
-      | ([], _) -> None ]
-    in
-    loop list n;
-
-  value njunk c n =
-    (for i = 1 to n do Stream.junk c.strm done;
-     set_loc c);
-
-  value streams = ref [];
-  value mk strm =
-    let c = mk strm in
-    let () = streams.val := [(strm, c) :: streams.val] in c;
-  value junk strm =
-    do { set_loc (List.assq strm streams.val); Stream.junk strm };
-  value bp strm = loc_bp (List.assq strm  streams.val);
-
-   value call_with_ctx strm f =
-     let streams_v = streams.val in
-     let r =
-       try f (mk strm) with exc -> do { streams.val := streams_v; raise exc }
-     in
-     do { streams.val := streams_v; r }
-   ;
-
-end;
index 49a45002ec90b0711b5701a88636ee1e12a54678..929ac2b4eaefeed90dadfc8f6d5d97dffe1b7676 100644 (file)
@@ -68,11 +68,9 @@ value rec decr_keyw_use gram =
   fun
   [ Skeyword kwd -> removing gram kwd
   | Smeta _ sl _ -> List.iter (decr_keyw_use gram) sl
-  | Slist0 s -> decr_keyw_use gram s
-  | Slist1 s -> decr_keyw_use gram s
+  | Slist0 s | Slist1 s | Sopt s | Stry s -> decr_keyw_use gram s
   | Slist0sep s1 s2 -> do { decr_keyw_use gram s1; decr_keyw_use gram s2 }
   | Slist1sep s1 s2 -> do { decr_keyw_use gram s1; decr_keyw_use gram s2 }
-  | Sopt s -> decr_keyw_use gram s
   | Stree t -> decr_keyw_use_in_tree gram t
   | Sself | Snext | Snterm _ | Snterml _ _ | Stoken _ -> () ]
 and decr_keyw_use_in_tree gram =
@@ -149,13 +147,13 @@ value delete_rule entry sl =
       do {
         entry.edesc := Dlevels levs;
         entry.estart :=
-          fun lev strm ->
+          fun lev strm ->
             let f = Parser.start_parser_of_entry entry in
-            do { entry.estart := f; f lev strm };
+            do { entry.estart := f; f lev strm };
         entry.econtinue :=
-          fun lev bp a strm ->
+          fun lev bp a strm ->
             let f = Parser.continue_parser_of_entry entry in
-            do { entry.econtinue := f; f lev bp a strm }
+            do { entry.econtinue := f; f lev bp a strm }
       }
   | Dparser _ -> () ]
 ;
index 09b439706fc6414f76aaa8b382688277aae56274..7889cf0712797c88279b93f0f8d0b418e752b582 100644 (file)
@@ -24,7 +24,8 @@ module Make (Lexer : Sig.Lexer)
   module Delete    = Delete.Make    Structure;
   module Insert    = Insert.Make    Structure;
   module Entry     = Entry.Make     Structure;
-  module Fold      = Fold.Make Structure;
+  module Fold      = Fold.Make      Structure;
+  module Tools     = Tools.Make     Structure;
   include Structure;
 
   value mk () =
@@ -43,7 +44,7 @@ module Make (Lexer : Sig.Lexer)
 
   value lex_string g loc str = lex g loc (Stream.of_string str);
 
-  value filter g ts = Token.Filter.filter g.gfilter ts;
+  value filter g ts = Tools.keep_prev_loc (Token.Filter.filter g.gfilter ts);
 
   value parse_tokens_after_filter entry ts = Entry.parse_tokens_after_filter entry ts;
 
index 8402672b8eb6b945960d15fd52147d22711c8d69..0b39b7ca6cf3f893de3269a638e2ac78d338a291 100644 (file)
@@ -23,6 +23,7 @@ module Make (Structure : Structure.S) = struct
   module Tools = Tools.Make Structure;
   open Format;
   open Structure;
+  open Tools;
 
   type t 'a = internal_entry;
 
@@ -36,25 +37,24 @@ module Make (Structure : Structure.S) = struct
   value mk g n =
     { egram = g;
       ename = n;
-      estart = Tools.empty_entry n;
-      econtinue _ _ _ = parser [];
+      estart = empty_entry n;
+      econtinue _ _ _ = parser [];
       edesc = Dlevels [] };
 
   value action_parse entry ts : Action.t =
-    Context.call_with_ctx ts
-      (fun c ->
-         try entry.estart 0 c (Context.stream c) with
-         [ Stream.Failure ->
-             Loc.raise (Context.loc_ep c)
-               (Stream.Error ("illegal begin of " ^ entry.ename))
-         | Loc.Exc_located _ _ as exc -> raise exc
-         | exc -> Loc.raise (Context.loc_ep c) exc ]);
+    try entry.estart 0 ts with
+    [ Stream.Failure ->
+        Loc.raise (get_prev_loc ts)
+          (Stream.Error ("illegal begin of " ^ entry.ename))
+    | Loc.Exc_located _ _ as exc -> raise exc
+    | exc -> Loc.raise (get_prev_loc ts) exc ];
 
   value lex entry loc cs = entry.egram.glexer loc cs;
 
   value lex_string entry loc str = lex entry loc (Stream.of_string str);
 
-  value filter entry ts = Token.Filter.filter (get_filter entry.egram) ts;
+  value filter entry ts =
+    keep_prev_loc (Token.Filter.filter (get_filter entry.egram) ts);
 
   value parse_tokens_after_filter entry ts = Action.get (action_parse entry ts);
 
@@ -65,24 +65,25 @@ module Make (Structure : Structure.S) = struct
   value parse_string entry loc str =
     parse_tokens_before_filter entry (lex_string entry loc str);
 
-  value of_parser g n (p : Stream.t (Token.t * Loc.t) -> 'a) : t 'a =
+  value of_parser g n (p : Stream.t (Token.t * token_info) -> 'a) : t 'a =
+    let f ts = Action.mk (p ts) in
     { egram = g;
       ename = n;
-      estart _ _ ts = Action.mk (p ts);
-      econtinue _ _ _ = parser [];
-      edesc = Dparser (fun ts -> Action.mk (p ts)) };
+      estart _ = f;
+      econtinue _ _ _ = parser [];
+      edesc = Dparser f };
 
-  value setup_parser e (p : Stream.t (Token.t * Loc.t) -> 'a) =
+  value setup_parser e (p : Stream.t (Token.t * token_info) -> 'a) =
     let f ts = Action.mk (p ts) in do {
-      e.estart := fun _ -> f;
-      e.econtinue := fun _ _ _ -> parser [];
+      e.estart := fun _ -> f;
+      e.econtinue := fun _ _ _ -> parser [];
       e.edesc := Dparser f
     };
 
   value clear e =
     do {
-      e.estart := fun _ -> parser [];
-      e.econtinue := fun _ _ _ -> parser [];
+      e.estart := fun _ -> parser [];
+      e.econtinue := fun _ _ _ -> parser [];
       e.edesc := Dlevels []
     };
 
index ee3eff5af30cc8542c73bf021fd23d2348bbd831..b22998bd4827fe34552e2258242e28abcba450f8 100644 (file)
@@ -37,11 +37,9 @@ value rec name_of_symbol entry =
 
 value rec name_of_symbol_failed entry =
   fun
-  [ Slist0 s -> name_of_symbol_failed entry s
-  | Slist0sep s _ -> name_of_symbol_failed entry s
-  | Slist1 s -> name_of_symbol_failed entry s
-  | Slist1sep s _ -> name_of_symbol_failed entry s
-  | Sopt s -> name_of_symbol_failed entry s
+  [ Slist0 s | Slist0sep s _ |
+    Slist1 s | Slist1sep s _ |
+    Sopt s | Stry s -> name_of_symbol_failed entry s
   | Stree t -> name_of_tree_failed entry t
   | s -> name_of_symbol entry s ]
 and name_of_tree_failed entry =
@@ -104,7 +102,7 @@ value tree_failed entry prev_symb_result prev_symb tree =
         | _ ->
             let txt1 = name_of_symbol_failed entry sep in
             txt1 ^ " or " ^ txt ^ " expected" ]
-    | Sopt _ | Stree _ -> txt ^ " expected"
+    | Stry _(*NP: not sure about this*) | Sopt _ | Stree _ -> txt ^ " expected"
     | _ -> txt ^ " expected after " ^ name_of_symbol entry prev_symb ]
   in
   do {
index 6da366f70556b57c7cdc618d6420d6735a48ffc6..caf8a7a0a34270683af7c64bc58db31dfcca4c5f 100644 (file)
@@ -26,10 +26,11 @@ module Make (Structure : Structure.S) = struct
   module Fail = Failed.Make Structure;
   open Sig.Grammar;
 
+  (* Prevent from implict usage. *)
   module Stream = struct
-    include Stream;
-    value junk strm = Context.junk strm;
-    value count strm = Context.bp strm;
+    type t 'a = Stream.t 'a;
+    exception Failure = Stream.Failure;
+    exception Error = Stream.Error;
   end;
 
   value sfold0 f e _entry _symbl psymb =
index be57d0e90673daf90481f2fd4a19890081d5da63..a6cbf0eeed7833455074c1039b80c03e91974d45 100644 (file)
@@ -33,12 +33,15 @@ module Make (Structure : Structure.S) = struct
   ;
   value rec derive_eps =
     fun
-    [ Slist0 _ -> True
-    | Slist0sep _ _ -> True
-    | Sopt _ -> True
+    [ Slist0 _ | Slist0sep _ _ | Sopt _ -> True
+    | Stry s -> derive_eps s
     | Stree t -> tree_derive_eps t
-    | Smeta _ _ _ | Slist1 _ | Slist1sep _ _ | Snterm _ | Snterml _ _ | Snext |
-      Sself | Stoken _ | Skeyword _ -> False ]
+    | Slist1 _ | Slist1sep _ _ | Stoken _ | Skeyword _ ->
+        (* For sure we cannot derive epsilon from these *)
+        False
+    | Smeta _ _ _ | Snterm _ | Snterml _ _ | Snext | Sself ->
+        (* Approximation *)
+        False ]
   and tree_derive_eps =
     fun
     [ LocAct _ _ -> True
@@ -172,9 +175,7 @@ module Make (Structure : Structure.S) = struct
     | Smeta _ sl _ -> List.iter (check_gram entry) sl
     | Slist0sep s t -> do { check_gram entry t; check_gram entry s }
     | Slist1sep s t -> do { check_gram entry t; check_gram entry s }
-    | Slist0 s -> check_gram entry s
-    | Slist1 s -> check_gram entry s
-    | Sopt s -> check_gram entry s
+    | Slist0 s | Slist1 s | Sopt s | Stry s -> check_gram entry s
     | Stree t -> tree_check_gram entry t
     | Snext | Sself | Stoken _ | Skeyword _ -> () ]
   and tree_check_gram entry =
@@ -198,11 +199,9 @@ module Make (Structure : Structure.S) = struct
     let rec insert =
       fun
       [ Smeta _ sl _ -> List.iter insert sl
-      | Slist0 s -> insert s
-      | Slist1 s -> insert s
+      | Slist0 s | Slist1 s | Sopt s | Stry s -> insert s
       | Slist0sep s t -> do { insert s; insert t }
       | Slist1sep s t -> do { insert s; insert t }
-      | Sopt s -> insert s
       | Stree t -> tinsert t
       | Skeyword kwd -> using gram kwd
       | Snterm _ | Snterml _ _ | Snext | Sself | Stoken _ -> () ]
@@ -316,13 +315,13 @@ module Make (Structure : Structure.S) = struct
       do {
         entry.edesc := Dlevels elev;
         entry.estart :=
-          fun lev strm ->
+          fun lev strm ->
             let f = Parser.start_parser_of_entry entry in
-            do { entry.estart := f; f lev strm };
+            do { entry.estart := f; f lev strm };
         entry.econtinue :=
-          fun lev bp a strm ->
+          fun lev bp a strm ->
             let f = Parser.continue_parser_of_entry entry in
-            do { entry.econtinue := f; f lev bp a strm }
+            do { entry.econtinue := f; f lev bp a strm }
       };
 
   end;
index 715c48f74e097ed301e300da68b11a38eb96d670..89bbe884dfc8455f3715d9b28bd98378e204b4eb 100644 (file)
@@ -24,18 +24,61 @@ module Make (Structure : Structure.S) = struct
   open Structure;
   open Sig.Grammar;
 
-  module Stream = struct
-    include Stream;
-    value junk strm = Context.junk strm;
-    value count strm = Context.bp strm;
-  end;
+  module StreamOrig = Stream;
+
+  value njunk strm n =
+    for i = 1 to n do Stream.junk strm done;
 
-  value add_loc c bp parse_fun strm =
-    let x = parse_fun c strm in
-    let ep = Context.loc_ep c in
+  value loc_bp = Tools.get_cur_loc;
+  value loc_ep = Tools.get_prev_loc;
+  value drop_prev_loc = Tools.drop_prev_loc;
+
+  value add_loc bp parse_fun strm =
+    let x = parse_fun strm in
+    let ep = loc_ep strm in
     let loc = Loc.merge bp ep in
     (x, loc);
 
+  value stream_peek_nth strm n =
+    let rec loop i = fun
+      [ [x :: xs] -> if i = 1 then Some x else loop (i - 1) xs
+      | [] -> None ]
+    in
+    loop n (Stream.npeek n strm);
+
+  (* We don't want Stream's functions to be used implictly. *)
+  module Stream = struct
+    type t 'a = StreamOrig.t 'a;
+    exception Failure = StreamOrig.Failure;
+    exception Error = StreamOrig.Error;
+    value peek = StreamOrig.peek;
+    value junk = StreamOrig.junk;
+
+    value dup strm =
+      (* This version of peek_nth is off-by-one from Stream.peek_nth *)
+      let peek_nth n =
+        loop n (Stream.npeek (n + 1) strm) where rec loop n =
+          fun
+          [ [] -> None
+          | [x] -> if n = 0 then Some x else None
+          | [_ :: l] -> loop (n - 1) l ]
+      in
+      Stream.from peek_nth;
+  end;
+
+  value try_parser ps strm =
+    let strm' = Stream.dup strm in
+    let r =
+      try ps strm'
+      with
+      [ Stream.Error _ | Loc.Exc_located _ (Stream.Error _) ->
+          raise Stream.Failure
+      | exc -> raise exc ]
+    in do {
+      njunk strm (StreamOrig.count strm');
+      r;
+    };
+
   value level_number entry lab =
     let rec lookup levn =
       fun
@@ -73,60 +116,57 @@ module Make (Structure : Structure.S) = struct
     | _ -> raise Stream.Failure ]
   ;
 
-  value continue entry loc a s son p1 =
+  value continue entry loc a s son p1 =
     parser
-      [: a = (entry_of_symb entry s).econtinue 0 loc a c;
+      [: a = (entry_of_symb entry s).econtinue 0 loc a;
         act = p1 ?? Failed.tree_failed entry a s son :] ->
         Action.mk (fun _ -> Action.getf act a)
   ;
 
   (* PR#4603, PR#4330, PR#4551:
-     Here Context.loc_bp replaced Context.loc_ep to fix all these bugs.
+     Here loc_bp replaced get_loc_ep to fix all these bugs.
      If you do change it again look at these bugs. *)
-  value skip_if_empty c bp _ =
-    if Context.loc_bp c = bp then Action.mk (fun _ -> raise Stream.Failure)
+  value skip_if_empty bp strm =
+    if loc_bp strm = bp then Action.mk (fun _ -> raise Stream.Failure)
     else
       raise Stream.Failure
   ;
 
-  value do_recover parser_of_tree entry nlevn alevn loc a s son =
+  value do_recover parser_of_tree entry nlevn alevn loc a s son =
     parser
-    [ [: a = parser_of_tree entry nlevn alevn (top_tree entry son) :] -> a
-    | [: a = skip_if_empty loc :] -> a
+    [ [: a = parser_of_tree entry nlevn alevn (top_tree entry son) :] -> a
+    | [: a = skip_if_empty loc :] -> a
     | [: a =
-          continue entry loc a s son
-            (parser_of_tree entry nlevn alevn son c) :] ->
+          continue entry loc a s son
+            (parser_of_tree entry nlevn alevn son) :] ->
         a ]
   ;
 
 
-  value recover parser_of_tree entry nlevn alevn loc a s son strm =
+  value recover parser_of_tree entry nlevn alevn loc a s son strm =
     if strict_parsing.val then raise (Stream.Error (Failed.tree_failed entry a s son))
     else
       let _ =
-        if strict_parsing_warning.val then
-          do {
+        if strict_parsing_warning.val then begin
             let msg = Failed.tree_failed entry a s son;
             Format.eprintf "Warning: trying to recover from syntax error";
             if entry.ename <> "" then Format.eprintf " in [%s]" entry.ename else ();
             Format.eprintf "\n%s%a@." msg Loc.print loc;
-        } else () in
-      do_recover parser_of_tree entry nlevn alevn loc a s son strm
+        end else () in
+      do_recover parser_of_tree entry nlevn alevn loc a s son strm
   ;
 
   value rec parser_of_tree entry nlevn alevn =
     fun
-    [ DeadEnd -> fun _ -> parser []
-    | LocAct act _ -> fun _ -> parser [: :] -> act
+    [ DeadEnd -> parser []
+    | LocAct act _ -> parser [: :] -> act
     | Node {node = Sself; son = LocAct act _; brother = DeadEnd} ->
-        fun c ->
-          parser [: a = entry.estart alevn c :] -> Action.getf act a
+        parser [: a = entry.estart alevn :] -> Action.getf act a
     | Node {node = Sself; son = LocAct act _; brother = bro} ->
         let p2 = parser_of_tree entry nlevn alevn bro in
-        fun c ->
-          parser
-          [ [: a = entry.estart alevn c :] -> Action.getf act a
-          | [: a = p2 c :] -> a ]
+        parser
+        [ [: a = entry.estart alevn :] -> Action.getf act a
+        | [: a = p2 :] -> a ]
     | Node {node = s; son = son; brother = DeadEnd} ->
         let tokl =
           match s with
@@ -138,8 +178,10 @@ module Make (Structure : Structure.S) = struct
             let ps = parser_of_symbol entry nlevn s in
             let p1 = parser_of_tree entry nlevn alevn son in
             let p1 = parser_cont p1 entry nlevn alevn s son in
-            fun c ->
-              parser bp [: a = ps c; act = p1 c bp a :] -> Action.getf act a
+            fun strm ->
+              let bp = loc_bp strm in
+              match strm with parser
+              [: a = ps; act = p1 bp a :] -> Action.getf act a
         | Some (tokl, last_tok, son) ->
             let p1 = parser_of_tree entry nlevn alevn son in
             let p1 = parser_cont p1 entry nlevn alevn last_tok son in
@@ -156,23 +198,23 @@ module Make (Structure : Structure.S) = struct
             let p1 = parser_of_tree entry nlevn alevn son in
             let p1 = parser_cont p1 entry nlevn alevn s son in
             let p2 = parser_of_tree entry nlevn alevn bro in
-            fun c ->
-              parser bp
-              [ [: a = ps c; act = p1 c bp a :] -> Action.getf act a
-              | [: a = p2 c :] -> a ]
+            fun strm ->
+              let bp = loc_bp strm in
+              match strm with parser
+              [ [: a = ps; act = p1 bp a :] -> Action.getf act a
+              | [: a = p2 :] -> a ]
         | Some (tokl, last_tok, son) ->
             let p1 = parser_of_tree entry nlevn alevn son in
             let p1 = parser_cont p1 entry nlevn alevn last_tok son in
             let p1 = parser_of_token_list p1 tokl in
             let p2 = parser_of_tree entry nlevn alevn bro in
-            fun c ->
-              parser
-              [ [: a = p1 c :] -> a
-              | [: a = p2 c :] -> a ] ] ]
-  and parser_cont p1 entry nlevn alevn s son c loc a =
+            parser
+            [ [: a = p1 :] -> a
+            | [: a = p2 :] -> a ] ] ]
+  and parser_cont p1 entry nlevn alevn s son loc a =
     parser
-    [ [: a = p1 :] -> a
-    | [: a = recover parser_of_tree entry nlevn alevn loc a s son :] -> a
+    [ [: a = p1 :] -> a
+    | [: a = recover parser_of_tree entry nlevn alevn loc a s son :] -> a
     | [: :] -> raise (Stream.Error (Failed.tree_failed entry a s son)) ]
   and parser_of_token_list p1 tokl =
     loop 1 tokl where rec loop n =
@@ -180,133 +222,132 @@ module Make (Structure : Structure.S) = struct
       [ [Stoken (tematch, _) :: tokl] ->
           match tokl with
           [ [] ->
-              let ps c _ =
-                match Context.peek_nth c n with
-                [ Some (tok, _) when tematch tok -> do { Context.njunk c n; Action.mk tok }
+              let ps strm =
+                match stream_peek_nth strm n with
+                [ Some (tok, _) when tematch tok -> (njunk strm n; Action.mk tok)
                 | _ -> raise Stream.Failure ]
               in
-              fun c ->
-                parser bp [: a = ps c; act = p1 c bp a :] -> Action.getf act a
+              fun strm ->
+                let bp = loc_bp strm in
+                match strm with parser
+                [: a = ps; act = p1 bp a :] -> Action.getf act a
           | _ ->
-              let ps c _ =
-                match Context.peek_nth c n with
+              let ps strm =
+                match stream_peek_nth strm n with
                 [ Some (tok, _) when tematch tok -> tok
                 | _ -> raise Stream.Failure ]
               in
               let p1 = loop (n + 1) tokl in
-              fun c ->
-                parser [: tok = ps c; s :] ->
-                  let act = p1 c s in Action.getf act tok ]
+              parser [: tok = ps; s :] ->
+                let act = p1 s in Action.getf act tok ]
       | [Skeyword kwd :: tokl] ->
           match tokl with
           [ [] ->
-              let ps c _ =
-                match Context.peek_nth c n with
+              let ps strm =
+                match stream_peek_nth strm n with
                 [ Some (tok, _) when Token.match_keyword kwd tok ->
-                    do { Context.njunk c n; Action.mk tok }
+                    (njunk strm n; Action.mk tok)
                 | _ -> raise Stream.Failure ]
               in
-              fun c ->
-                parser bp [: a = ps c; act = p1 c bp a :] -> Action.getf act a
+              fun strm ->
+                let bp = loc_bp strm in
+                match strm with parser
+                [: a = ps; act = p1 bp a :] -> Action.getf act a
           | _ ->
-              let ps c _ =
-                match Context.peek_nth c n with
+              let ps strm =
+                match stream_peek_nth strm n with
                 [ Some (tok, _) when Token.match_keyword kwd tok -> tok
                 | _ -> raise Stream.Failure ]
               in
               let p1 = loop (n + 1) tokl in
-              fun c ->
-                parser [: tok = ps c; s :] ->
-                  let act = p1 c s in Action.getf act tok ]
+              parser [: tok = ps; s :] ->
+                let act = p1 s in Action.getf act tok ]
       | _ -> invalid_arg "parser_of_token_list" ]
   and parser_of_symbol entry nlevn =
     fun
     [ Smeta _ symbl act ->
         let act = Obj.magic act entry symbl in
         let pl = List.map (parser_of_symbol entry nlevn) symbl in
-        fun c ->
-          Obj.magic (List.fold_left (fun act p -> Obj.magic act (p c)) act pl)
+          Obj.magic (List.fold_left (fun act p -> Obj.magic act p) act pl)
     | Slist0 s ->
         let ps = parser_of_symbol entry nlevn s in
-        let rec loop al =
+        let rec loop al =
           parser
-          [ [: a = ps c; s :] -> loop c [a :: al] s
+          [ [: a = ps; s :] -> loop [a :: al] s
           | [: :] -> al ]
         in
-        fun c -> parser [: a = loop c [] :] -> Action.mk (List.rev a)
+        parser [: a = loop [] :] -> Action.mk (List.rev a)
     | Slist0sep symb sep ->
         let ps = parser_of_symbol entry nlevn symb in
         let pt = parser_of_symbol entry nlevn sep in
-        let rec kont al =
+        let rec kont al =
           parser
-          [ [: v = pt c; a = ps c ?? Failed.symb_failed entry v sep symb;
+          [ [: v = pt; a = ps ?? Failed.symb_failed entry v sep symb;
                s :] ->
-              kont [a :: al] s
+              kont [a :: al] s
           | [: :] -> al ]
         in
-        fun c ->
-          parser
-          [ [: a = ps c; s :] -> Action.mk (List.rev (kont c [a] s))
-          | [: :] -> Action.mk [] ]
+        parser
+        [ [: a = ps; s :] -> Action.mk (List.rev (kont [a] s))
+        | [: :] -> Action.mk [] ]
     | Slist1 s ->
         let ps = parser_of_symbol entry nlevn s in
-        let rec loop al =
+        let rec loop al =
           parser
-          [ [: a = ps c; s :] -> loop c [a :: al] s
+          [ [: a = ps; s :] -> loop [a :: al] s
           | [: :] -> al ]
         in
-        fun c ->
-          parser [: a = ps c; s :] -> Action.mk (List.rev (loop c [a] s))
+        parser [: a = ps; s :] -> Action.mk (List.rev (loop [a] s))
     | Slist1sep symb sep ->
         let ps = parser_of_symbol entry nlevn symb in
         let pt = parser_of_symbol entry nlevn sep in
-        let rec kont al =
+        let rec kont al =
           parser
-          [ [: v = pt c;
+          [ [: v = pt;
               a =
                 parser
-                [ [: a = ps :] -> a
-                | [: a = parse_top_symb' entry symb c :] -> a
+                [ [: a = ps :] -> a
+                | [: a = parse_top_symb entry symb :] -> a
                 | [: :] ->
                     raise (Stream.Error (Failed.symb_failed entry v sep symb)) ];
               s :] ->
-              kont [a :: al] s
+              kont [a :: al] s
           | [: :] -> al ]
         in
-        fun c ->
-          parser [: a = ps c; s :] -> Action.mk (List.rev (kont c [a] s))
+        parser [: a = ps; s :] -> Action.mk (List.rev (kont [a] s))
     | Sopt s ->
         let ps = parser_of_symbol entry nlevn s in
-        fun c ->
-          parser
-          [ [: a = ps c :] -> Action.mk (Some a)
-          | [: :] -> Action.mk None ]
+        parser
+        [ [: a = ps :] -> Action.mk (Some a)
+        | [: :] -> Action.mk None ]
+    | Stry s ->
+        let ps = parser_of_symbol entry nlevn s in
+        try_parser ps
     | Stree t ->
         let pt = parser_of_tree entry 1 0 t in
-        fun c ->
-          parser bp [: (act, loc) = add_loc c bp pt :] ->
+        fun strm ->
+          let bp = loc_bp strm in
+          match strm with parser
+          [: (act, loc) = add_loc bp pt :] ->
             Action.getf act loc
-    | Snterm e -> fun c -> parser [: a = e.estart 0 c :] -> a
+    | Snterm e -> parser [: a = e.estart 0 :] -> a
     | Snterml e l ->
-        fun c -> parser [: a = e.estart (level_number e l) c :] -> a
-    | Sself -> fun c -> parser [: a = entry.estart 0 c :] -> a
-    | Snext -> fun c -> parser [: a = entry.estart nlevn c :] -> a
+        parser [: a = e.estart (level_number e l) :] -> a
+    | Sself -> parser [: a = entry.estart 0 :] -> a
+    | Snext -> parser [: a = entry.estart nlevn :] -> a
     | Skeyword kwd ->
-        fun _ ->
-          parser
-          [: `(tok, _) when Token.match_keyword kwd tok :] -> Action.mk tok
+        parser
+        [: `(tok, _) when Token.match_keyword kwd tok :] ->
+           Action.mk tok
     | Stoken (f, _) ->
-        fun _ -> parser [: `(tok, _) when f tok :] -> Action.mk tok ]
-  and parse_top_symb' entry symb c =
-    parser_of_symbol entry 0 (top_symb entry symb) c
-  and parse_top_symb entry symb =
-    fun strm ->
-      Context.call_with_ctx strm
-        (fun c -> parse_top_symb' entry symb c (Context.stream c));
+        parser
+        [: `(tok,_) when f tok :] -> Action.mk tok ]
+  and parse_top_symb entry symb strm =
+    parser_of_symbol entry 0 (top_symb entry symb) strm;
 
   value rec start_parser_of_levels entry clevn =
     fun
-    [ [] -> fun _ -> parser []
+    [ [] -> fun _ -> parser []
     | [lev :: levs] ->
         let p1 = start_parser_of_levels entry (succ clevn) levs in
         match lev.lprefix with
@@ -320,20 +361,22 @@ module Make (Structure : Structure.S) = struct
             let p2 = parser_of_tree entry (succ clevn) alevn tree in
             match levs with
             [ [] ->
-                fun levn c ->
-                  parser bp
-                  [: (act, loc) = add_loc c bp p2; strm :] ->
+                fun levn strm ->
+                  let bp = loc_bp strm in
+                  match strm with parser
+                  [: (act, loc) = add_loc bp p2; strm :] ->
                     let a = Action.getf act loc in
-                    entry.econtinue levn loc a strm
+                    entry.econtinue levn loc a strm
             | _ ->
-                fun levn strm ->
-                  if levn > clevn then p1 levn strm
+                fun levn strm ->
+                  if levn > clevn then p1 levn strm
                   else
-                    match strm with parser bp
-                    [ [: (act, loc) = add_loc c bp p2 :] ->
+                    let bp = loc_bp strm in
+                    match strm with parser
+                    [ [: (act, loc) = add_loc bp p2 :] ->
                         let a = Action.getf act loc in
-                        entry.econtinue levn loc a strm
-                    | [: act = p1 levn :] -> act ] ] ] ]
+                        entry.econtinue levn loc a strm
+                    | [: act = p1 levn :] -> act ] ] ] ]
   ;
 
   value start_parser_of_entry entry =
@@ -341,11 +384,11 @@ module Make (Structure : Structure.S) = struct
     match entry.edesc with
     [ Dlevels [] -> Tools.empty_entry entry.ename
     | Dlevels elev -> start_parser_of_levels entry 0 elev
-    | Dparser p -> fun _ _ strm -> p strm ]
+    | Dparser p -> fun _ -> p ]
   ;
   value rec continue_parser_of_levels entry clevn =
     fun
-    [ [] -> fun _ _ _ -> parser []
+    [ [] -> fun _ _ _ -> parser []
     | [lev :: levs] ->
         let p1 = continue_parser_of_levels entry (succ clevn) levs in
         match lev.lsuffix with
@@ -357,14 +400,14 @@ module Make (Structure : Structure.S) = struct
               | RightA -> clevn ]
             in
             let p2 = parser_of_tree entry (succ clevn) alevn tree in
-            fun levn bp a strm ->
-              if levn > clevn then p1 levn bp a strm
+            fun levn bp a strm ->
+              if levn > clevn then p1 levn bp a strm
               else
                 match strm with parser
-                [ [: act = p1 levn bp a :] -> act
-                | [: (act, loc) = add_loc bp p2 :] ->
+                [ [: act = p1 levn bp a :] -> act
+                | [: (act, loc) = add_loc bp p2 :] ->
                     let a = Action.getf2 act a loc in
-                    entry.econtinue levn loc a strm ] ] ]
+                    entry.econtinue levn loc a strm ] ] ]
   ;
 
   value continue_parser_of_entry entry =
@@ -372,11 +415,11 @@ module Make (Structure : Structure.S) = struct
     match entry.edesc with
     [ Dlevels elev ->
         let p = continue_parser_of_levels entry 0 elev in
-        fun levn bp a ->
+        fun levn bp a ->
           parser
-          [ [: a = p levn bp a :] -> a
+          [ [: a = p levn bp a :] -> a
           | [: :] -> a ]
-    | Dparser _ -> fun _ _ _ -> parser [] ]
+    | Dparser _ -> fun _ _ _ -> parser [] ]
   ;
 
 end;
index e5a3faaafca2102a046b4f5e3c573b58be5fd837..7b7cbe5a2bba01a2d369417291083d12ed707b6f 100644 (file)
@@ -22,9 +22,8 @@
 
 module Make (Structure : Structure.S) : sig
   open Structure;
-  open Context;
   value add_loc :
-    Context.t -> Loc.t -> (Context.t -> 'a -> 'b) -> 'a -> ('b * Loc.t);
+    Loc.t -> (token_stream -> 'b) -> token_stream -> ('b * Loc.t);
   value level_number : internal_entry -> string -> int;
   value strict_parsing : ref bool;
   value strict_parsing_warning : ref bool;
@@ -35,33 +34,29 @@ module Make (Structure : Structure.S) : sig
   value entry_of_symb :
     internal_entry -> symbol -> internal_entry;
   value continue :
-    internal_entry -> Loc.t -> Action.t -> symbol -> Context.t -> tree ->
-    (Stream.t (Token.t * Loc.t) -> Action.t) -> Stream.t (Token.t * Loc.t) -> Action.t;
+    internal_entry -> Loc.t -> Action.t -> symbol -> tree -> efun -> efun;
   value do_recover :
-    (internal_entry -> 'a -> 'b -> tree -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t) -> internal_entry ->
-    'a -> 'b -> Loc.t -> Action.t -> symbol -> Context.t -> tree -> Stream.t (Token.t * Loc.t) -> Action.t;
+    (internal_entry -> 'a -> 'b -> tree -> efun) -> internal_entry ->
+    'a -> 'b -> Loc.t -> Action.t -> symbol -> tree -> efun;
   value recover :
-    (internal_entry -> 'a -> 'b -> tree -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t) -> internal_entry ->
-    'a -> 'b -> Loc.t -> Action.t -> symbol -> Context.t -> tree -> Stream.t (Token.t * Loc.t) -> Action.t;
+    (internal_entry -> 'a -> 'b -> tree -> efun) -> internal_entry ->
+    'a -> 'b -> Loc.t -> Action.t -> symbol -> tree -> efun;
   value parser_of_tree :
-    internal_entry -> int -> int -> tree -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+    internal_entry -> int -> int -> tree -> efun;
   value parser_cont :
-    (Context.t -> Stream.t (Token.t * Loc.t) -> Action.t) -> internal_entry -> int -> int -> symbol -> tree ->
-    Context.t -> Loc.t -> Action.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+    efun -> internal_entry -> int -> int -> symbol -> tree -> Loc.t -> Action.t -> efun;
   value parser_of_token_list :
-    (Context.t -> Loc.t -> Action.t -> Stream.t (Token.t * Loc.t) -> Action.t) -> list symbol -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+    (Loc.t -> Action.t -> efun) -> list symbol -> efun;
   value parser_of_symbol :
-    internal_entry -> int -> symbol -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
-  value parse_top_symb' :
-    internal_entry -> symbol -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+    internal_entry -> int -> symbol -> efun;
   value parse_top_symb :
-    internal_entry -> symbol -> Stream.t (Token.t * Loc.t) -> Action.t;
+    internal_entry -> symbol -> efun;
   value start_parser_of_levels :
-    internal_entry -> int -> list level -> int -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+    internal_entry -> int -> list level -> int -> efun;
   value start_parser_of_entry :
-    internal_entry -> int -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+    internal_entry -> int -> efun;
   value continue_parser_of_levels :
-    internal_entry -> int -> list level -> Context.t -> int -> Loc.t -> 'a -> Stream.t (Token.t * Loc.t) -> Action.t;
+    internal_entry -> int -> list level -> int -> Loc.t -> 'a -> efun;
   value continue_parser_of_entry :
-    internal_entry -> int -> Loc.t -> Action.t -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+    internal_entry -> int -> Loc.t -> Action.t -> efun;
 end;
index f5a9723029897bb0b10f1a6ecb30c373f68037e1..77000c88aa33115e4dfbb4aa83a9e433caca537b 100644 (file)
@@ -39,6 +39,7 @@ module Make (Structure : Structure.S) = struct
     | Slist1sep s t ->
         fprintf ppf "LIST1 %a SEP %a" print_symbol1 s print_symbol1 t
     | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s
+    | Stry s -> fprintf ppf "TRY %a" print_symbol1 s
     | Snterml e l -> fprintf ppf "%s@ LEVEL@ %S" e.ename l
     | Snterm _ | Snext | Sself | Stree _ | Stoken _ | Skeyword _ as s ->
         print_symbol1 ppf s ]
@@ -64,7 +65,7 @@ module Make (Structure : Structure.S) = struct
     | Skeyword s -> fprintf ppf "%S" s
     | Stree t -> print_level ppf pp_print_space (flatten_tree t)
     | Smeta _ _ _ | Snterml _ _ | Slist0 _ | Slist0sep _ _ | Slist1 _ |
-      Slist1sep _ _ | Sopt _ as s ->
+      Slist1sep _ _ | Sopt _ | Stry _ as s ->
         fprintf ppf "(%a)" print_symbol s ]
   and print_rule ppf symbols =
     do {
@@ -174,6 +175,7 @@ module MakeDump (Structure : Structure.S) = struct
     | Slist1sep s t ->
         fprintf ppf "LIST1 %a SEP %a" print_symbol1 s print_symbol1 t
     | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s
+    | Stry s -> fprintf ppf "TRY %a" print_symbol1 s
     | Snterml e l -> fprintf ppf "%s@ LEVEL@ %S" e.ename l
     | Snterm _ | Snext | Sself | Stree _ | Stoken _ | Skeyword _ as s ->
         print_symbol1 ppf s ]
@@ -199,7 +201,7 @@ module MakeDump (Structure : Structure.S) = struct
     | Skeyword s -> fprintf ppf "%S" s
     | Stree t -> print_tree ppf t
     | Smeta _ _ _ | Snterml _ _ | Slist0 _ | Slist0sep _ _ | Slist1 _ |
-      Slist1sep _ _ | Sopt _ as s ->
+      Slist1sep _ _ | Sopt _ | Stry _ as s ->
         fprintf ppf "(%a)" print_symbol s ]
   and print_rule ppf symbols =
     do {
index 870a6f7fb8a7085c19e4d3ff10acf543ea478f94..bc4ed301adbb8113d93cfb5102f3d8431a419f8b 100644 (file)
@@ -49,7 +49,7 @@ value tree_in_entry prev_symb tree =
       and search_symbol symb =
         match symb with
         [ Snterm _ | Snterml _ _ | Slist0 _ | Slist0sep _ _ | Slist1 _ |
-          Slist1sep _ _ | Sopt _ | Stoken _ | Stree _ | Skeyword _
+          Slist1sep _ _ | Sopt _ | Stry _ | Stoken _ | Stree _ | Skeyword _
           when symb == prev_symb ->
             Some symb
         | Slist0 symb ->
@@ -78,6 +78,10 @@ value tree_in_entry prev_symb tree =
             match search_symbol symb with
             [ Some symb -> Some (Sopt symb)
             | None -> None ]
+        | Stry symb ->
+            match search_symbol symb with
+            [ Some symb -> Some (Stry symb)
+            | None -> None ]
         | Stree t ->
             match search_tree t with
             [ Some t -> Some (Stree t)
index 7d7b51effc0e97539b2c884da7402f78c59a3f6e..a94c9fa1c56488f81eb7703c32a39e22c9ab2762 100644 (file)
@@ -28,6 +28,7 @@ module Make (Lexer : Sig.Lexer)
   module Delete = Delete.Make Structure;
   module Insert = Insert.Make Structure;
   module Fold = Fold.Make Structure;
+  module Tools = Tools.Make Structure;
   include Structure;
 
   value gram =
@@ -59,7 +60,7 @@ module Make (Lexer : Sig.Lexer)
 
   value lex_string loc str = lex loc (Stream.of_string str);
 
-  value filter ts = Token.Filter.filter gram.gfilter ts;
+  value filter ts = Tools.keep_prev_loc (Token.Filter.filter gram.gfilter ts);
 
   value parse_tokens_after_filter entry ts = Entry.E.parse_tokens_after_filter entry ts;
 
index 12023b7d158f31854ef50eed3cd0431d6be2bce8..c2afdd6395973db3dbff71846daa3a2bacadc582 100644 (file)
@@ -25,7 +25,6 @@ module type S = sig
   module Lexer        : Sig.Lexer
                         with module Loc   = Loc
                          and module Token = Token;
-  module Context      : Context.S with module Token = Token;
   module Action       : Sig.Grammar.Action;
 
   type gram =
@@ -35,7 +34,13 @@ module type S = sig
       warning_verbose : ref bool;
       error_verbose   : ref bool };
 
-  type efun = Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+  type token_info = { prev_loc : Loc.t
+                    ; cur_loc : Loc.t
+                    };
+
+  type token_stream = Stream.t (Token.t * token_info);
+
+  type efun = token_stream -> Action.t;
 
   type token_pattern = ((Token.t -> bool) * string);
 
@@ -47,7 +52,7 @@ module type S = sig
       edesc     : mutable desc }
   and desc =
     [ Dlevels of list level
-    | Dparser of Stream.t (Token.t * Loc.t) -> Action.t ]
+    | Dparser of token_stream -> Action.t ]
   and level =
     { assoc   : assoc         ;
       lname   : option string ;
@@ -62,6 +67,7 @@ module type S = sig
     | Slist1 of symbol
     | Slist1sep of symbol and symbol
     | Sopt of symbol
+    | Stry of symbol
     | Sself
     | Snext
     | Stoken of token_pattern
@@ -118,9 +124,13 @@ module Make (Lexer  : Sig.Lexer) = struct
       warning_verbose : ref bool;
       error_verbose   : ref bool };
 
-  module Context = Context.Make Token;
+  type token_info = { prev_loc : Loc.t
+                    ; cur_loc : Loc.t
+                    };
+
+  type token_stream = Stream.t (Token.t * token_info);
 
-  type efun = Context.t -> Stream.t (Token.t * Loc.t) -> Action.t;
+  type efun = token_stream -> Action.t;
 
   type token_pattern = ((Token.t -> bool) * string);
 
@@ -132,7 +142,7 @@ module Make (Lexer  : Sig.Lexer) = struct
       edesc     : mutable desc }
   and desc =
     [ Dlevels of list level
-    | Dparser of Stream.t (Token.t * Loc.t) -> Action.t ]
+    | Dparser of token_stream -> Action.t ]
   and level =
     { assoc   : assoc         ;
       lname   : option string ;
@@ -147,6 +157,7 @@ module Make (Lexer  : Sig.Lexer) = struct
     | Slist1 of symbol
     | Slist1sep of symbol and symbol
     | Sopt of symbol
+    | Stry of symbol
     | Sself
     | Snext
     | Stoken of token_pattern
@@ -177,6 +188,7 @@ module Make (Lexer  : Sig.Lexer) = struct
       (Stream.t 'a -> 'b) -> (Stream.t 'a -> unit) -> Stream.t 'a -> 'c;
 
   value get_filter g = g.gfilter;
+  value token_location r = r.cur_loc;
 
   type not_filtered 'a = 'a;
   value using { gkeywords = table; gfilter = filter } kwd =
@@ -217,7 +229,7 @@ value iter_entry f e =
     fun
     [ Smeta _ sl _ -> List.iter do_symbol sl
     | Snterm e | Snterml e _ -> do_entry e
-    | Slist0 s | Slist1 s | Sopt s -> do_symbol s
+    | Slist0 s | Slist1 s | Sopt s | Stry s -> do_symbol s
     | Slist0sep s1 s2 | Slist1sep s1 s2 -> do { do_symbol s1; do_symbol s2 }
     | Stree t -> do_tree t
     | Sself | Snext | Stoken _ | Stoken_fun _ -> () ]
@@ -251,7 +263,7 @@ value fold_entry f e init =
     fun
     [ Smeta _ sl _ -> List.fold_left do_symbol accu sl
     | Snterm e | Snterml e _ -> do_entry accu e
-    | Slist0 s | Slist1 s | Sopt s -> do_symbol accu s
+    | Slist0 s | Slist1 s | Sopt s | Stry s -> do_symbol accu s
     | Slist0sep s1 s2 | Slist1sep s1 s2 ->
         let accu = do_symbol accu s1 in
         do_symbol accu s2
index bcb933b8cb7e29fde8895f1f03aae4b23ccd4398..26489d374481a7bad2b4f939c0b32b7d5bcdd754 100644 (file)
 module Make (Structure : Structure.S) = struct
   open Structure;
 
-  value empty_entry ename _ _ _ =
+  value empty_entry ename _ =
     raise (Stream.Error ("entry [" ^ ename ^ "] is empty"));
 
+  value rec stream_map f = parser
+    [ [: ` x; strm :] -> [: ` (f x); stream_map f strm :]
+    | [: :] -> [: :] ];
+
+  value keep_prev_loc strm =
+    match Stream.peek strm with
+    [ None -> [: :]
+    | Some (_,init_loc) ->
+      let rec go prev_loc = parser
+        [ [: `(tok,cur_loc); strm :] -> [: `(tok,{prev_loc;cur_loc}); go cur_loc strm :]
+        | [: :] -> [: :] ]
+      in go init_loc strm ];
+
+  value drop_prev_loc strm = stream_map (fun (tok,r) -> (tok,r.cur_loc)) strm;
+
+  value get_cur_loc strm =
+    match Stream.peek strm with
+    [ Some (_,r) -> r.cur_loc
+    | None -> Loc.ghost ];
+
+  value get_prev_loc strm =
+    match Stream.peek strm with
+    [ Some (_,r) -> r.prev_loc
+    | None -> Loc.ghost ];
+
   value is_level_labelled n lev =
     match lev.lname with
     [ Some n1 -> n = n1
@@ -51,13 +76,13 @@ module Make (Structure : Structure.S) = struct
       | (Snterm e1, Sself) -> e1.ename = entry.ename
       | (Sself, Snterm e2) -> entry.ename = e2.ename
       | (Snterml e1 l1, Snterml e2 l2) -> e1.ename = e2.ename && l1 = l2
-      | (Slist0 s1, Slist0 s2) -> eq_symbols s1 s2
-      | (Slist0sep s1 sep1, Slist0sep s2 sep2) ->
-          eq_symbols s1 s2 && eq_symbols sep1 sep2
-      | (Slist1 s1, Slist1 s2) -> eq_symbols s1 s2
-      | (Slist1sep s1 sep1, Slist1sep s2 sep2) ->
+      | (Slist0 s1, Slist0 s2) |
+        (Slist1 s1, Slist1 s2) |
+        (Sopt s1, Sopt s2) |
+        (Stry s1, Stry s2) -> eq_symbols s1 s2
+      | (Slist0sep s1 sep1, Slist0sep s2 sep2) |
+        (Slist1sep s1 sep1, Slist1sep s2 sep2) ->
           eq_symbols s1 s2 && eq_symbols sep1 sep2
-      | (Sopt s1, Sopt s2) -> eq_symbols s1 s2
       | (Stree t1, Stree t2) -> eq_trees t1 t2
       | (Stoken (_, s1), Stoken (_, s2)) -> eq_Stoken_ids s1 s2
       | _ -> s1 = s2 ]
@@ -75,13 +100,13 @@ module Make (Structure : Structure.S) = struct
     match (s1, s2) with
     [ (Snterm e1, Snterm e2) -> e1 == e2
     | (Snterml e1 l1, Snterml e2 l2) -> e1 == e2 && l1 = l2
-    | (Slist0 s1, Slist0 s2) -> eq_symbol s1 s2
-    | (Slist0sep s1 sep1, Slist0sep s2 sep2) ->
-        eq_symbol s1 s2 && eq_symbol sep1 sep2
-    | (Slist1 s1, Slist1 s2) -> eq_symbol s1 s2
-    | (Slist1sep s1 sep1, Slist1sep s2 sep2) ->
+    | (Slist0 s1, Slist0 s2) |
+      (Slist1 s1, Slist1 s2) |
+      (Sopt s1, Sopt s2) |
+      (Stry s1, Stry s2) -> eq_symbol s1 s2
+    | (Slist0sep s1 sep1, Slist0sep s2 sep2) |
+      (Slist1sep s1 sep1, Slist1sep s2 sep2) ->
         eq_symbol s1 s2 && eq_symbol sep1 sep2
-    | (Sopt s1, Sopt s2) -> eq_symbol s1 s2
     | (Stree _, Stree _) -> False
     | (Stoken (_, s1), Stoken (_, s2)) -> eq_Stoken_ids s1 s2
     | _ -> s1 = s2 ]
index 40a0822337956a409d7120392e6cbbf2fdaba53b..b8e97efefb3f657e0a5814d1199ee6d0f5f4d2b9 100644 (file)
@@ -420,7 +420,7 @@ module Make (Token : Sig.Camlp4Token)
 
   and dollar c = parse
     | '$'                                     { set_start_p c; ANTIQUOT("", "") }
-    | ('`'? (identchar*|'.'+) as name) ':'
+    | ('`'? (identchar*|['.' '!']+) as name) ':'
       { with_curr_loc (antiquot name) (shift (1 + String.length name) c)        }
     | _                                           { store_parse (antiquot "") c }
 
index 8658d9f8507e5972a3cec3d2da89645df2dbad2f..78fd273480802ce42fe71d41b23c3bf079df1ae5 100644 (file)
@@ -264,6 +264,8 @@ value initial_spec_list =
     "Print Camlp4 version and exit.");
   ("-version", Arg.Unit just_print_the_version,
     "Print Camlp4 version number and exit.");
+  ("-vnum", Arg.Unit just_print_the_version,
+    "Print Camlp4 version number and exit.");
   ("-no_quot", Arg.Clear Camlp4_config.quotations,
     "Don't parse quotations, allowing to use, e.g. \"<:>\" as token.");
   ("-loaded-modules", Arg.Set print_loaded_modules, "Print the list of loaded modules.");
index c0af8e53a720c659cd67bb7cfce1282e79a77e66..66c48d7e54844df243d56bd3770abc61de2815f1 100644 (file)
@@ -427,7 +427,7 @@ module Make (AstFilters : Camlp4.Sig.AstFilters) = struct
         let params' = List.map string_of_type_param params in
         let funs = lambda (fun_of_ctyp id1 ctyp) params' in
         let ty = method_type_of_type_decl type_decl in
-        let priv = if priv then Ast.BTrue else Ast.BFalse in
+        let priv = if priv then <:private_flag< private >> else <:private_flag<>> in
         <:class_str_item< method $private:priv$ $lid:id1$ : $ty$ = $funs$; $acc$ >>
 
       and ctyp_name_of_name_params name params =
index 6eb849995b165ed3e794ded49ab4f94976720fc6..a49cbf32ff346c7e00e898068f5abf25f4fa6eb7 100644 (file)
@@ -91,7 +91,8 @@ value mk_meta m =
           let init = m_id m (meta_ident m m_name_cons) in
           let p = patt_of_data_ctor_decl m_name_cons tyargs in
           let e =
-            if cons = "BAnt" || cons = "OAnt" || cons = "LAnt" then
+            if List.mem cons  ["BAnt"; "OAnt"; "LAnt"; "ReAnt"; "DiAnt";
+                               "MuAnt"; "PrAnt"; "ViAnt"; "OvAnt"; "RvAnt"] then
               <:expr< $id:m.ant$ _loc x0 >>
             else if is_antiquot_data_ctor cons then
               expr_of_data_ctor_decl m.ant tyargs
index 2aa4334537aa3618ea5bbf6c477d49e5790b84df..3d64b1ae38df309986d9ca319f7017f0e5cb6960 100644 (file)
@@ -61,6 +61,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     | TXnext of loc
     | TXnterm of loc and name 'e and option string
     | TXopt of loc and text 'e 'p
+    | TXtry of loc and text 'e 'p
     | TXrules of loc and list (list (text 'e 'p) * 'e)
     | TXself of loc
     | TXkwd of loc and string
@@ -349,6 +350,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
                 $uid:gm$.Snterm
                     ($uid:gm$.Entry.obj ($n.expr$ : $uid:gm$.Entry.t '$n.tvar$)) >> ]
     | TXopt _loc t -> <:expr< $uid:gm$.Sopt $make_expr entry "" t$ >>
+    | TXtry _loc t -> <:expr< $uid:gm$.Stry $make_expr entry "" t$ >>
     | TXrules _loc rl ->
         <:expr< $uid:gm$.srules $entry.expr$ $make_expr_rules _loc entry rl ""$ >>
     | TXself _loc -> <:expr< $uid:gm$.Sself >>
@@ -769,7 +771,10 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
             let () = check_not_tok s in
             let styp = STapp _loc (STlid _loc "option") s.styp in
             let text = TXopt _loc s.text in
-            {used = s.used; text = text; styp = styp; pattern = None} ]
+            {used = s.used; text = text; styp = styp; pattern = None}
+        | UIDENT "TRY"; s = SELF ->
+            let text = TXtry _loc s.text in
+            {used = s.used; text = text; styp = s.styp; pattern = None} ]
       | [ UIDENT "SELF" ->
             {used = []; text = TXself _loc; styp = STself _loc "SELF"; pattern = None}
         | UIDENT "NEXT" ->
index 23db86855c63f669c348ea2fba647299e0473f0d..874426b10dfb3b36b1ff4bca3d1d0e85c06620ce 100644 (file)
@@ -123,8 +123,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     ;
 
     item:
-      [ [ test_patt_lessminus;
-          p = patt; "<-" ; e = expr LEVEL "top" -> `gen (p, e)
+      (* NP: These rules rely on being on this particular order. Which should
+             be improved. *)
+      [ [ p = TRY [p = patt; "<-" -> p] ; e = expr LEVEL "top" -> `gen (p, e)
         | e = expr LEVEL "top" -> `cond e ] ]
     ;
 
index 2bedf9aa110023127e78e455c2ff068b6d9f3e99..c7a510a52ac2de242183b55740756e86241b2d0d 100644 (file)
@@ -59,20 +59,6 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
                     (Ast.loc_of_expr e2) in
         <:expr< do { $e1$; $e2$ } >> ];
 
-  value test_constr_decl =
-    Gram.Entry.of_parser "test_constr_decl"
-      (fun strm ->
-        match Stream.npeek 1 strm with
-        [ [(UIDENT _, _)] ->
-            match Stream.npeek 2 strm with
-            [ [_; (KEYWORD ".", _)] -> raise Stream.Failure
-            | [_; (KEYWORD "(", _)] -> raise Stream.Failure
-            | [_ :: _] -> ()
-            | _ -> raise Stream.Failure ]
-        | [(KEYWORD "|", _)] -> ()
-        | _ -> raise Stream.Failure ])
-  ;
-
   value stream_peek_nth n strm =
     loop n (Stream.npeek n strm) where rec loop n =
       fun
@@ -81,75 +67,11 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
       | [_ :: l] -> loop (n - 1) l ]
   ;
 
-  (* horrible hacks to be able to parse class_types *)
-
-  value test_ctyp_minusgreater =
-    Gram.Entry.of_parser "test_ctyp_minusgreater"
-      (fun strm ->
-        let rec skip_simple_ctyp n =
-          match stream_peek_nth n strm with
-          [ Some (KEYWORD "->") -> n
-          | Some (KEYWORD ("[" | "[<")) ->
-              skip_simple_ctyp (ignore_upto "]" (n + 1) + 1)
-          | Some (KEYWORD "(") -> skip_simple_ctyp (ignore_upto ")" (n + 1) + 1)
-          | Some
-              (KEYWORD
-                ("as" | "'" | ":" | "*" | "." | "#" | "<" | ">" | ".." | ";" |
-                "_" | "?")) ->
-              skip_simple_ctyp (n + 1)
-          | Some (LIDENT _ | UIDENT _) ->
-              skip_simple_ctyp (n + 1)
-          | Some _ | None -> raise Stream.Failure ]
-        and ignore_upto end_kwd n =
-          match stream_peek_nth n strm with
-          [ Some (KEYWORD prm) when prm = end_kwd -> n
-          | Some (KEYWORD ("[" | "[<")) ->
-              ignore_upto end_kwd (ignore_upto "]" (n + 1) + 1)
-          | Some (KEYWORD "(") -> ignore_upto end_kwd (ignore_upto ")" (n + 1) + 1)
-          | Some _ -> ignore_upto end_kwd (n + 1)
-          | None -> raise Stream.Failure ]
-        in
-        match Stream.peek strm with
-        [ Some ((KEYWORD "[" | LIDENT _ | UIDENT _), _) -> skip_simple_ctyp 1
-        | Some (KEYWORD "object", _) -> raise Stream.Failure
-        | _ -> 1 ])
-  ;
-
-  value test_label_expr_list =
-    Gram.Entry.of_parser "test_label_expr_list"
-      (test 1 where rec test lev strm =
-        match stream_peek_nth lev strm with
-        [ Some (UIDENT _ | LIDENT _ | KEYWORD ".") ->
-            test (lev + 1) strm
-        | Some (KEYWORD ("="|";"|"}")) ->
-            (* ";" and "}" occur due to record punning *)
-            ()
-        | _ -> raise Stream.Failure ])
-  ;
-
-  value test_typevar_list_dot =
-    Gram.Entry.of_parser "test_typevar_list_dot"
-      (let rec test lev strm =
-        match stream_peek_nth lev strm with
-        [ Some (KEYWORD "'") -> test2 (lev + 1) strm
-        | Some (KEYWORD ".") -> ()
-        | _ -> raise Stream.Failure ]
-      and test2 lev strm =
-        match stream_peek_nth lev strm with
-        [ Some (UIDENT _ | LIDENT _) -> test (lev + 1) strm
-        | _ -> raise Stream.Failure ]
-      in
-      test 1)
-  ;
-
-  value lident_colon =
-    Gram.Entry.of_parser "lident_colon"
-      (fun strm ->
-        match Stream.npeek 2 strm with
-        [ [(LIDENT i, _); (KEYWORD ":", _)] ->
-            do { Stream.junk strm; Stream.junk strm; i }
-        | _ -> raise Stream.Failure ])
-  ;
+  value test_not_dot_nor_lparen =
+    Gram.Entry.of_parser "test_not_dot_nor_lparen" (fun strm ->
+      match Stream.peek strm with
+      [ Some (KEYWORD ("."|"("),_) -> raise Stream.Failure
+      | _ -> () ]);
 
   value rec is_ident_constr_call =
     fun
@@ -221,6 +143,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
   clear star_ctyp;
   clear match_case;
   clear with_constr;
+  clear package_type;
   clear top_phrase;
 
   EXTEND Gram
@@ -257,7 +180,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
       type_ident_and_parameters type_kind type_longident
       type_longident_and_parameters type_parameter type_parameters typevars
       use_file val_longident value_let value_val with_constr with_constr_quot
-      infixop0 infixop1 infixop2 infixop3 infixop4 do_sequence
+      infixop0 infixop1 infixop2 infixop3 infixop4 do_sequence package_type
     ;
     sem_expr:
       [ [ e1 = expr LEVEL "top"; ";"; e2 = SELF -> <:expr< $e1$; $e2$ >>
@@ -342,9 +265,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     expr: LEVEL "simple" (* LEFTA *)
       [ [ "false" -> <:expr< False >>
         | "true" -> <:expr< True >>
-        | "{"; test_label_expr_list; lel = label_expr_list; "}" ->
+        | "{"; lel = TRY [lel = label_expr_list; "}" -> lel] ->
             <:expr< { $lel$ } >>
-        | "{"; e = expr LEVEL "."; "with"; lel = label_expr_list; "}" ->
+        | "{"; e = TRY [e = expr LEVEL "."; "with" -> e]; lel = label_expr_list; "}" ->
             <:expr< { ($e$) with $lel$ } >>
         | "new"; i = class_longident -> <:expr< new $i$ >>
       ] ]
@@ -446,22 +369,45 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
         | "type"; t1 = type_longident_and_parameters; "="; t2 = opt_private_ctyp ->
             <:with_constr< type $t1$ = $t2$ >>
         | "module"; i1 = module_longident; "="; i2 = module_longident_with_app ->
-            <:with_constr< module $i1$ = $i2$ >> ] ]
+            <:with_constr< module $i1$ = $i2$ >>
+        | "type"; `ANTIQUOT (""|"typ"|"anti" as n) s; ":="; t = opt_private_ctyp ->
+            <:with_constr< type $anti:mk_anti ~c:"ctyp" n s$ := $t$ >>
+        | "type"; t1 = type_longident_and_parameters; ":="; t2 = opt_private_ctyp ->
+            <:with_constr< type $t1$ := $t2$ >>
+        | "module"; i1 = module_longident; ":="; i2 = module_longident_with_app ->
+            <:with_constr< module $i1$ := $i2$ >> ] ]
+    ;
+    package_type:
+      [ [ i = module_longident_with_app -> <:module_type< $id:i$ >>
+        | i = module_longident_with_app; "with"; cs = package_type_cstrs ->
+            <:module_type< $id:i$ with $cs$ >>
+      ] ]
+    ;
+    package_type_cstr:
+      [ [ "type"; i = a_LIDENT; "="; ty = ctyp ->
+            <:with_constr< type $lid:i$ = $ty$ >>
+      ] ]
+    ;
+    package_type_cstrs:
+      [ [ c = package_type_cstr -> c
+        | c = package_type_cstr; "and"; cs = package_type_cstrs ->
+            <:with_constr< $c$ and $cs$ >>
+      ] ]
     ;
     opt_private_ctyp:
       [ [ "private"; t = ctyp -> <:ctyp< private $t$ >>
         | t = ctyp -> t ] ]
     ;
     class_type_plus:
-      [ [ i = lident_colon; t = ctyp LEVEL "star"; "->"; ct = SELF ->
+      [ [ i = TRY [i = a_LIDENT; ":" -> i]; t = ctyp LEVEL "star"; "->"; ct = SELF ->
             <:class_type< [ ~ $i$ : $t$ ] -> $ct$ >>
         | "?"; i = a_LIDENT; ":"; t = ctyp LEVEL "star"; "->"; ct = SELF ->
             <:class_type< [ ? $i$ : $t$ ] -> $ct$ >>
         | i = OPTLABEL (* FIXME inline a_OPTLABEL *); t = ctyp LEVEL "star"; "->"; ct = SELF ->
             <:class_type< [ ? $i$ : $t$ ] -> $ct$ >>
-        | test_ctyp_minusgreater; t = ctyp LEVEL "star"; "->"; ct = SELF ->
+        | t = TRY [t = ctyp LEVEL "star"; "->" -> t]; ct = SELF ->
             <:class_type< [ $t$ ] -> $ct$ >>
-        | ct = class_type -> ct ] ]
+        | ct = TRY class_type -> ct ] ]
     ;
     class_type_longident_and_param:
       [ [ "["; t = comma_ctyp; "]"; i = class_type_longident ->
@@ -483,7 +429,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
       [ [ t1 = SELF; "as"; "'"; i = a_ident -> <:ctyp< $t1$ as '$i$ >> ]
       | "arrow" RIGHTA
         [ t1 = SELF; "->"; t2 = SELF -> <:ctyp< $t1$ -> $t2$ >>
-        | i = lident_colon; t1 = ctyp LEVEL "star"; "->"; t2 = SELF ->
+        | i = TRY [i = a_LIDENT; ":" -> i]; t1 = ctyp LEVEL "star"; "->"; t2 = SELF ->
             <:ctyp< ( ~ $i$ : $t1$ ) -> $t2$ >>
         | i = a_OPTLABEL; t1 = ctyp LEVEL "star"; "->"; t2 = SELF ->
             <:ctyp< ( ? $i$ : $t1$ ) -> $t2$ >>
@@ -529,10 +475,11 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
             <:ctyp< [ < $rfl$ ] >>
         | "[<"; OPT "|"; rfl = row_field; ">"; ntl = name_tags; "]" ->
             <:ctyp< [ < $rfl$ > $ntl$ ] >>
+        | "("; "module"; p = package_type; ")" -> <:ctyp< (module $p$) >>
         ] ]
     ;
     meth_list:
-      [ [ m = meth_decl -> (m, Ast.BFalse) ] ];
+      [ [ m = meth_decl -> (m, <:row_var_flag<>>) ] ];
     comma_ctyp_app:
       [ [ t1 = ctyp; ","; t2 = SELF -> fun acc -> t2 <:ctyp< $acc$ $t1$ >>
         | t = ctyp -> fun acc -> <:ctyp< $acc$ $t$ >>
@@ -577,14 +524,15 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
     ;
     type_kind:
       [ [ "private"; tk = type_kind -> <:ctyp< private $tk$ >>
-        | test_constr_decl; OPT "|";
-          t = constructor_declarations -> <:ctyp< [ $t$ ] >>
-        | t = ctyp -> <:ctyp< $t$ >>
-        | t = ctyp; "="; "private"; tk = type_kind ->
+        | t = TRY [OPT "|"; t = constructor_declarations;
+                   test_not_dot_nor_lparen -> t] ->
+            <:ctyp< [ $t$ ] >>
+        | t = TRY ctyp -> <:ctyp< $t$ >>
+        | t = TRY ctyp; "="; "private"; tk = type_kind ->
             <:ctyp< $t$ == private $tk$ >>
-        | t1 = ctyp; "="; "{"; t2 = label_declaration_list; "}" ->
+        | t1 = TRY ctyp; "="; "{"; t2 = label_declaration_list; "}" ->
             <:ctyp< $t1$ == { $t2$ } >>
-        | t1 = ctyp; "="; OPT "|"; t2 = constructor_declarations ->
+        | t1 = TRY ctyp; "="; OPT "|"; t2 = constructor_declarations ->
             <:ctyp< $t1$ == [ $t2$ ] >>
         | "{"; t = label_declaration_list; "}" ->
             <:ctyp< { $t$ } >> ] ]
@@ -622,9 +570,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
       ] ]
     ;
     poly_type:
-      [ [ test_typevar_list_dot; t1 = typevars; "."; t2 = ctyp ->
+      [ [ t1 = TRY [t = typevars; "." -> t]; t2 = ctyp ->
             <:ctyp< ! $t1$ . $t2$ >>
-        | t = ctyp -> t ] ]
+        | t = TRY ctyp -> t ] ]
     ;
     labeled_ipatt:
       [ [ i = a_LABEL; p = patt LEVEL "simple" ->
index f31636e22c02f23eec382a4911f87ad64f1eb6ae..11fd025041a8042cc3a76c0147b4b744dacab277 100644 (file)
@@ -300,13 +300,6 @@ Very old (no more supported) syntax:\n\
         Some <:expr< Bigarray.Genarray.set $arr$ [| $coords$ |] $newval$ >>
     | _ -> None ];
 
-  value test_not_left_brace_nor_do =
-    Gram.Entry.of_parser "test_not_left_brace_nor_do"
-      (fun strm ->
-        match Stream.peek strm with
-        [ Some(KEYWORD "{" | KEYWORD "do", _) -> raise Stream.Failure
-        | _ -> () ]);
-
   value stopped_at _loc =
     Some (Loc.move_line 1 _loc) (* FIXME be more precise *);
 
@@ -323,69 +316,46 @@ Very old (no more supported) syntax:\n\
     loop
   ;
 
+  value setup_op_parser entry p =
+    Gram.Entry.setup_parser entry
+      (parser
+        [: `(KEYWORD x | SYMBOL x, ti) when p x :] ->
+          let _loc = Gram.token_location ti in
+          <:expr< $lid:x$ >>);
+
   let list = ['!'; '?'; '~'] in
   let excl = ["!="; "??"] in
-  Gram.Entry.setup_parser prefixop
-    (parser
-      [: `(KEYWORD x | SYMBOL x, _loc)
-          when
-            not (List.mem x excl) && String.length x >= 2 &&
-            List.mem x.[0] list && symbolchar x 1 :] ->
-        <:expr< $lid:x$ >>)
-  ;
+  setup_op_parser prefixop
+    (fun x -> not (List.mem x excl) && String.length x >= 2 &&
+              List.mem x.[0] list && symbolchar x 1);
 
   let list_ok = ["<"; ">"; "<="; ">="; "="; "<>"; "=="; "!="; "$"] in
   let list_first_char_ok = ['='; '<'; '>'; '|'; '&'; '$'; '!'] in
   let excl = ["<-"; "||"; "&&"] in
-  Gram.Entry.setup_parser infixop0
-    (parser
-      [: `(KEYWORD x | SYMBOL x, _loc)
-          when
-            (List.mem x list_ok) ||
-            (not (List.mem x excl) && String.length x >= 2 &&
-              List.mem x.[0] list_first_char_ok && symbolchar x 1) :] ->
-        <:expr< $lid:x$ >>)
-  ;
+  setup_op_parser infixop0
+    (fun x -> (List.mem x list_ok) ||
+              (not (List.mem x excl) && String.length x >= 2 &&
+              List.mem x.[0] list_first_char_ok && symbolchar x 1));
 
   let list = ['@'; '^'] in
-  Gram.Entry.setup_parser infixop1
-    (parser
-      [: `(KEYWORD x | SYMBOL x, _loc)
-          when
-            String.length x >= 1 && List.mem x.[0] list &&
-            symbolchar x 1 :] ->
-        <:expr< $lid:x$ >>)
-  ;
+  setup_op_parser infixop1
+    (fun x -> String.length x >= 1 && List.mem x.[0] list &&
+              symbolchar x 1);
 
   let list = ['+'; '-'] in
-  Gram.Entry.setup_parser infixop2
-    (parser
-      [: `(KEYWORD x | SYMBOL x, _loc)
-          when
-            x <> "->" && String.length x >= 1 && List.mem x.[0] list &&
-            symbolchar x 1 :] ->
-        <:expr< $lid:x$ >>)
-  ;
+  setup_op_parser infixop2
+    (fun x -> x <> "->" && String.length x >= 1 && List.mem x.[0] list &&
+              symbolchar x 1);
 
   let list = ['*'; '/'; '%'; '\\'] in
-  Gram.Entry.setup_parser infixop3
-    (parser
-      [: `(KEYWORD x | SYMBOL x, _loc)
-          when
-            String.length x >= 1 && List.mem x.[0] list &&
-            (x.[0] <> '*' || String.length x < 2 || x.[1] <> '*') &&
-            symbolchar x 1 :] ->
-        <:expr< $lid:x$ >>)
-  ;
+  setup_op_parser infixop3
+    (fun x -> String.length x >= 1 && List.mem x.[0] list &&
+              (x.[0] <> '*' || String.length x < 2 || x.[1] <> '*') &&
+              symbolchar x 1);
 
-  Gram.Entry.setup_parser infixop4
-    (parser
-      [: `(KEYWORD x | SYMBOL x, _loc)
-          when
-            String.length x >= 2 && x.[0] == '*' && x.[1] == '*' &&
-            symbolchar x 2 :] ->
-        <:expr< $lid:x$ >>)
-  ;
+  setup_op_parser infixop4
+    (fun x -> String.length x >= 2 && x.[0] == '*' && x.[1] == '*' &&
+              symbolchar x 2);
 
   value rec infix_kwds_filter =
     parser
@@ -401,17 +371,21 @@ Very old (no more supported) syntax:\n\
   Token.Filter.define_filter (Gram.get_filter ())
     (fun f strm -> infix_kwds_filter (f strm));
 
-  (* transmit the context *)
   Gram.Entry.setup_parser sem_expr begin
     let symb1 = Gram.parse_tokens_after_filter expr in
     let symb =
       parser
-      [ [: `(ANTIQUOT ("list" as n) s, _loc) :] -> <:expr< $anti:mk_anti ~c:"expr;" n s$ >>
+      [ [: `(ANTIQUOT ("list" as n) s, ti) :] ->
+        let _loc = Gram.token_location ti in
+        <:expr< $anti:mk_anti ~c:"expr;" n s$ >>
       | [: a = symb1 :] -> a ]
     in
     let rec kont al =
       parser
-      [ [: `(KEYWORD ";", _loc); a = symb; s :] -> kont <:expr< $al$; $a$ >> s
+      [ [: `(KEYWORD ";", _); a = symb; s :] ->
+        let _loc = Loc.merge (Ast.loc_of_expr al)
+                             (Ast.loc_of_expr a) in
+        kont <:expr< $al$; $a$ >> s
       | [: :] -> al ]
     in
     parser [: a = symb; s :] -> kont a s
@@ -450,7 +424,9 @@ Very old (no more supported) syntax:\n\
       type_ident_and_parameters type_kind type_longident
       type_longident_and_parameters type_parameter type_parameters typevars
       use_file val_longident value_let value_val with_constr with_constr_quot
-      infixop0 infixop1 infixop2 infixop3 infixop4 do_sequence;
+      infixop0 infixop1 infixop2 infixop3 infixop4 do_sequence package_type
+      rec_flag_quot direction_flag_quot mutable_flag_quot private_flag_quot
+      virtual_flag_quot row_var_flag_quot override_flag_quot;
     module_expr:
       [ "top"
         [ "functor"; "("; i = a_UIDENT; ":"; t = module_type; ")"; "->";
@@ -467,7 +443,11 @@ Very old (no more supported) syntax:\n\
         | i = module_longident -> <:module_expr< $id:i$ >>
         | "("; me = SELF; ":"; mt = module_type; ")" ->
             <:module_expr< ( $me$ : $mt$ ) >>
-        | "("; me = SELF; ")" -> <:module_expr< $me$ >> ] ]
+        | "("; me = SELF; ")" -> <:module_expr< $me$ >>
+        | "("; value_val; e = expr; ")" ->
+            <:module_expr< (value $e$) >>
+        | "("; value_val; e = expr; ":"; p = package_type; ")" ->
+            <:module_expr< (value $e$ : $p$) >> ] ]
     ;
     str_item:
       [ "top"
@@ -596,7 +576,13 @@ Very old (no more supported) syntax:\n\
         | "type"; t1 = type_longident_and_parameters; "="; t2 = ctyp ->
             <:with_constr< type $t1$ = $t2$ >>
         | "module"; i1 = module_longident; "="; i2 = module_longident_with_app ->
-            <:with_constr< module $i1$ = $i2$ >> ] ]
+            <:with_constr< module $i1$ = $i2$ >>
+        | "type"; `ANTIQUOT (""|"typ"|"anti" as n) s; ":="; t = ctyp ->
+            <:with_constr< type $anti:mk_anti ~c:"ctyp" n s$ := $t$ >>
+        | "type"; t1 = type_longident_and_parameters; ":="; t2 = ctyp ->
+            <:with_constr< type $t1$ := $t2$ >>
+        | "module"; i1 = module_longident; ":="; i2 = module_longident_with_app ->
+            <:with_constr< module $i1$ := $i2$ >> ] ]
     ;
     expr:
       [ "top" RIGHTA
@@ -698,7 +684,9 @@ Very old (no more supported) syntax:\n\
         | s = a_FLOAT -> <:expr< $flo:s$ >>
         | s = a_STRING -> <:expr< $str:s$ >>
         | s = a_CHAR -> <:expr< $chr:s$ >>
-        | i = val_longident -> <:expr< $id:i$ >>
+        | i = TRY module_longident_dot_lparen; e = sequence; ")" ->
+            <:expr< let open $i$ in $e$ >>
+        | i = TRY val_longident -> <:expr< $id:i$ >>
         | "`"; s = a_ident -> <:expr< ` $s$ >>
         | "["; "]" -> <:expr< [] >>
         | "["; mk_list = sem_expr_for_list; "::"; last = expr; "]" ->
@@ -722,11 +710,18 @@ Very old (no more supported) syntax:\n\
         | "("; e = SELF; ":>"; t = ctyp; ")" -> <:expr< ($e$ :> $t$) >>
         | "("; e = SELF; ")" -> e
         | "begin"; seq = sequence; "end" -> mksequence _loc seq
-        | "begin"; "end" -> <:expr< () >> ] ]
+        | "begin"; "end" -> <:expr< () >>
+        | "("; "module"; me = module_expr; ")" ->
+            <:expr< (module $me$) >>
+        | "("; "module"; me = module_expr; ":"; pt = package_type; ")" ->
+            <:expr< (module $me$ : $pt$) >>
+        ] ]
     ;
     do_sequence:
-      [ [ "{"; seq = sequence; "}" -> seq
-        | test_not_left_brace_nor_do; seq = sequence; "done" -> seq
+      [ [ seq = TRY ["{"; seq = sequence; "}" -> seq] -> seq
+        | TRY ["{"; "}"] -> <:expr< () >>
+        | seq = TRY [seq = sequence; "done" -> seq] -> seq
+        | "done" -> <:expr< () >>
       ] ]
     ;
     infixop5:
@@ -737,6 +732,7 @@ Very old (no more supported) syntax:\n\
     ;
     sem_expr_for_list:
       [ [ e = expr; ";"; el = SELF -> fun acc -> <:expr< [ $e$ :: $el acc$ ] >>
+        | e = expr; ";" -> fun acc -> <:expr< [ $e$ :: $acc$ ] >>
         | e = expr -> fun acc -> <:expr< [ $e$ :: $acc$ ] >>
       ] ]
     ;
@@ -783,11 +779,12 @@ Very old (no more supported) syntax:\n\
     ;
     fun_binding:
       [ RIGHTA
-        [ p = labeled_ipatt; e = SELF ->
+        [ TRY ["("; "type"]; i = a_LIDENT; ")"; e = SELF ->
+            <:expr< fun (type $i$) -> $e$ >>
+        | p = TRY labeled_ipatt; e = SELF ->
             <:expr< fun $p$ -> $e$ >>
-        | "="; e = expr -> <:expr< $e$ >>
-        | ":"; t = ctyp; "="; e = expr -> <:expr< ($e$ : $t$) >>
-        | ":>"; t = ctyp; "="; e = expr -> <:expr< ($e$ :> $t$) >> ] ]
+        | bi = cvalue_binding -> bi
+      ] ]
     ;
     match_case:
       [ [ "["; l = LIST0 match_case0 SEP "|"; "]" -> Ast.mcOr_of_list l
@@ -834,15 +831,30 @@ Very old (no more supported) syntax:\n\
             <:rec_binding< $i$ = $lid:lid_of_ident i$ >> ] ]
     ;
     fun_def:
-      [ [ p = labeled_ipatt; (w, e) = fun_def_cont ->
+      [ [ TRY ["("; "type"]; i = a_LIDENT; ")";
+          e = fun_def_cont_no_when ->
+            <:expr< fun (type $i$) -> $e$ >>
+        | p = TRY labeled_ipatt; (w, e) = fun_def_cont ->
             <:expr< fun [ $p$ when $w$ -> $e$ ] >> ] ]
     ;
     fun_def_cont:
       [ RIGHTA
-        [ p = labeled_ipatt; (w,e) = SELF -> (<:expr<>>, <:expr< fun [ $p$ when $w$ -> $e$ ] >>)
+        [ TRY ["("; "type"]; i = a_LIDENT; ")";
+          e = fun_def_cont_no_when ->
+            (<:expr<>>, <:expr< fun (type $i$) -> $e$ >>)
+        | p = TRY labeled_ipatt; (w,e) = SELF ->
+            (<:expr<>>, <:expr< fun [ $p$ when $w$ -> $e$ ] >>)
         | "when"; w = expr; "->"; e = expr -> (w, e)
         | "->"; e = expr -> (<:expr<>>, e) ] ]
     ;
+    fun_def_cont_no_when:
+      [ RIGHTA
+        [ TRY ["("; "type"]; i = a_LIDENT; ")";
+          e = fun_def_cont_no_when -> <:expr< fun (type $i$) -> $e$ >>
+        | p = TRY labeled_ipatt; (w,e) = fun_def_cont ->
+            <:expr< fun [ $p$ when $w$ -> $e$ ] >>
+        | "->"; e = expr -> e ] ]
+    ;
     patt:
       [ "|" LEFTA
         [ p1 = SELF; "|"; p2 = SELF -> <:patt< $p1$ | $p2$ >> ]
@@ -910,12 +922,14 @@ Very old (no more supported) syntax:\n\
     ;
     sem_patt:
       [ LEFTA
-        [ p1 = SELF; ";"; p2 = SELF -> <:patt< $p1$; $p2$ >>
+        [ p1 = patt; ";"; p2 = SELF -> <:patt< $p1$; $p2$ >>
         | `ANTIQUOT ("list" as n) s -> <:patt< $anti:mk_anti ~c:"patt;" n s$ >>
+        | p = patt; ";" -> p
         | p = patt -> p ] ]
     ;
     sem_patt_for_list:
       [ [ p = patt; ";"; pl = SELF -> fun acc -> <:patt< [ $p$ :: $pl acc$ ] >>
+        | p = patt; ";" -> fun acc -> <:patt< [ $p$ :: $acc$ ] >>
         | p = patt -> fun acc -> <:patt< [ $p$ :: $acc$ ] >>
       ] ]
     ;
@@ -1073,6 +1087,7 @@ Very old (no more supported) syntax:\n\
         | "{"; t = label_declaration_list; "}" -> <:ctyp< { $t$ } >>
         | "#"; i = class_longident -> <:ctyp< # $i$ >>
         | "<"; t = opt_meth_list; ">" -> t
+        | "("; "module"; p = package_type; ")" -> <:ctyp< (module $p$) >>
       ] ]
     ;
     star_ctyp:
@@ -1163,6 +1178,12 @@ Very old (no more supported) syntax:\n\
         | i = a_UIDENT -> <:ident< $uid:i$ >>
         | "("; i = SELF; ")" -> i ] ]
     ;
+    module_longident_dot_lparen:
+      [ [ `ANTIQUOT (""|"id"|"anti"|"list" as n) s; "."; "(" ->
+            <:ident< $anti:mk_anti ~c:"ident" n s$ >>
+        | m = a_UIDENT; "."; l = SELF -> <:ident< $uid:m$.$l$ >>
+        | i = a_UIDENT; "."; "(" -> <:ident< $uid:i$ >> ] ]
+    ;
     type_longident:
       [ "apply"
         [ i = SELF; j = SELF -> <:ident< $i$ $j$ >> ]
@@ -1289,25 +1310,48 @@ Very old (no more supported) syntax:\n\
         [ `ANTIQUOT (""|"cst"|"anti"|"list" as n) s ->
             <:class_str_item< $anti:mk_anti ~c:"class_str_item" n s$ >>
         | `QUOTATION x -> Quotation.expand _loc x Quotation.DynAst.class_str_item_tag
-        | "inherit"; ce = class_expr; pb = opt_as_lident ->
-            <:class_str_item< inherit $ce$ as $pb$ >>
-        | value_val; mf = opt_mutable; lab = label; e = cvalue_binding ->
-            <:class_str_item< value $mutable:mf$ $lab$ = $e$ >>
-        | value_val; mf = opt_mutable; "virtual"; l = label; ":"; t = poly_type ->
-            <:class_str_item< value virtual $mutable:mf$ $l$ : $t$ >>
-        | value_val; "virtual"; mf = opt_mutable; l = label; ":"; t = poly_type ->
-            <:class_str_item< value virtual $mutable:mf$ $l$ : $t$ >>
-        | "method"; "virtual"; pf = opt_private; l = label; ":"; t = poly_type ->
-            <:class_str_item< method virtual $private:pf$ $l$ : $t$ >>
-        | "method"; pf = opt_private; "virtual"; l = label; ":"; t = poly_type ->
-            <:class_str_item< method virtual $private:pf$ $l$ : $t$ >>
-        | "method"; pf = opt_private; l = label; topt = opt_polyt;
-          e = fun_binding ->
-            <:class_str_item< method $private:pf$ $l$ : $topt$ = $e$ >>
+        | "inherit"; o = opt_override; ce = class_expr; pb = opt_as_lident ->
+            <:class_str_item< inherit $override:o$ $ce$ as $pb$ >>
+        | o = value_val_opt_override; mf = opt_mutable; lab = label; e = cvalue_binding ->
+            <:class_str_item< value $override:o$ $mutable:mf$ $lab$ = $e$ >>
+        | o = value_val_opt_override; mf = opt_mutable; "virtual"; l = label; ":"; t = poly_type ->
+            if o <> <:override_flag<>> then
+              raise (Stream.Error "override (!) is incompatible with virtual")
+            else
+              <:class_str_item< value virtual $mutable:mf$ $l$ : $t$ >>
+        | o = value_val_opt_override; "virtual"; mf = opt_mutable; l = label; ":"; t = poly_type ->
+            if o <> <:override_flag<>> then
+              raise (Stream.Error "override (!) is incompatible with virtual")
+            else
+              <:class_str_item< value virtual $mutable:mf$ $l$ : $t$ >>
+        | o = method_opt_override; "virtual"; pf = opt_private; l = label; ":"; t = poly_type ->
+            if o <> <:override_flag<>> then
+              raise (Stream.Error "override (!) is incompatible with virtual")
+            else
+              <:class_str_item< method virtual $private:pf$ $l$ : $t$ >>
+        | o = method_opt_override; pf = opt_private; l = label; topt = opt_polyt; e = fun_binding ->
+            <:class_str_item< method $override:o$ $private:pf$ $l$ : $topt$ = $e$ >>
+        | o = method_opt_override; pf = opt_private; "virtual"; l = label; ":"; t = poly_type ->
+            if o <> <:override_flag<>> then
+              raise (Stream.Error "override (!) is incompatible with virtual")
+            else
+              <:class_str_item< method virtual $private:pf$ $l$ : $t$ >>
         | type_constraint; t1 = ctyp; "="; t2 = ctyp ->
             <:class_str_item< type $t1$ = $t2$ >>
         | "initializer"; se = expr -> <:class_str_item< initializer $se$ >> ] ]
     ;
+    method_opt_override:
+      [ [ "method"; "!" -> <:override_flag< ! >>
+        | "method"; `ANTIQUOT (("!"|"override"|"anti") as n) s -> Ast.OvAnt (mk_anti n s)
+        | "method" -> <:override_flag<>>
+      ] ]
+    ;
+    value_val_opt_override:
+      [ [ value_val; "!" -> <:override_flag< ! >>
+        | value_val; `ANTIQUOT (("!"|"override"|"anti") as n) s -> Ast.OvAnt (mk_anti n s)
+        | value_val -> <:override_flag<>>
+      ] ]
+    ;
     opt_as_lident:
       [ [ "as"; i = a_LIDENT -> i
         | -> ""
@@ -1319,9 +1363,11 @@ Very old (no more supported) syntax:\n\
     ;
     cvalue_binding:
       [ [ "="; e = expr -> e
-        | ":"; t = ctyp; "="; e = expr -> <:expr< ($e$ : $t$) >>
-        | ":"; t = ctyp; ":>"; t2 = ctyp; "="; e = expr ->
-            <:expr< ($e$ : $t$ :> $t2$) >>
+        | ":"; t = poly_type; "="; e = expr -> <:expr< ($e$ : $t$) >>
+        | ":"; t = poly_type; ":>"; t2 = ctyp; "="; e = expr ->
+            match t with
+            [ <:ctyp< ! $_$ . $_$ >> -> raise (Stream.Error "unexpected polytype here")
+            | _ -> <:expr< ($e$ : $t$ :> $t2$) >> ]
         | ":>"; t = ctyp; "="; e = expr -> <:expr< ($e$ :> $t$) >> ] ]
     ;
     label:
@@ -1425,6 +1471,9 @@ Very old (no more supported) syntax:\n\
     poly_type:
       [ [ t = ctyp -> t ] ]
     ;
+    package_type:
+      [ [ p = module_type -> p ] ]
+    ;
     typevars:
       [ LEFTA
         [ t1 = SELF; t2 = SELF -> <:ctyp< $t1$ $t2$ >>
@@ -1491,38 +1540,44 @@ Very old (no more supported) syntax:\n\
         | p = ipatt -> p ] ]
     ;
     direction_flag:
-      [ [ "to" -> Ast.BTrue
-        | "downto" -> Ast.BFalse
-        | `ANTIQUOT ("to" as n) s -> Ast.BAnt (mk_anti n s) ] ]
+      [ [ "to" -> <:direction_flag< to >>
+        | "downto" -> <:direction_flag< downto >>
+        | `ANTIQUOT ("to"|"anti" as n) s -> Ast.DiAnt (mk_anti n s) ] ]
     ;
     opt_private:
-      [ [ "private" -> Ast.BTrue
-        | `ANTIQUOT ("private" as n) s -> Ast.BAnt (mk_anti n s)
-        | -> Ast.BFalse
+      [ [ "private" -> <:private_flag< private >>
+        | `ANTIQUOT ("private"|"anti" as n) s -> Ast.PrAnt (mk_anti n s)
+        | -> <:private_flag<>>
       ] ]
     ;
     opt_mutable:
-      [ [ "mutable" -> Ast.BTrue
-        | `ANTIQUOT ("mutable" as n) s -> Ast.BAnt (mk_anti n s)
-        | -> Ast.BFalse
+      [ [ "mutable" -> <:mutable_flag< mutable >>
+        | `ANTIQUOT ("mutable"|"anti" as n) s -> Ast.MuAnt (mk_anti n s)
+        | -> <:mutable_flag<>>
       ] ]
     ;
     opt_virtual:
-      [ [ "virtual" -> Ast.BTrue
-        | `ANTIQUOT ("virtual" as n) s -> Ast.BAnt (mk_anti n s)
-        | -> Ast.BFalse
+      [ [ "virtual" -> <:virtual_flag< virtual >>
+        | `ANTIQUOT ("virtual"|"anti" as n) s -> Ast.ViAnt (mk_anti n s)
+        | -> <:virtual_flag<>>
       ] ]
     ;
     opt_dot_dot:
-      [ [ ".." -> Ast.BTrue
-        | `ANTIQUOT (".." as n) s -> Ast.BAnt (mk_anti n s)
-        | -> Ast.BFalse
+      [ [ ".." -> <:row_var_flag< .. >>
+        | `ANTIQUOT (".."|"anti" as n) s -> Ast.RvAnt (mk_anti n s)
+        | -> <:row_var_flag<>>
       ] ]
     ;
     opt_rec:
-      [ [ "rec" -> Ast.BTrue
-        | `ANTIQUOT ("rec" as n) s -> Ast.BAnt (mk_anti n s)
-        | -> Ast.BFalse
+      [ [ "rec" -> <:rec_flag< rec >>
+        | `ANTIQUOT ("rec"|"anti" as n) s -> Ast.ReAnt (mk_anti n s)
+        | -> <:rec_flag<>>
+      ] ]
+    ;
+    opt_override:
+      [ [ "!" -> <:override_flag< ! >>
+        | `ANTIQUOT (("!"|"override"|"anti") as n) s -> Ast.OvAnt (mk_anti n s)
+        | -> <:override_flag<>>
       ] ]
     ;
     opt_expr:
@@ -1755,7 +1810,7 @@ Very old (no more supported) syntax:\n\
         | "virtual"; (i, ot) = class_name_and_param ->
             <:class_expr< virtual $lid:i$ [ $ot$ ] >>
         | `ANTIQUOT ("virtual" as n) s; i = ident; ot = opt_comma_ctyp ->
-            let anti = Ast.BAnt (mk_anti ~c:"class_expr" n s) in
+            let anti = Ast.ViAnt (mk_anti ~c:"class_expr" n s) in
             <:class_expr< $virtual:anti$ $id:i$ [ $ot$ ] >>
         | x = class_expr -> x
         | -> <:class_expr<>>
@@ -1768,7 +1823,7 @@ Very old (no more supported) syntax:\n\
         | "virtual"; (i, ot) = class_name_and_param ->
             <:class_type< virtual $lid:i$ [ $ot$ ] >>
         | `ANTIQUOT ("virtual" as n) s; i = ident; ot = opt_comma_ctyp ->
-            let anti = Ast.BAnt (mk_anti ~c:"class_type" n s) in
+            let anti = Ast.ViAnt (mk_anti ~c:"class_type" n s) in
             <:class_type< $virtual:anti$ $id:i$ [ $ot$ ] >>
         | x = class_type_plus -> x
         | -> <:class_type<>>
@@ -1789,6 +1844,13 @@ Very old (no more supported) syntax:\n\
       [ [ x = with_constr -> x
         | -> <:with_constr<>> ] ]
     ;
+    rec_flag_quot: [ [ x = opt_rec -> x ] ];
+    direction_flag_quot: [ [ x = direction_flag -> x ] ];
+    mutable_flag_quot: [ [ x = opt_mutable -> x ] ];
+    private_flag_quot: [ [ x = opt_private -> x ] ];
+    virtual_flag_quot: [ [ x = opt_virtual -> x ] ];
+    row_var_flag_quot: [ [ x = opt_dot_dot -> x ] ];
+    override_flag_quot: [ [ x = opt_override -> x ] ];
     patt_eoi:
       [ [ x = patt; `EOI -> x ] ]
     ;
index 4e4d35d856c5278c2dbecac748a95b7004ea9a06..97747d448e139d8ebf60909af28a18c6f8ffdfc8 100644 (file)
@@ -320,10 +320,10 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
       parser_case parser_case_list;
     expr: LEVEL "top"
       [ [ "parser"; po = OPT parser_ipatt; pcl = parser_case_list ->
-            <:expr< $cparser _loc po pcl$ >>
+            cparser _loc po pcl
         | "match"; e = sequence; "with"; "parser"; po = OPT parser_ipatt;
           pcl = parser_case_list ->
-            <:expr< $cparser_match _loc e po pcl$ >>
+            cparser_match _loc e po pcl
       ] ]
     ;
     parser_case_list:
index 50e57fa1f984c0363927177897785a6ae602afb8..c8025d75dec923bfa723f8d8633ec3430518a785 100644 (file)
@@ -201,5 +201,12 @@ module Make (Syntax : Sig.Camlp4Syntax)
   add_quotation "module_binding"
                 module_binding_quot ME.meta_module_binding MP.meta_module_binding;
   add_quotation "ident" ident_quot ME.meta_ident MP.meta_ident;
+  add_quotation "rec_flag" rec_flag_quot ME.meta_rec_flag MP.meta_rec_flag;
+  add_quotation "private_flag" private_flag_quot ME.meta_private_flag MP.meta_private_flag;
+  add_quotation "row_var_flag" row_var_flag_quot ME.meta_row_var_flag MP.meta_row_var_flag;
+  add_quotation "mutable_flag" mutable_flag_quot ME.meta_mutable_flag MP.meta_mutable_flag;
+  add_quotation "virtual_flag" virtual_flag_quot ME.meta_virtual_flag MP.meta_virtual_flag;
+  add_quotation "override_flag" override_flag_quot ME.meta_override_flag MP.meta_override_flag;
+  add_quotation "direction_flag" direction_flag_quot ME.meta_direction_flag MP.meta_direction_flag;
 
 end;
index fa03d37ca3205953f93734df162f216b0664ab0b..92daa282d85dcd317da93c032793db5e1c747ac8 100644 (file)
@@ -602,6 +602,20 @@ module Sig =
         
         type module_binding
         
+        type rec_flag
+        
+        type direction_flag
+        
+        type mutable_flag
+        
+        type private_flag
+        
+        type virtual_flag
+        
+        type row_var_flag
+        
+        type override_flag
+        
         (** {6 Location accessors} *)
         val loc_of_ctyp : ctyp -> loc
           
@@ -706,6 +720,20 @@ module Sig =
               
             method ident : ident -> ident
               
+            method override_flag : override_flag -> override_flag
+              
+            method mutable_flag : mutable_flag -> mutable_flag
+              
+            method private_flag : private_flag -> private_flag
+              
+            method virtual_flag : virtual_flag -> virtual_flag
+              
+            method direction_flag : direction_flag -> direction_flag
+              
+            method rec_flag : rec_flag -> rec_flag
+              
+            method row_var_flag : row_var_flag -> row_var_flag
+              
             method unknown : 'a. 'a -> 'a
               
           end
@@ -766,6 +794,20 @@ module Sig =
               
             method ident : ident -> 'self_type
               
+            method rec_flag : rec_flag -> 'self_type
+              
+            method direction_flag : direction_flag -> 'self_type
+              
+            method mutable_flag : mutable_flag -> 'self_type
+              
+            method private_flag : private_flag -> 'self_type
+              
+            method virtual_flag : virtual_flag -> 'self_type
+              
+            method row_var_flag : row_var_flag -> 'self_type
+              
+            method override_flag : override_flag -> 'self_type
+              
             method unknown : 'a. 'a -> 'self_type
               
           end
@@ -813,6 +855,20 @@ module Sig =
           t
           and meta_bool =
           | BTrue | BFalse | BAnt of string
+          and rec_flag =
+          | ReRecursive | ReNil | ReAnt of string
+          and direction_flag =
+          | DiTo | DiDownto | DiAnt of string
+          and mutable_flag =
+          | MuMutable | MuNil | MuAnt of string
+          and private_flag =
+          | PrPrivate | PrNil | PrAnt of string
+          and virtual_flag =
+          | ViVirtual | ViNil | ViAnt of string
+          and override_flag =
+          | OvOverride | OvNil | OvAnt of string
+          and row_var_flag =
+          | RvRowVar | RvNil | RvAnt of string
           and 'a meta_option =
           | ONone | OSome of 'a | OAnt of string
           and 'a meta_list =
@@ -856,7 +912,7 @@ module Sig =
           TyDcl of loc * string * ctyp list * ctyp * (ctyp * ctyp) list
           | (* < (t)? (..)? > *)
           (* < move : int -> 'a .. > as 'a  *)
-          TyObj of loc * ctyp * meta_bool
+          TyObj of loc * ctyp * row_var_flag
           | TyOlb of loc * string * ctyp
           | (* ?s:t *)
           TyPol of loc * ctyp * ctyp
@@ -910,6 +966,8 @@ module Sig =
           | (* t & t *)
           TyOfAmp of loc * ctyp * ctyp
           | (* t of & t *)
+          TyPkg of loc * module_type
+          | (* (module S) *)
           TyAnt of loc * string
           and (* $s$ *)
           patt =
@@ -995,7 +1053,7 @@ module Sig =
           ExFlo of loc * string
           | (* 3.14 *)
           (* for s = e to/downto e do { e } *)
-          ExFor of loc * string * expr * expr * meta_bool * expr
+          ExFor of loc * string * expr * expr * direction_flag * expr
           | ExFun of loc * match_case
           | (* fun [ mc ] *)
           ExIfe of loc * expr * expr * expr
@@ -1010,7 +1068,7 @@ module Sig =
           ExLaz of loc * expr
           | (* lazy e *)
           (* let b in e or let rec b in e *)
-          ExLet of loc * meta_bool * binding * expr
+          ExLet of loc * rec_flag * binding * expr
           | (* let module s = me in e *)
           ExLmd of loc * string * module_expr * expr
           | (* match e with [ mc ] *)
@@ -1048,6 +1106,11 @@ module Sig =
           ExWhi of loc * expr * expr
           | (* let open i in e *)
           ExOpI of loc * ident * expr
+          | (* fun (type t) -> e *)
+          (* let f x (type t) y z = e *)
+          ExFUN of loc * string * expr
+          | (* (module ME : S) which is represented as (module (ME : S)) *)
+          ExPkg of loc * module_expr
           and module_type =
           | MtNil of loc
           | (* i *)
@@ -1099,6 +1162,10 @@ module Sig =
           WcTyp of loc * ctyp * ctyp
           | (* module i = i *)
           WcMod of loc * ident * ident
+          | (* type t := t *)
+          WcTyS of loc * ctyp * ctyp
+          | (* module i := i *)
+          WcMoS of loc * ident * ident
           | (* wc and wc *)
           WcAnd of loc * with_constr * with_constr
           | WcAnt of loc * string
@@ -1152,6 +1219,9 @@ module Sig =
           MeStr of loc * str_item
           | (* (me : mt) *)
           MeTyc of loc * module_expr * module_type
+          | (* (value e) *)
+          (* (value e : S) which is represented as (value (e : S)) *)
+          MePkg of loc * expr
           | MeAnt of loc * string
           and (* $s$ *)
           str_item =
@@ -1183,13 +1253,13 @@ module Sig =
           | (* type t *)
           StTyp of loc * ctyp
           | (* value (rec)? bi *)
-          StVal of loc * meta_bool * binding
+          StVal of loc * rec_flag * binding
           | StAnt of loc * string
           and (* $s$ *)
           class_type =
           | CtNil of loc
           | (* (virtual)? i ([ t ])? *)
-          CtCon of loc * meta_bool * ident * ctyp
+          CtCon of loc * virtual_flag * ident * ctyp
           | (* [t] -> ct *)
           CtFun of loc * ctyp * class_type
           | (* object ((t))? (csg)? end *)
@@ -1211,11 +1281,11 @@ module Sig =
           | (* inherit ct *)
           CgInh of loc * class_type
           | (* method s : t or method private s : t *)
-          CgMth of loc * string * meta_bool * ctyp
+          CgMth of loc * string * private_flag * ctyp
           | (* value (virtual)? (mutable)? s : t *)
-          CgVal of loc * string * meta_bool * meta_bool * ctyp
-          | (* method virtual (mutable)? s : t *)
-          CgVir of loc * string * meta_bool * ctyp
+          CgVal of loc * string * mutable_flag * virtual_flag * ctyp
+          | (* method virtual (private)? s : t *)
+          CgVir of loc * string * private_flag * ctyp
           | CgAnt of loc * string
           and (* $s$ *)
           class_expr =
@@ -1223,11 +1293,11 @@ module Sig =
           | (* ce e *)
           CeApp of loc * class_expr * expr
           | (* (virtual)? i ([ t ])? *)
-          CeCon of loc * meta_bool * ident * ctyp
+          CeCon of loc * virtual_flag * ident * ctyp
           | (* fun p -> ce *)
           CeFun of loc * patt * class_expr
           | (* let (rec)? bi in ce *)
-          CeLet of loc * meta_bool * binding * class_expr
+          CeLet of loc * rec_flag * binding * class_expr
           | (* object ((p))? (cst)? end *)
           CeStr of loc * patt * class_str_item
           | (* ce : ct *)
@@ -1244,18 +1314,18 @@ module Sig =
           CrSem of loc * class_str_item * class_str_item
           | (* type t = t *)
           CrCtr of loc * ctyp * ctyp
-          | (* inherit ce or inherit ce as s *)
-          CrInh of loc * class_expr * string
+          | (* inherit(!)? ce (as s)? *)
+          CrInh of loc * override_flag * class_expr * string
           | (* initializer e *)
           CrIni of loc * expr
-          | (* method (private)? s : t = e or method (private)? s = e *)
-          CrMth of loc * string * meta_bool * expr * ctyp
-          | (* value (mutable)? s = e *)
-          CrVal of loc * string * meta_bool * expr
+          | (* method(!)? (private)? s : t = e or method(!)? (private)? s = e *)
+          CrMth of loc * string * override_flag * private_flag * expr * ctyp
+          | (* value(!)? (mutable)? s = e *)
+          CrVal of loc * string * override_flag * mutable_flag * expr
           | (* method virtual (private)? s : t *)
-          CrVir of loc * string * meta_bool * ctyp
-          | (* value virtual (private)? s : t *)
-          CrVvr of loc * string * meta_bool * ctyp
+          CrVir of loc * string * private_flag * ctyp
+          | (* value virtual (mutable)? s : t *)
+          CrVvr of loc * string * mutable_flag * ctyp
           | CrAnt of loc * string
         
         val loc_of_ctyp : ctyp -> loc
@@ -1377,6 +1447,20 @@ module Sig =
                       
                     val meta_with_constr : loc -> with_constr -> expr
                       
+                    val meta_rec_flag : loc -> rec_flag -> expr
+                      
+                    val meta_mutable_flag : loc -> mutable_flag -> expr
+                      
+                    val meta_virtual_flag : loc -> virtual_flag -> expr
+                      
+                    val meta_private_flag : loc -> private_flag -> expr
+                      
+                    val meta_row_var_flag : loc -> row_var_flag -> expr
+                      
+                    val meta_override_flag : loc -> override_flag -> expr
+                      
+                    val meta_direction_flag : loc -> direction_flag -> expr
+                      
                   end
                   
                 module Patt :
@@ -1428,6 +1512,20 @@ module Sig =
                       
                     val meta_with_constr : loc -> with_constr -> patt
                       
+                    val meta_rec_flag : loc -> rec_flag -> patt
+                      
+                    val meta_mutable_flag : loc -> mutable_flag -> patt
+                      
+                    val meta_virtual_flag : loc -> virtual_flag -> patt
+                      
+                    val meta_private_flag : loc -> private_flag -> patt
+                      
+                    val meta_row_var_flag : loc -> row_var_flag -> patt
+                      
+                    val meta_override_flag : loc -> override_flag -> patt
+                      
+                    val meta_direction_flag : loc -> direction_flag -> patt
+                      
                   end
                   
               end
@@ -1486,6 +1584,20 @@ module Sig =
               
             method ident : ident -> ident
               
+            method mutable_flag : mutable_flag -> mutable_flag
+              
+            method private_flag : private_flag -> private_flag
+              
+            method virtual_flag : virtual_flag -> virtual_flag
+              
+            method direction_flag : direction_flag -> direction_flag
+              
+            method rec_flag : rec_flag -> rec_flag
+              
+            method row_var_flag : row_var_flag -> row_var_flag
+              
+            method override_flag : override_flag -> override_flag
+              
             method unknown : 'a. 'a -> 'a
               
           end
@@ -1545,6 +1657,20 @@ module Sig =
               
             method ident : ident -> 'self_type
               
+            method rec_flag : rec_flag -> 'self_type
+              
+            method direction_flag : direction_flag -> 'self_type
+              
+            method mutable_flag : mutable_flag -> 'self_type
+              
+            method private_flag : private_flag -> 'self_type
+              
+            method virtual_flag : virtual_flag -> 'self_type
+              
+            method row_var_flag : row_var_flag -> 'self_type
+              
+            method override_flag : override_flag -> 'self_type
+              
             method unknown : 'a. 'a -> 'self_type
               
           end
@@ -1696,7 +1822,14 @@ module Sig =
       and type class_str_item = M.class_str_item and type binding = M.binding
       and type rec_binding = M.rec_binding
       and type module_binding = M.module_binding
-      and type match_case = M.match_case and type ident = M.ident = M
+      and type match_case = M.match_case and type ident = M.ident
+      and type rec_flag = M.rec_flag
+      and type direction_flag = M.direction_flag
+      and type mutable_flag = M.mutable_flag
+      and type private_flag = M.private_flag
+      and type virtual_flag = M.virtual_flag
+      and type row_var_flag = M.row_var_flag
+      and type override_flag = M.override_flag = M
       
     module MakeCamlp4Ast (Loc : Type) =
       struct
@@ -1705,6 +1838,20 @@ module Sig =
           t
           and meta_bool =
           | BTrue | BFalse | BAnt of string
+          and rec_flag =
+          | ReRecursive | ReNil | ReAnt of string
+          and direction_flag =
+          | DiTo | DiDownto | DiAnt of string
+          and mutable_flag =
+          | MuMutable | MuNil | MuAnt of string
+          and private_flag =
+          | PrPrivate | PrNil | PrAnt of string
+          and virtual_flag =
+          | ViVirtual | ViNil | ViAnt of string
+          and override_flag =
+          | OvOverride | OvNil | OvAnt of string
+          and row_var_flag =
+          | RvRowVar | RvNil | RvAnt of string
           and 'a meta_option =
           | ONone | OSome of 'a | OAnt of string
           and 'a meta_list =
@@ -1726,7 +1873,7 @@ module Sig =
           | TyId of loc * ident
           | TyMan of loc * ctyp * ctyp
           | TyDcl of loc * string * ctyp list * ctyp * (ctyp * ctyp) list
-          | TyObj of loc * ctyp * meta_bool
+          | TyObj of loc * ctyp * row_var_flag
           | TyOlb of loc * string * ctyp
           | TyPol of loc * ctyp * ctyp
           | TyQuo of loc * string
@@ -1751,6 +1898,7 @@ module Sig =
           | TyVrnInfSup of loc * ctyp * ctyp
           | TyAmp of loc * ctyp * ctyp
           | TyOfAmp of loc * ctyp * ctyp
+          | TyPkg of loc * module_type
           | TyAnt of loc * string
           and patt =
           | PaNil of loc
@@ -1796,7 +1944,7 @@ module Sig =
           | ExChr of loc * string
           | ExCoe of loc * expr * ctyp * ctyp
           | ExFlo of loc * string
-          | ExFor of loc * string * expr * expr * meta_bool * expr
+          | ExFor of loc * string * expr * expr * direction_flag * expr
           | ExFun of loc * match_case
           | ExIfe of loc * expr * expr * expr
           | ExInt of loc * string
@@ -1805,7 +1953,7 @@ module Sig =
           | ExNativeInt of loc * string
           | ExLab of loc * string * expr
           | ExLaz of loc * expr
-          | ExLet of loc * meta_bool * binding * expr
+          | ExLet of loc * rec_flag * binding * expr
           | ExLmd of loc * string * module_expr * expr
           | ExMat of loc * expr * match_case
           | ExNew of loc * ident
@@ -1824,6 +1972,8 @@ module Sig =
           | ExVrn of loc * string
           | ExWhi of loc * expr * expr
           | ExOpI of loc * ident * expr
+          | ExFUN of loc * string * expr
+          | ExPkg of loc * module_expr
           and module_type =
           | MtNil of loc
           | MtId of loc * ident
@@ -1852,6 +2002,8 @@ module Sig =
           | WcNil of loc
           | WcTyp of loc * ctyp * ctyp
           | WcMod of loc * ident * ident
+          | WcTyS of loc * ctyp * ctyp
+          | WcMoS of loc * ident * ident
           | WcAnd of loc * with_constr * with_constr
           | WcAnt of loc * string
           and binding =
@@ -1882,6 +2034,7 @@ module Sig =
           | MeFun of loc * string * module_type * module_expr
           | MeStr of loc * str_item
           | MeTyc of loc * module_expr * module_type
+          | MePkg of loc * expr
           | MeAnt of loc * string
           and str_item =
           | StNil of loc
@@ -1898,11 +2051,11 @@ module Sig =
           | StMty of loc * string * module_type
           | StOpn of loc * ident
           | StTyp of loc * ctyp
-          | StVal of loc * meta_bool * binding
+          | StVal of loc * rec_flag * binding
           | StAnt of loc * string
           and class_type =
           | CtNil of loc
-          | CtCon of loc * meta_bool * ident * ctyp
+          | CtCon of loc * virtual_flag * ident * ctyp
           | CtFun of loc * ctyp * class_type
           | CtSig of loc * ctyp * class_sig_item
           | CtAnd of loc * class_type * class_type
@@ -1914,16 +2067,16 @@ module Sig =
           | CgCtr of loc * ctyp * ctyp
           | CgSem of loc * class_sig_item * class_sig_item
           | CgInh of loc * class_type
-          | CgMth of loc * string * meta_bool * ctyp
-          | CgVal of loc * string * meta_bool * meta_bool * ctyp
-          | CgVir of loc * string * meta_bool * ctyp
+          | CgMth of loc * string * private_flag * ctyp
+          | CgVal of loc * string * mutable_flag * virtual_flag * ctyp
+          | CgVir of loc * string * private_flag * ctyp
           | CgAnt of loc * string
           and class_expr =
           | CeNil of loc
           | CeApp of loc * class_expr * expr
-          | CeCon of loc * meta_bool * ident * ctyp
+          | CeCon of loc * virtual_flag * ident * ctyp
           | CeFun of loc * patt * class_expr
-          | CeLet of loc * meta_bool * binding * class_expr
+          | CeLet of loc * rec_flag * binding * class_expr
           | CeStr of loc * patt * class_str_item
           | CeTyc of loc * class_expr * class_type
           | CeAnd of loc * class_expr * class_expr
@@ -1933,12 +2086,13 @@ module Sig =
           | CrNil of loc
           | CrSem of loc * class_str_item * class_str_item
           | CrCtr of loc * ctyp * ctyp
-          | CrInh of loc * class_expr * string
+          | CrInh of loc * override_flag * class_expr * string
           | CrIni of loc * expr
-          | CrMth of loc * string * meta_bool * expr * ctyp
-          | CrVal of loc * string * meta_bool * expr
-          | CrVir of loc * string * meta_bool * ctyp
-          | CrVvr of loc * string * meta_bool * ctyp
+          | CrMth of loc * string * override_flag * private_flag * expr
+                     * ctyp
+          | CrVal of loc * string * override_flag * mutable_flag * expr
+          | CrVir of loc * string * private_flag * ctyp
+          | CrVvr of loc * string * mutable_flag * ctyp
           | CrAnt of loc * string
         
       end
@@ -2181,6 +2335,12 @@ module Sig =
             
             type token_pattern = ((Token.t -> bool) * string)
             
+            type token_info
+            
+            type token_stream = (Token.t * token_info) Stream.t
+            
+            val token_location : token_info -> Loc.t
+              
             type symbol =
               | Smeta of string * symbol list * Action.t
               | Snterm of internal_entry
@@ -2190,6 +2350,7 @@ module Sig =
               | Slist1 of symbol
               | Slist1sep of symbol * symbol
               | Sopt of symbol
+              | Stry of symbol
               | Sself
               | Snext
               | Stoken of token_pattern
@@ -2231,11 +2392,9 @@ module Sig =
                 val mk : gram -> string -> 'a t
                   
                 val of_parser :
-                  gram ->
-                    string -> ((Token.t * Loc.t) Stream.t -> 'a) -> 'a t
+                  gram -> string -> (token_stream -> 'a) -> 'a t
                   
-                val setup_parser :
-                  'a t -> ((Token.t * Loc.t) Stream.t -> 'a) -> unit
+                val setup_parser : 'a t -> (token_stream -> 'a) -> unit
                   
                 val name : 'a t -> string
                   
@@ -2277,8 +2436,7 @@ module Sig =
               
             val filter :
               gram ->
-                ((Token.t * Loc.t) Stream.t) not_filtered ->
-                  (Token.t * Loc.t) Stream.t
+                ((Token.t * Loc.t) Stream.t) not_filtered -> token_stream
               
             val parse : 'a Entry.t -> Loc.t -> char Stream.t -> 'a
               
@@ -2287,8 +2445,7 @@ module Sig =
             val parse_tokens_before_filter :
               'a Entry.t -> ((Token.t * Loc.t) Stream.t) not_filtered -> 'a
               
-            val parse_tokens_after_filter :
-              'a Entry.t -> (Token.t * Loc.t) Stream.t -> 'a
+            val parse_tokens_after_filter : 'a Entry.t -> token_stream -> 'a
               
           end
           
@@ -2302,11 +2459,9 @@ module Sig =
                 
                 val mk : string -> 'a t
                   
-                val of_parser :
-                  string -> ((Token.t * Loc.t) Stream.t -> 'a) -> 'a t
+                val of_parser : string -> (token_stream -> 'a) -> 'a t
                   
-                val setup_parser :
-                  'a t -> ((Token.t * Loc.t) Stream.t -> 'a) -> unit
+                val setup_parser : 'a t -> (token_stream -> 'a) -> unit
                   
                 val name : 'a t -> string
                   
@@ -2345,8 +2500,7 @@ module Sig =
               Loc.t -> string -> ((Token.t * Loc.t) Stream.t) not_filtered
               
             val filter :
-              ((Token.t * Loc.t) Stream.t) not_filtered ->
-                (Token.t * Loc.t) Stream.t
+              ((Token.t * Loc.t) Stream.t) not_filtered -> token_stream
               
             val parse : 'a Entry.t -> Loc.t -> char Stream.t -> 'a
               
@@ -2355,8 +2509,7 @@ module Sig =
             val parse_tokens_before_filter :
               'a Entry.t -> ((Token.t * Loc.t) Stream.t) not_filtered -> 'a
               
-            val parse_tokens_after_filter :
-              'a Entry.t -> (Token.t * Loc.t) Stream.t -> 'a
+            val parse_tokens_after_filter : 'a Entry.t -> token_stream -> 'a
               
           end
           
@@ -2576,7 +2729,9 @@ module Sig =
           
         val cvalue_binding : Ast.expr Gram.Entry.t
           
-        val direction_flag : Ast.meta_bool Gram.Entry.t
+        val direction_flag : Ast.direction_flag Gram.Entry.t
+          
+        val direction_flag_quot : Ast.direction_flag Gram.Entry.t
           
         val dummy : unit Gram.Entry.t
           
@@ -2628,7 +2783,7 @@ module Sig =
           
         val let_binding : Ast.binding Gram.Entry.t
           
-        val meth_list : (Ast.ctyp * Ast.meta_bool) Gram.Entry.t
+        val meth_list : (Ast.ctyp * Ast.row_var_flag) Gram.Entry.t
           
         val meth_decl : Ast.ctyp Gram.Entry.t
           
@@ -2652,6 +2807,8 @@ module Sig =
           
         val module_type : Ast.module_type Gram.Entry.t
           
+        val package_type : Ast.module_type Gram.Entry.t
+          
         val module_type_quot : Ast.module_type Gram.Entry.t
           
         val more_ctyp : Ast.ctyp Gram.Entry.t
@@ -2666,7 +2823,9 @@ module Sig =
           
         val opt_comma_ctyp : Ast.ctyp Gram.Entry.t
           
-        val opt_dot_dot : Ast.meta_bool Gram.Entry.t
+        val opt_dot_dot : Ast.row_var_flag Gram.Entry.t
+          
+        val row_var_flag_quot : Ast.row_var_flag Gram.Entry.t
           
         val opt_eq_ctyp : Ast.ctyp Gram.Entry.t
           
@@ -2674,15 +2833,27 @@ module Sig =
           
         val opt_meth_list : Ast.ctyp Gram.Entry.t
           
-        val opt_mutable : Ast.meta_bool Gram.Entry.t
+        val opt_mutable : Ast.mutable_flag Gram.Entry.t
+          
+        val mutable_flag_quot : Ast.mutable_flag Gram.Entry.t
+          
+        val opt_override : Ast.override_flag Gram.Entry.t
+          
+        val override_flag_quot : Ast.override_flag Gram.Entry.t
           
         val opt_polyt : Ast.ctyp Gram.Entry.t
           
-        val opt_private : Ast.meta_bool Gram.Entry.t
+        val opt_private : Ast.private_flag Gram.Entry.t
+          
+        val private_flag_quot : Ast.private_flag Gram.Entry.t
+          
+        val opt_rec : Ast.rec_flag Gram.Entry.t
           
-        val opt_rec : Ast.meta_bool Gram.Entry.t
+        val rec_flag_quot : Ast.rec_flag Gram.Entry.t
           
-        val opt_virtual : Ast.meta_bool Gram.Entry.t
+        val opt_virtual : Ast.virtual_flag Gram.Entry.t
+          
+        val virtual_flag_quot : Ast.virtual_flag Gram.Entry.t
           
         val opt_when_expr : Ast.expr Gram.Entry.t
           
@@ -3350,7 +3521,7 @@ module Struct =
                   }
                 
                 let err error loc =
-                  raise (Loc.Exc_located (loc, Error.E error))
+                  raise (Loc.Exc_located (loc, (Error.E error)))
                   
                 let keyword_conversion tok is_kwd =
                   match tok with
@@ -3706,7 +3877,8 @@ module Struct =
                     pos_bol = pos.pos_cnum - chars;
                   }
               
-            let err error loc = raise (Loc.Exc_located (loc, Error.E error))
+            let err error loc =
+              raise (Loc.Exc_located (loc, (Error.E error)))
               
             let warn error loc =
               Format.eprintf "Warning: %a: %a@." Loc.print loc Error.print
@@ -3740,9 +3912,9 @@ module Struct =
     \240\018\051\019\018\020\048\020\255\255\015\021\238\021\015\022\
     \079\022\255\255\031\023\254\255\164\001\251\255\010\000\252\255\
     \253\255\128\000\079\001\255\255\095\023\030\024\238\024\190\025\
-    \254\255\154\026\253\255\254\255\201\000\116\027\077\028\255\255\
-    \028\001\029\029\206\001\251\255\080\001\013\000\253\255\254\255\
-    \255\255\252\255\093\029\028\030\236\030\188\031";
+    \254\255\190\026\253\255\254\255\153\001\143\027\110\028\255\255\
+    \167\001\062\029\206\001\251\255\080\001\013\000\253\255\254\255\
+    \255\255\252\255\126\029\061\030\013\031\221\031";
                 Lexing.lex_backtrk =
                   "\255\255\255\255\255\255\030\000\255\255\028\000\030\000\030\000\
     \030\000\030\000\028\000\028\000\028\000\028\000\028\000\255\255\
@@ -3798,7 +3970,7 @@ module Struct =
     \255\255\255\255\255\255\255\255\000\000\255\255\255\255\255\255\
     \255\255\000\000\255\255\000\000\189\000\000\000\255\255\000\000\
     \000\000\255\255\255\255\000\000\255\255\255\255\255\255\255\255\
-    \000\000\202\000\000\000\000\000\255\255\255\255\255\255\000\000\
+    \000\000\205\000\000\000\000\000\255\255\255\255\255\255\000\000\
     \255\255\255\255\211\000\000\000\255\255\255\255\000\000\000\000\
     \000\000\000\000\255\255\255\255\255\255\255\255";
                 Lexing.lex_trans =
@@ -3832,9 +4004,9 @@ module Struct =
     \024\000\024\000\024\000\024\000\024\000\024\000\024\000\025\000\
     \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
     \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
-    \025\000\025\000\025\000\025\000\025\000\025\000\025\000\208\000\
+    \025\000\025\000\025\000\025\000\025\000\025\000\025\000\000\000\
     \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
-    \002\000\003\000\000\000\203\000\003\000\003\000\003\000\051\000\
+    \002\000\003\000\000\000\000\000\003\000\003\000\003\000\051\000\
     \255\255\255\255\003\000\003\000\048\000\003\000\003\000\003\000\
     \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\
     \039\000\039\000\003\000\144\000\003\000\003\000\003\000\003\000\
@@ -3843,8 +4015,8 @@ module Struct =
     \046\000\046\000\046\000\046\000\046\000\046\000\046\000\084\000\
     \147\000\084\000\084\000\084\000\003\000\096\000\003\000\039\000\
     \102\000\000\000\171\000\101\000\003\000\038\000\000\000\003\000\
-    \009\000\009\000\208\000\000\000\084\000\003\000\003\000\000\000\
-    \003\000\006\000\009\000\000\000\068\000\000\000\203\000\068\000\
+    \009\000\009\000\000\000\000\000\084\000\003\000\003\000\000\000\
+    \003\000\006\000\009\000\000\000\068\000\000\000\000\000\068\000\
     \106\000\171\000\084\000\096\000\003\000\085\000\003\000\006\000\
     \006\000\006\000\003\000\009\000\171\000\171\000\000\000\000\000\
     \000\000\003\000\000\000\068\000\003\000\121\000\121\000\000\000\
@@ -3857,12 +4029,12 @@ module Struct =
     \084\000\003\000\000\000\000\000\003\000\005\000\121\000\085\000\
     \000\000\006\000\006\000\006\000\003\000\009\000\191\000\000\000\
     \255\255\190\000\000\000\003\000\000\000\000\000\003\000\009\000\
-    \009\000\000\000\000\000\094\000\003\000\003\000\000\000\003\000\
-    \009\000\009\000\000\000\000\000\120\000\005\000\003\000\000\000\
-    \000\000\003\000\005\000\009\000\098\000\000\000\009\000\009\000\
-    \009\000\003\000\009\000\000\000\000\000\000\000\000\000\000\000\
+    \009\000\000\000\208\000\094\000\003\000\003\000\000\000\003\000\
+    \009\000\009\000\000\000\000\000\120\000\005\000\003\000\208\000\
+    \208\000\003\000\005\000\009\000\098\000\000\000\009\000\009\000\
+    \009\000\003\000\009\000\203\000\000\000\208\000\000\000\000\000\
     \214\000\000\000\000\000\213\000\117\000\117\000\000\000\000\000\
-    \194\000\000\000\193\000\111\000\111\000\115\000\117\000\005\000\
+    \194\000\203\000\193\000\111\000\111\000\115\000\117\000\005\000\
     \000\000\085\000\005\000\003\000\109\000\111\000\003\000\094\000\
     \009\000\116\000\216\000\116\000\115\000\115\000\000\000\117\000\
     \114\000\000\000\109\000\112\000\112\000\000\000\111\000\111\000\
@@ -4657,46 +4829,49 @@ module Struct =
     \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\
     \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\
     \199\000\199\000\199\000\199\000\199\000\000\000\199\000\199\000\
-    \199\000\199\000\199\000\199\000\199\000\199\000\207\000\000\000\
-    \000\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \204\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\203\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\000\000\000\000\000\000\
-    \000\000\205\000\206\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\000\000\000\000\000\000\
+    \199\000\199\000\199\000\199\000\199\000\199\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\204\000\
+    \202\000\202\000\207\000\202\000\202\000\000\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\204\000\202\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \203\000\202\000\202\000\202\000\202\000\202\000\202\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\202\000\202\000\202\000\202\000\000\000\206\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
+    \202\000\202\000\202\000\202\000\202\000\202\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\255\255\209\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\000\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\209\000\209\000\203\000\000\000\
-    \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\202\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\202\000\209\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\255\255\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\203\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\000\000\
-    \000\000\000\000\000\000\209\000\000\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\000\000\
-    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \209\000\209\000\000\000\000\000\000\000\000\000\209\000\000\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
@@ -4704,25 +4879,27 @@ module Struct =
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\000\000\209\000\209\000\209\000\209\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\000\000\209\000\209\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\000\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\000\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\209\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\208\000\000\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\203\000\
-    \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\000\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\208\000\
+    \000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\208\000\000\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \203\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \000\000\000\000\000\000\000\000\209\000\000\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\000\000\000\000\000\000\000\000\209\000\000\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
@@ -4730,57 +4907,56 @@ module Struct =
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\203\000\
-    \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \203\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \000\000\000\000\000\000\000\000\209\000\000\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\000\000\000\000\000\000\000\000\209\000\000\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
+    \209\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \000\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\
+    \221\000\000\000\000\000\000\000\000\000\221\000\000\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\
+    \221\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\209\000\221\000\221\000\221\000\
+    \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\000\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\221\000\220\000\220\000\220\000\
+    \221\000\221\000\221\000\221\000\221\000\000\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\221\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
-    \000\000\000\000\000\000\220\000\000\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
+    \000\000\000\000\000\000\000\000\220\000\000\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
@@ -4789,24 +4965,24 @@ module Struct =
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\000\000\220\000\220\000\220\000\220\000\
+    \000\000\000\000\000\000\000\000\000\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\000\000\220\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\000\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\220\000\220\000\000\000\000\000\
-    \217\000\000\000\000\000\000\000\218\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
+    \000\000\217\000\000\000\000\000\000\000\218\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
-    \000\000\000\000\000\000\220\000\000\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
+    \000\000\000\000\000\000\000\000\220\000\000\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
@@ -4815,24 +4991,24 @@ module Struct =
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\000\000\220\000\220\000\220\000\220\000\
+    \000\000\000\000\000\000\000\000\000\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\000\000\220\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\000\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\221\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\221\000\221\000\000\000\000\000\
-    \217\000\000\000\000\000\000\000\000\000\221\000\221\000\221\000\
+    \220\000\220\000\220\000\220\000\221\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\
+    \000\000\217\000\000\000\000\000\000\000\000\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\
-    \000\000\000\000\000\000\221\000\000\000\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
+    \000\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
@@ -4841,15 +5017,15 @@ module Struct =
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\000\000\221\000\221\000\221\000\221\000\
+    \000\000\000\000\000\000\000\000\000\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\000\000\221\000\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\000\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\000\000";
+    \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\000\000";
                 Lexing.lex_check =
                   "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\000\000\000\000\029\000\000\000\000\000\101\000\107\000\
@@ -4881,9 +5057,9 @@ module Struct =
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\204\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\255\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-    \000\000\003\000\255\255\204\000\003\000\003\000\003\000\050\000\
+    \000\000\003\000\255\255\255\255\003\000\003\000\003\000\050\000\
     \103\000\106\000\003\000\003\000\020\000\003\000\003\000\003\000\
     \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\
     \039\000\039\000\003\000\143\000\003\000\003\000\003\000\003\000\
@@ -4892,8 +5068,8 @@ module Struct =
     \038\000\038\000\038\000\038\000\038\000\038\000\038\000\005\000\
     \143\000\005\000\005\000\005\000\003\000\005\000\003\000\039\000\
     \104\000\255\255\171\000\104\000\006\000\039\000\255\255\006\000\
-    \006\000\006\000\208\000\255\255\006\000\006\000\006\000\255\255\
-    \006\000\006\000\006\000\255\255\068\000\255\255\208\000\068\000\
+    \006\000\006\000\255\255\255\255\006\000\006\000\006\000\255\255\
+    \006\000\006\000\006\000\255\255\068\000\255\255\255\255\068\000\
     \104\000\171\000\005\000\005\000\003\000\006\000\003\000\006\000\
     \006\000\006\000\006\000\006\000\170\000\170\000\255\255\255\255\
     \255\255\007\000\255\255\068\000\007\000\007\000\007\000\255\255\
@@ -4906,12 +5082,12 @@ module Struct =
     \006\000\006\000\255\255\255\255\007\000\007\000\007\000\008\000\
     \255\255\008\000\008\000\008\000\008\000\008\000\188\000\255\255\
     \020\000\188\000\255\255\009\000\255\255\255\255\009\000\009\000\
-    \009\000\255\255\255\255\009\000\009\000\009\000\255\255\009\000\
-    \009\000\009\000\255\255\255\255\007\000\007\000\007\000\255\255\
-    \255\255\008\000\008\000\008\000\009\000\255\255\009\000\009\000\
-    \009\000\009\000\009\000\255\255\255\255\255\255\255\255\255\255\
+    \009\000\255\255\204\000\009\000\009\000\009\000\255\255\009\000\
+    \009\000\009\000\255\255\255\255\007\000\007\000\007\000\204\000\
+    \208\000\008\000\008\000\008\000\009\000\255\255\009\000\009\000\
+    \009\000\009\000\009\000\204\000\255\255\208\000\255\255\255\255\
     \210\000\255\255\255\255\210\000\011\000\011\000\255\255\255\255\
-    \188\000\255\255\188\000\013\000\013\000\011\000\011\000\013\000\
+    \188\000\208\000\188\000\013\000\013\000\011\000\011\000\013\000\
     \255\255\008\000\008\000\008\000\013\000\013\000\009\000\009\000\
     \009\000\011\000\210\000\011\000\011\000\011\000\255\255\011\000\
     \013\000\255\255\013\000\013\000\013\000\255\255\013\000\014\000\
@@ -5706,46 +5882,49 @@ module Struct =
     \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\
     \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\
     \199\000\199\000\199\000\199\000\199\000\255\255\199\000\199\000\
-    \199\000\199\000\199\000\199\000\199\000\199\000\201\000\255\255\
-    \255\255\201\000\255\255\255\255\255\255\255\255\255\255\255\255\
-    \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\
-    \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\
-    \255\255\255\255\255\255\201\000\201\000\201\000\201\000\201\000\
+    \199\000\199\000\199\000\199\000\199\000\199\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
-    \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\
-    \255\255\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
-    \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\
+    \201\000\201\000\201\000\201\000\201\000\255\255\201\000\201\000\
+    \201\000\201\000\201\000\201\000\201\000\201\000\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\201\000\201\000\201\000\201\000\255\255\201\000\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
-    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
-    \255\255\255\255\201\000\201\000\201\000\201\000\201\000\201\000\
+    \255\255\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
+    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
+    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
-    \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
     \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
-    \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\
-    \201\000\201\000\201\000\205\000\255\255\255\255\255\255\255\255\
-    \255\255\255\255\255\255\255\255\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\
-    \255\255\255\255\255\255\255\255\255\255\205\000\205\000\205\000\
+    \201\000\201\000\201\000\201\000\201\000\201\000\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\201\000\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\201\000\205\000\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\201\000\205\000\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
+    \205\000\205\000\255\255\255\255\255\255\255\255\255\255\255\255\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\
-    \255\255\255\255\255\255\205\000\255\255\205\000\205\000\205\000\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\
-    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \205\000\205\000\255\255\255\255\255\255\255\255\205\000\255\255\
+    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
+    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
+    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
+    \205\000\205\000\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
@@ -5753,25 +5932,27 @@ module Struct =
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
-    \255\255\255\255\255\255\255\255\205\000\205\000\205\000\205\000\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\205\000\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\255\255\205\000\205\000\205\000\205\000\
+    \205\000\205\000\205\000\205\000\205\000\205\000\255\255\205\000\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
     \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\255\255\205\000\205\000\205\000\205\000\
-    \205\000\205\000\205\000\205\000\206\000\255\255\255\255\255\255\
-    \255\255\255\255\255\255\206\000\255\255\206\000\206\000\206\000\
+    \205\000\205\000\205\000\205\000\205\000\205\000\255\255\205\000\
+    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\206\000\
+    \255\255\255\255\255\255\255\255\255\255\206\000\255\255\255\255\
+    \255\255\255\255\255\255\255\255\206\000\255\255\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
-    \255\255\255\255\255\255\255\255\255\255\255\255\206\000\206\000\
+    \206\000\255\255\255\255\255\255\255\255\255\255\255\255\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
-    \255\255\255\255\255\255\255\255\206\000\255\255\206\000\206\000\
+    \206\000\255\255\255\255\255\255\255\255\206\000\255\255\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
+    \206\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
@@ -5779,57 +5960,56 @@ module Struct =
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
-    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
-    \255\255\255\255\255\255\255\255\255\255\206\000\206\000\206\000\
+    \255\255\255\255\255\255\255\255\255\255\255\255\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
-    \206\000\206\000\206\000\206\000\255\255\206\000\206\000\206\000\
+    \206\000\206\000\206\000\206\000\206\000\255\255\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
     \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
-    \206\000\206\000\206\000\206\000\209\000\206\000\206\000\206\000\
-    \206\000\206\000\206\000\206\000\206\000\209\000\209\000\209\000\
+    \206\000\206\000\206\000\206\000\206\000\209\000\206\000\206\000\
+    \206\000\206\000\206\000\206\000\206\000\206\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \255\255\255\255\255\255\255\255\255\255\255\255\209\000\209\000\
+    \209\000\255\255\255\255\255\255\255\255\255\255\255\255\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \255\255\255\255\255\255\255\255\209\000\255\255\209\000\209\000\
+    \209\000\255\255\255\255\255\255\255\255\209\000\255\255\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \255\255\255\255\255\255\255\255\255\255\255\255\218\000\218\000\
+    \209\000\255\255\255\255\255\255\255\255\255\255\255\255\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
-    \255\255\255\255\255\255\255\255\218\000\255\255\218\000\218\000\
+    \218\000\255\255\255\255\255\255\255\255\218\000\255\255\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
-    \255\255\255\255\255\255\255\255\255\255\209\000\209\000\209\000\
+    \218\000\255\255\255\255\255\255\255\255\255\255\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\255\255\209\000\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\255\255\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
     \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\255\255\209\000\209\000\209\000\
-    \209\000\209\000\209\000\209\000\209\000\218\000\218\000\218\000\
+    \209\000\209\000\209\000\209\000\209\000\255\255\209\000\209\000\
+    \209\000\209\000\209\000\209\000\209\000\209\000\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
-    \218\000\218\000\218\000\218\000\255\255\218\000\218\000\218\000\
+    \218\000\218\000\218\000\218\000\218\000\255\255\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
     \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
-    \218\000\218\000\218\000\218\000\255\255\218\000\218\000\218\000\
-    \218\000\218\000\218\000\218\000\218\000\219\000\219\000\219\000\
+    \218\000\218\000\218\000\218\000\218\000\255\255\218\000\218\000\
+    \218\000\218\000\218\000\218\000\218\000\218\000\219\000\219\000\
+    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
-    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\255\255\
-    \255\255\255\255\255\255\219\000\255\255\219\000\219\000\219\000\
+    \255\255\255\255\255\255\255\255\219\000\255\255\219\000\219\000\
+    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
-    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
@@ -5838,24 +6018,24 @@ module Struct =
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
-    \255\255\255\255\255\255\255\255\219\000\219\000\219\000\219\000\
+    \255\255\255\255\255\255\255\255\255\255\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
-    \219\000\219\000\219\000\255\255\219\000\219\000\219\000\219\000\
+    \219\000\219\000\219\000\219\000\255\255\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
     \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
-    \219\000\219\000\219\000\220\000\219\000\219\000\219\000\219\000\
-    \219\000\219\000\219\000\219\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\220\000\220\000\255\255\255\255\
-    \220\000\255\255\255\255\255\255\220\000\220\000\220\000\220\000\
+    \219\000\219\000\219\000\219\000\220\000\219\000\219\000\219\000\
+    \219\000\219\000\219\000\219\000\219\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\
+    \255\255\220\000\255\255\255\255\255\255\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\
-    \255\255\255\255\255\255\220\000\255\255\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
+    \255\255\255\255\255\255\255\255\220\000\255\255\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
@@ -5864,24 +6044,24 @@ module Struct =
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
-    \255\255\255\255\255\255\255\255\220\000\220\000\220\000\220\000\
+    \255\255\255\255\255\255\255\255\255\255\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\255\255\220\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\255\255\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
     \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\221\000\220\000\220\000\220\000\220\000\
-    \220\000\220\000\220\000\220\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\221\000\221\000\255\255\255\255\
-    \221\000\255\255\255\255\255\255\255\255\221\000\221\000\221\000\
+    \220\000\220\000\220\000\220\000\221\000\220\000\220\000\220\000\
+    \220\000\220\000\220\000\220\000\220\000\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\
+    \255\255\221\000\255\255\255\255\255\255\255\255\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\
-    \255\255\255\255\255\255\221\000\255\255\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
+    \255\255\255\255\255\255\255\255\221\000\255\255\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
@@ -5890,15 +6070,15 @@ module Struct =
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
-    \255\255\255\255\255\255\255\255\221\000\221\000\221\000\221\000\
+    \255\255\255\255\255\255\255\255\255\255\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\255\255\221\000\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\255\255\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
     \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\255\255\221\000\221\000\221\000\221\000\
-    \221\000\221\000\221\000\221\000\255\255";
+    \221\000\221\000\221\000\221\000\255\255\221\000\221\000\221\000\
+    \221\000\221\000\221\000\221\000\221\000\255\255";
                 Lexing.lex_base_code =
                   "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
@@ -6290,7 +6470,7 @@ module Struct =
                     Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
                       lexbuf.Lexing.lex_curr_pos
                   in
-                    (try INT (int_of_string i, i)
+                    (try INT ((int_of_string i), i)
                      with
                      | Failure _ ->
                          err (Literal_overflow "int") (Loc.of_lexbuf lexbuf))
@@ -6299,7 +6479,7 @@ module Struct =
                     Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
                       lexbuf.Lexing.lex_curr_pos
                   in
-                    (try FLOAT (float_of_string f, f)
+                    (try FLOAT ((float_of_string f), f)
                      with
                      | Failure _ ->
                          err (Literal_overflow "float")
@@ -6309,7 +6489,7 @@ module Struct =
                     Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
                       (lexbuf.Lexing.lex_curr_pos + (-1))
                   in
-                    (try INT32 (Int32.of_string i, i)
+                    (try INT32 ((Int32.of_string i), i)
                      with
                      | Failure _ ->
                          err (Literal_overflow "int32")
@@ -6319,7 +6499,7 @@ module Struct =
                     Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
                       (lexbuf.Lexing.lex_curr_pos + (-1))
                   in
-                    (try INT64 (Int64.of_string i, i)
+                    (try INT64 ((Int64.of_string i), i)
                      with
                      | Failure _ ->
                          err (Literal_overflow "int64")
@@ -6329,27 +6509,29 @@ module Struct =
                     Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
                       (lexbuf.Lexing.lex_curr_pos + (-1))
                   in
-                    (try NATIVEINT (Nativeint.of_string i, i)
+                    (try NATIVEINT ((Nativeint.of_string i), i)
                      with
                      | Failure _ ->
                          err (Literal_overflow "nativeint")
                            (Loc.of_lexbuf lexbuf))
               | 11 ->
                   (with_curr_loc string c;
-                   let s = buff_contents c in STRING (TokenEval.string s, s))
+                   let s = buff_contents c
+                   in STRING ((TokenEval.string s), s))
               | 12 ->
                   let x =
                     Lexing.sub_lexeme lexbuf
                       (lexbuf.Lexing.lex_start_pos + 1)
                       (lexbuf.Lexing.lex_curr_pos + (-1))
                   in
-                    (update_loc c None 1 false 1; CHAR (TokenEval.char x, x))
+                    (update_loc c None 1 false 1;
+                     CHAR ((TokenEval.char x), x))
               | 13 ->
                   let x =
                     Lexing.sub_lexeme lexbuf
                       (lexbuf.Lexing.lex_start_pos + 1)
                       (lexbuf.Lexing.lex_curr_pos + (-1))
-                  in CHAR (TokenEval.char x, x)
+                  in CHAR ((TokenEval.char x), x)
               | 14 ->
                   let c =
                     Lexing.sub_lexeme_char lexbuf
@@ -6641,7 +6823,7 @@ module Struct =
             and __ocaml_lex_antiquot_rec name c lexbuf __ocaml_lex_state =
               match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf
               with
-              | 0 -> (set_start_p c; ANTIQUOT (name, buff_contents c))
+              | 0 -> (set_start_p c; ANTIQUOT (name, (buff_contents c)))
               | 1 -> err Unterminated_antiquot (loc c)
               | 2 ->
                   (update_loc c None 1 false 0;
@@ -6778,9 +6960,9 @@ module Struct =
               let rec self =
                 function
                 | Ast.ExApp (_loc, e1, e2) ->
-                    Ast.IdApp (_loc, self e1, self e2)
+                    Ast.IdApp (_loc, (self e1), (self e2))
                 | Ast.ExAcc (_loc, e1, e2) ->
-                    Ast.IdAcc (_loc, self e1, self e2)
+                    Ast.IdAcc (_loc, (self e1), (self e2))
                 | Ast.ExId (_, (Ast.IdLid (_, _))) -> error ()
                 | Ast.ExId (_, i) ->
                     if is_module_longident i then i else error ()
@@ -6797,7 +6979,7 @@ module Struct =
               let rec self =
                 function
                 | Ast.TyApp (_loc, t1, t2) ->
-                    Ast.IdApp (_loc, self t1, self t2)
+                    Ast.IdApp (_loc, (self t1), (self t2))
                 | Ast.TyId (_, (Ast.IdLid (_, _))) -> error ()
                 | Ast.TyId (_, i) ->
                     if is_module_longident i then i else error ()
@@ -6811,7 +6993,7 @@ module Struct =
               let rec self =
                 function
                 | Ast.PaApp (_loc, p1, p2) ->
-                    Ast.IdApp (_loc, self p1, self p2)
+                    Ast.IdApp (_loc, (self p1), (self p2))
                 | Ast.PaId (_, (Ast.IdLid (_, _))) -> error ()
                 | Ast.PaId (_, i) ->
                     if is_module_longident i then i else error ()
@@ -6878,7 +7060,7 @@ module Struct =
               | [ t ] -> t
               | t :: ts ->
                   let _loc = loc_of_ctyp t
-                  in Ast.TyOr (_loc, t, tyOr_of_list ts)
+                  in Ast.TyOr (_loc, t, (tyOr_of_list ts))
               
             let rec tyAnd_of_list =
               function
@@ -6886,7 +7068,7 @@ module Struct =
               | [ t ] -> t
               | t :: ts ->
                   let _loc = loc_of_ctyp t
-                  in Ast.TyAnd (_loc, t, tyAnd_of_list ts)
+                  in Ast.TyAnd (_loc, t, (tyAnd_of_list ts))
               
             let rec tySem_of_list =
               function
@@ -6894,7 +7076,7 @@ module Struct =
               | [ t ] -> t
               | t :: ts ->
                   let _loc = loc_of_ctyp t
-                  in Ast.TySem (_loc, t, tySem_of_list ts)
+                  in Ast.TySem (_loc, t, (tySem_of_list ts))
               
             let rec tyCom_of_list =
               function
@@ -6902,7 +7084,7 @@ module Struct =
               | [ t ] -> t
               | t :: ts ->
                   let _loc = loc_of_ctyp t
-                  in Ast.TyCom (_loc, t, tyCom_of_list ts)
+                  in Ast.TyCom (_loc, t, (tyCom_of_list ts))
               
             let rec tyAmp_of_list =
               function
@@ -6910,7 +7092,7 @@ module Struct =
               | [ t ] -> t
               | t :: ts ->
                   let _loc = loc_of_ctyp t
-                  in Ast.TyAmp (_loc, t, tyAmp_of_list ts)
+                  in Ast.TyAmp (_loc, t, (tyAmp_of_list ts))
               
             let rec tySta_of_list =
               function
@@ -6918,7 +7100,7 @@ module Struct =
               | [ t ] -> t
               | t :: ts ->
                   let _loc = loc_of_ctyp t
-                  in Ast.TySta (_loc, t, tySta_of_list ts)
+                  in Ast.TySta (_loc, t, (tySta_of_list ts))
               
             let rec stSem_of_list =
               function
@@ -6926,7 +7108,7 @@ module Struct =
               | [ t ] -> t
               | t :: ts ->
                   let _loc = loc_of_str_item t
-                  in Ast.StSem (_loc, t, stSem_of_list ts)
+                  in Ast.StSem (_loc, t, (stSem_of_list ts))
               
             let rec sgSem_of_list =
               function
@@ -6934,7 +7116,7 @@ module Struct =
               | [ t ] -> t
               | t :: ts ->
                   let _loc = loc_of_sig_item t
-                  in Ast.SgSem (_loc, t, sgSem_of_list ts)
+                  in Ast.SgSem (_loc, t, (sgSem_of_list ts))
               
             let rec biAnd_of_list =
               function
@@ -6942,7 +7124,7 @@ module Struct =
               | [ b ] -> b
               | b :: bs ->
                   let _loc = loc_of_binding b
-                  in Ast.BiAnd (_loc, b, biAnd_of_list bs)
+                  in Ast.BiAnd (_loc, b, (biAnd_of_list bs))
               
             let rec rbSem_of_list =
               function
@@ -6950,7 +7132,7 @@ module Struct =
               | [ b ] -> b
               | b :: bs ->
                   let _loc = loc_of_rec_binding b
-                  in Ast.RbSem (_loc, b, rbSem_of_list bs)
+                  in Ast.RbSem (_loc, b, (rbSem_of_list bs))
               
             let rec wcAnd_of_list =
               function
@@ -6958,7 +7140,7 @@ module Struct =
               | [ w ] -> w
               | w :: ws ->
                   let _loc = loc_of_with_constr w
-                  in Ast.WcAnd (_loc, w, wcAnd_of_list ws)
+                  in Ast.WcAnd (_loc, w, (wcAnd_of_list ws))
               
             let rec idAcc_of_list =
               function
@@ -6966,7 +7148,7 @@ module Struct =
               | [ i ] -> i
               | i :: is ->
                   let _loc = loc_of_ident i
-                  in Ast.IdAcc (_loc, i, idAcc_of_list is)
+                  in Ast.IdAcc (_loc, i, (idAcc_of_list is))
               
             let rec idApp_of_list =
               function
@@ -6974,7 +7156,7 @@ module Struct =
               | [ i ] -> i
               | i :: is ->
                   let _loc = loc_of_ident i
-                  in Ast.IdApp (_loc, i, idApp_of_list is)
+                  in Ast.IdApp (_loc, i, (idApp_of_list is))
               
             let rec mcOr_of_list =
               function
@@ -6982,7 +7164,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_match_case x
-                  in Ast.McOr (_loc, x, mcOr_of_list xs)
+                  in Ast.McOr (_loc, x, (mcOr_of_list xs))
               
             let rec mbAnd_of_list =
               function
@@ -6990,7 +7172,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_module_binding x
-                  in Ast.MbAnd (_loc, x, mbAnd_of_list xs)
+                  in Ast.MbAnd (_loc, x, (mbAnd_of_list xs))
               
             let rec meApp_of_list =
               function
@@ -6998,7 +7180,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_module_expr x
-                  in Ast.MeApp (_loc, x, meApp_of_list xs)
+                  in Ast.MeApp (_loc, x, (meApp_of_list xs))
               
             let rec ceAnd_of_list =
               function
@@ -7006,7 +7188,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_class_expr x
-                  in Ast.CeAnd (_loc, x, ceAnd_of_list xs)
+                  in Ast.CeAnd (_loc, x, (ceAnd_of_list xs))
               
             let rec ctAnd_of_list =
               function
@@ -7014,7 +7196,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_class_type x
-                  in Ast.CtAnd (_loc, x, ctAnd_of_list xs)
+                  in Ast.CtAnd (_loc, x, (ctAnd_of_list xs))
               
             let rec cgSem_of_list =
               function
@@ -7022,7 +7204,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_class_sig_item x
-                  in Ast.CgSem (_loc, x, cgSem_of_list xs)
+                  in Ast.CgSem (_loc, x, (cgSem_of_list xs))
               
             let rec crSem_of_list =
               function
@@ -7030,7 +7212,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_class_str_item x
-                  in Ast.CrSem (_loc, x, crSem_of_list xs)
+                  in Ast.CrSem (_loc, x, (crSem_of_list xs))
               
             let rec paSem_of_list =
               function
@@ -7038,7 +7220,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_patt x
-                  in Ast.PaSem (_loc, x, paSem_of_list xs)
+                  in Ast.PaSem (_loc, x, (paSem_of_list xs))
               
             let rec paCom_of_list =
               function
@@ -7046,7 +7228,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_patt x
-                  in Ast.PaCom (_loc, x, paCom_of_list xs)
+                  in Ast.PaCom (_loc, x, (paCom_of_list xs))
               
             let rec exSem_of_list =
               function
@@ -7054,7 +7236,7 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_expr x
-                  in Ast.ExSem (_loc, x, exSem_of_list xs)
+                  in Ast.ExSem (_loc, x, (exSem_of_list xs))
               
             let rec exCom_of_list =
               function
@@ -7062,22 +7244,23 @@ module Struct =
               | [ x ] -> x
               | x :: xs ->
                   let _loc = loc_of_expr x
-                  in Ast.ExCom (_loc, x, exCom_of_list xs)
+                  in Ast.ExCom (_loc, x, (exCom_of_list xs))
               
             let ty_of_stl =
               function
-              | (_loc, s, []) -> Ast.TyId (_loc, Ast.IdUid (_loc, s))
+              | (_loc, s, []) -> Ast.TyId (_loc, (Ast.IdUid (_loc, s)))
               | (_loc, s, tl) ->
-                  Ast.TyOf (_loc, Ast.TyId (_loc, Ast.IdUid (_loc, s)),
-                    tyAnd_of_list tl)
+                  Ast.TyOf (_loc, (Ast.TyId (_loc, (Ast.IdUid (_loc, s)))),
+                    (tyAnd_of_list tl))
               
             let ty_of_sbt =
               function
               | (_loc, s, true, t) ->
-                  Ast.TyCol (_loc, Ast.TyId (_loc, Ast.IdLid (_loc, s)),
-                    Ast.TyMut (_loc, t))
+                  Ast.TyCol (_loc, (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))),
+                    (Ast.TyMut (_loc, t)))
               | (_loc, s, false, t) ->
-                  Ast.TyCol (_loc, Ast.TyId (_loc, Ast.IdLid (_loc, s)), t)
+                  Ast.TyCol (_loc, (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))),
+                    t)
               
             let bi_of_pe (p, e) =
               let _loc = loc_of_patt p in Ast.BiEq (_loc, p, e)
@@ -7217,57 +7400,71 @@ module Struct =
                       let (a, b, c, d, e, f, g, h) = Loc.to_tuple location
                       in
                         Ast.PaApp (_loc,
-                          Ast.PaId (_loc,
-                            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"),
-                              Ast.IdLid (_loc, "of_tuple"))),
-                          Ast.PaTup (_loc,
-                            Ast.PaCom (_loc,
-                              Ast.PaStr (_loc, Ast.safe_string_escaped a),
-                              Ast.PaCom (_loc,
-                                Ast.PaCom (_loc,
-                                  Ast.PaCom (_loc,
-                                    Ast.PaCom (_loc,
-                                      Ast.PaCom (_loc,
-                                        Ast.PaCom (_loc,
-                                          Ast.PaInt (_loc, string_of_int b),
-                                          Ast.PaInt (_loc, string_of_int c)),
-                                        Ast.PaInt (_loc, string_of_int d)),
-                                      Ast.PaInt (_loc, string_of_int e)),
-                                    Ast.PaInt (_loc, string_of_int f)),
-                                  Ast.PaInt (_loc, string_of_int g)),
-                                if h
-                                then
-                                  Ast.PaId (_loc, Ast.IdUid (_loc, "True"))
-                                else
-                                  Ast.PaId (_loc, Ast.IdUid (_loc, "False"))))))
+                          (Ast.PaId (_loc,
+                             (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")),
+                                (Ast.IdLid (_loc, "of_tuple")))))),
+                          (Ast.PaTup (_loc,
+                             (Ast.PaCom (_loc,
+                                (Ast.PaStr (_loc,
+                                   (Ast.safe_string_escaped a))),
+                                (Ast.PaCom (_loc,
+                                   (Ast.PaCom (_loc,
+                                      (Ast.PaCom (_loc,
+                                         (Ast.PaCom (_loc,
+                                            (Ast.PaCom (_loc,
+                                               (Ast.PaCom (_loc,
+                                                  (Ast.PaInt (_loc,
+                                                     (string_of_int b))),
+                                                  (Ast.PaInt (_loc,
+                                                     (string_of_int c))))),
+                                               (Ast.PaInt (_loc,
+                                                  (string_of_int d))))),
+                                            (Ast.PaInt (_loc,
+                                               (string_of_int e))))),
+                                         (Ast.PaInt (_loc, (string_of_int f))))),
+                                      (Ast.PaInt (_loc, (string_of_int g))))),
+                                   (if h
+                                    then
+                                      Ast.PaId (_loc,
+                                        (Ast.IdUid (_loc, "True")))
+                                    else
+                                      Ast.PaId (_loc,
+                                        (Ast.IdUid (_loc, "False")))))))))))
                       
                     let meta_loc_expr _loc location =
                       let (a, b, c, d, e, f, g, h) = Loc.to_tuple location
                       in
                         Ast.ExApp (_loc,
-                          Ast.ExId (_loc,
-                            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"),
-                              Ast.IdLid (_loc, "of_tuple"))),
-                          Ast.ExTup (_loc,
-                            Ast.ExCom (_loc,
-                              Ast.ExStr (_loc, Ast.safe_string_escaped a),
-                              Ast.ExCom (_loc,
-                                Ast.ExCom (_loc,
-                                  Ast.ExCom (_loc,
-                                    Ast.ExCom (_loc,
-                                      Ast.ExCom (_loc,
-                                        Ast.ExCom (_loc,
-                                          Ast.ExInt (_loc, string_of_int b),
-                                          Ast.ExInt (_loc, string_of_int c)),
-                                        Ast.ExInt (_loc, string_of_int d)),
-                                      Ast.ExInt (_loc, string_of_int e)),
-                                    Ast.ExInt (_loc, string_of_int f)),
-                                  Ast.ExInt (_loc, string_of_int g)),
-                                if h
-                                then
-                                  Ast.ExId (_loc, Ast.IdUid (_loc, "True"))
-                                else
-                                  Ast.ExId (_loc, Ast.IdUid (_loc, "False"))))))
+                          (Ast.ExId (_loc,
+                             (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")),
+                                (Ast.IdLid (_loc, "of_tuple")))))),
+                          (Ast.ExTup (_loc,
+                             (Ast.ExCom (_loc,
+                                (Ast.ExStr (_loc,
+                                   (Ast.safe_string_escaped a))),
+                                (Ast.ExCom (_loc,
+                                   (Ast.ExCom (_loc,
+                                      (Ast.ExCom (_loc,
+                                         (Ast.ExCom (_loc,
+                                            (Ast.ExCom (_loc,
+                                               (Ast.ExCom (_loc,
+                                                  (Ast.ExInt (_loc,
+                                                     (string_of_int b))),
+                                                  (Ast.ExInt (_loc,
+                                                     (string_of_int c))))),
+                                               (Ast.ExInt (_loc,
+                                                  (string_of_int d))))),
+                                            (Ast.ExInt (_loc,
+                                               (string_of_int e))))),
+                                         (Ast.ExInt (_loc, (string_of_int f))))),
+                                      (Ast.ExInt (_loc, (string_of_int g))))),
+                                   (if h
+                                    then
+                                      Ast.ExId (_loc,
+                                        (Ast.IdUid (_loc, "True")))
+                                    else
+                                      Ast.ExId (_loc,
+                                        (Ast.IdUid (_loc, "False")))))))))))
                       
                   end
                   
@@ -7275,23 +7472,23 @@ module Struct =
                   struct
                     let meta_loc_patt _loc _ =
                       Ast.PaId (_loc,
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"),
-                          Ast.IdLid (_loc, "ghost")))
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")),
+                           (Ast.IdLid (_loc, "ghost")))))
                       
                     let meta_loc_expr _loc _ =
                       Ast.ExId (_loc,
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"),
-                          Ast.IdLid (_loc, "ghost")))
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")),
+                           (Ast.IdLid (_loc, "ghost")))))
                       
                   end
                   
                 module MetaLocVar =
                   struct
                     let meta_loc_patt _loc _ =
-                      Ast.PaId (_loc, Ast.IdLid (_loc, !Loc.name))
+                      Ast.PaId (_loc, (Ast.IdLid (_loc, !Loc.name)))
                       
                     let meta_loc_expr _loc _ =
-                      Ast.ExId (_loc, Ast.IdLid (_loc, !Loc.name))
+                      Ast.ExId (_loc, (Ast.IdLid (_loc, !Loc.name)))
                       
                   end
                   
@@ -7314,2038 +7511,2274 @@ module Struct =
                         let meta_bool _loc =
                           function
                           | false ->
-                              Ast.ExId (_loc, Ast.IdUid (_loc, "False"))
-                          | true -> Ast.ExId (_loc, Ast.IdUid (_loc, "True"))
+                              Ast.ExId (_loc, (Ast.IdUid (_loc, "False")))
+                          | true ->
+                              Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))
                           
                         let rec meta_list mf_a _loc =
                           function
-                          | [] -> Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))
+                          | [] -> Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))
                           | x :: xs ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                                  mf_a _loc x),
-                                meta_list mf_a _loc xs)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))),
+                                   (mf_a _loc x))),
+                                (meta_list mf_a _loc xs))
                           
                         let rec meta_binding _loc =
                           function
                           | Ast.BiAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.BiEq (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "BiEq"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "BiEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.BiAnd (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "BiAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_binding _loc x1),
-                                meta_binding _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "BiAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_binding _loc x1))),
+                                (meta_binding _loc x2))
                           | Ast.BiNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "BiNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "BiNil")))))),
+                                (meta_loc _loc x0))
                         and meta_class_expr _loc =
                           function
                           | Ast.CeAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.CeEq (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeEq"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_class_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_expr _loc x1))),
+                                (meta_class_expr _loc x2))
                           | Ast.CeAnd (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_class_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_expr _loc x1))),
+                                (meta_class_expr _loc x2))
                           | Ast.CeTyc (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeTyc"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeTyc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_expr _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CeStr (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeStr"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_class_str_item _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeStr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_class_str_item _loc x2))
                           | Ast.CeLet (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CeLet"))),
-                                      meta_loc _loc x0),
-                                    meta_meta_bool _loc x1),
-                                  meta_binding _loc x2),
-                                meta_class_expr _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CeLet")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_rec_flag _loc x1))),
+                                   (meta_binding _loc x2))),
+                                (meta_class_expr _loc x3))
                           | Ast.CeFun (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeFun"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_class_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeFun")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_class_expr _loc x2))
                           | Ast.CeCon (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CeCon"))),
-                                      meta_loc _loc x0),
-                                    meta_meta_bool _loc x1),
-                                  meta_ident _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CeCon")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_virtual_flag _loc x1))),
+                                   (meta_ident _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CeApp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeApp"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.CeNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "CeNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "CeNil")))))),
+                                (meta_loc _loc x0))
                         and meta_class_sig_item _loc =
                           function
                           | Ast.CgAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.CgVir (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CgVir"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CgVir")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_private_flag _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CgVal (x0, x1, x2, x3, x4) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExApp (_loc,
-                                        Ast.ExId (_loc,
-                                          Ast.IdAcc (_loc,
-                                            Ast.IdUid (_loc, "Ast"),
-                                            Ast.IdUid (_loc, "CgVal"))),
-                                        meta_loc _loc x0),
-                                      meta_string _loc x1),
-                                    meta_meta_bool _loc x2),
-                                  meta_meta_bool _loc x3),
-                                meta_ctyp _loc x4)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExApp (_loc,
+                                            (Ast.ExId (_loc,
+                                               (Ast.IdAcc (_loc,
+                                                  (Ast.IdUid (_loc, "Ast")),
+                                                  (Ast.IdUid (_loc, "CgVal")))))),
+                                            (meta_loc _loc x0))),
+                                         (meta_string _loc x1))),
+                                      (meta_mutable_flag _loc x2))),
+                                   (meta_virtual_flag _loc x3))),
+                                (meta_ctyp _loc x4))
                           | Ast.CgMth (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CgMth"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CgMth")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_private_flag _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CgInh (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "CgInh"))),
-                                  meta_loc _loc x0),
-                                meta_class_type _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "CgInh")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_type _loc x1))
                           | Ast.CgSem (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CgSem"))),
-                                    meta_loc _loc x0),
-                                  meta_class_sig_item _loc x1),
-                                meta_class_sig_item _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CgSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_sig_item _loc x1))),
+                                (meta_class_sig_item _loc x2))
                           | Ast.CgCtr (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CgCtr"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CgCtr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.CgNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "CgNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "CgNil")))))),
+                                (meta_loc _loc x0))
                         and meta_class_str_item _loc =
                           function
                           | Ast.CrAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.CrVvr (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CrVvr"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CrVvr")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_mutable_flag _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CrVir (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CrVir"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_ctyp _loc x3)
-                          | Ast.CrVal (x0, x1, x2, x3) ->
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CrVir")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_private_flag _loc x2))),
+                                (meta_ctyp _loc x3))
+                          | Ast.CrVal (x0, x1, x2, x3, x4) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CrVal"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_expr _loc x3)
-                          | Ast.CrMth (x0, x1, x2, x3, x4) ->
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExApp (_loc,
+                                            (Ast.ExId (_loc,
+                                               (Ast.IdAcc (_loc,
+                                                  (Ast.IdUid (_loc, "Ast")),
+                                                  (Ast.IdUid (_loc, "CrVal")))))),
+                                            (meta_loc _loc x0))),
+                                         (meta_string _loc x1))),
+                                      (meta_override_flag _loc x2))),
+                                   (meta_mutable_flag _loc x3))),
+                                (meta_expr _loc x4))
+                          | Ast.CrMth (x0, x1, x2, x3, x4, x5) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExApp (_loc,
-                                        Ast.ExId (_loc,
-                                          Ast.IdAcc (_loc,
-                                            Ast.IdUid (_loc, "Ast"),
-                                            Ast.IdUid (_loc, "CrMth"))),
-                                        meta_loc _loc x0),
-                                      meta_string _loc x1),
-                                    meta_meta_bool _loc x2),
-                                  meta_expr _loc x3),
-                                meta_ctyp _loc x4)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExApp (_loc,
+                                            (Ast.ExApp (_loc,
+                                               (Ast.ExId (_loc,
+                                                  (Ast.IdAcc (_loc,
+                                                     (Ast.IdUid (_loc, "Ast")),
+                                                     (Ast.IdUid (_loc,
+                                                        "CrMth")))))),
+                                               (meta_loc _loc x0))),
+                                            (meta_string _loc x1))),
+                                         (meta_override_flag _loc x2))),
+                                      (meta_private_flag _loc x3))),
+                                   (meta_expr _loc x4))),
+                                (meta_ctyp _loc x5))
                           | Ast.CrIni (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "CrIni"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
-                          | Ast.CrInh (x0, x1, x2) ->
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "CrIni")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
+                          | Ast.CrInh (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CrInh"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_string _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CrInh")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_override_flag _loc x1))),
+                                   (meta_class_expr _loc x2))),
+                                (meta_string _loc x3))
                           | Ast.CrCtr (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CrCtr"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CrCtr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.CrSem (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CrSem"))),
-                                    meta_loc _loc x0),
-                                  meta_class_str_item _loc x1),
-                                meta_class_str_item _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CrSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_str_item _loc x1))),
+                                (meta_class_str_item _loc x2))
                           | Ast.CrNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "CrNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "CrNil")))))),
+                                (meta_loc _loc x0))
                         and meta_class_type _loc =
                           function
                           | Ast.CtAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.CtEq (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtEq"))),
-                                    meta_loc _loc x0),
-                                  meta_class_type _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_type _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CtCol (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtCol"))),
-                                    meta_loc _loc x0),
-                                  meta_class_type _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtCol")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_type _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CtAnd (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_class_type _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_type _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CtSig (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtSig"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_class_sig_item _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtSig")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_class_sig_item _loc x2))
                           | Ast.CtFun (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtFun"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtFun")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CtCon (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CtCon"))),
-                                      meta_loc _loc x0),
-                                    meta_meta_bool _loc x1),
-                                  meta_ident _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CtCon")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_virtual_flag _loc x1))),
+                                   (meta_ident _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CtNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "CtNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "CtNil")))))),
+                                (meta_loc _loc x0))
                         and meta_ctyp _loc =
                           function
                           | Ast.TyAnt (x0, x1) -> Ast.ExAnt (x0, x1)
+                          | Ast.TyPkg (x0, x1) ->
+                              Ast.ExApp (_loc,
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyPkg")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_type _loc x1))
                           | Ast.TyOfAmp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyOfAmp"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyOfAmp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyAmp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyAmp"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyAmp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyVrnInfSup (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyVrnInfSup"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyVrnInfSup")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyVrnInf (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyVrnInf"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyVrnInf")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyVrnSup (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyVrnSup"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyVrnSup")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyVrnEq (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyVrnEq"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyVrnEq")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TySta (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TySta"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TySta")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyTup (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyTup"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyTup")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyMut (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyMut"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyMut")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyPrv (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyPrv"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyPrv")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyOr (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyOr"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyOr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyAnd (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyOf (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyOf"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyOf")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TySum (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TySum"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TySum")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyCom (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyCom"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyCom")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TySem (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TySem"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TySem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyCol (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyCol"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyCol")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyRec (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyRec"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyRec")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyVrn (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyVrn"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyVrn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.TyQuM (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyQuM"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyQuM")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.TyQuP (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyQuP"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyQuP")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.TyQuo (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyQuo"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyQuo")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.TyPol (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyPol"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyPol")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyOlb (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyOlb"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyOlb")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyObj (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyObj"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_meta_bool _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyObj")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_row_var_flag _loc x2))
                           | Ast.TyDcl (x0, x1, x2, x3, x4) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExApp (_loc,
-                                        Ast.ExId (_loc,
-                                          Ast.IdAcc (_loc,
-                                            Ast.IdUid (_loc, "Ast"),
-                                            Ast.IdUid (_loc, "TyDcl"))),
-                                        meta_loc _loc x0),
-                                      meta_string _loc x1),
-                                    meta_list meta_ctyp _loc x2),
-                                  meta_ctyp _loc x3),
-                                meta_list
-                                  (fun _loc (x1, x2) ->
-                                     Ast.ExTup (_loc,
-                                       Ast.ExCom (_loc, meta_ctyp _loc x1,
-                                         meta_ctyp _loc x2)))
-                                  _loc x4)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExApp (_loc,
+                                            (Ast.ExId (_loc,
+                                               (Ast.IdAcc (_loc,
+                                                  (Ast.IdUid (_loc, "Ast")),
+                                                  (Ast.IdUid (_loc, "TyDcl")))))),
+                                            (meta_loc _loc x0))),
+                                         (meta_string _loc x1))),
+                                      (meta_list meta_ctyp _loc x2))),
+                                   (meta_ctyp _loc x3))),
+                                (meta_list
+                                   (fun _loc (x1, x2) ->
+                                      Ast.ExTup (_loc,
+                                        (Ast.ExCom (_loc,
+                                           (meta_ctyp _loc x1),
+                                           (meta_ctyp _loc x2)))))
+                                   _loc x4))
                           | Ast.TyMan (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyMan"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyMan")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyId (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.TyLab (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyLab"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyLab")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyCls (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyCls"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyCls")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.TyArr (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyArr"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyArr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyApp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyApp"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyAny x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "TyAny"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "TyAny")))))),
+                                (meta_loc _loc x0))
                           | Ast.TyAli (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyAli"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyAli")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "TyNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "TyNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_direction_flag _loc =
+                          function
+                          | Ast.DiAnt x0 -> Ast.ExAnt (_loc, x0)
+                          | Ast.DiDownto ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "DiDownto")))))
+                          | Ast.DiTo ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "DiTo")))))
                         and meta_expr _loc =
                           function
+                          | Ast.ExPkg (x0, x1) ->
+                              Ast.ExApp (_loc,
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExPkg")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_expr _loc x1))
+                          | Ast.ExFUN (x0, x1, x2) ->
+                              Ast.ExApp (_loc,
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExFUN")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExOpI (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExOpI"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExOpI")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExWhi (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExWhi"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExWhi")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExVrn (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExVrn"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExVrn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExTyc (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExTyc"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExTyc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.ExCom (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExCom"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExCom")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExTup (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExTup"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExTup")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExTry (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExTry"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_match_case _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExTry")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_match_case _loc x2))
                           | Ast.ExStr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExStr"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExStr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExSte (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExSte"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExSte")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExSnd (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExSnd"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_string _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExSnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_string _loc x2))
                           | Ast.ExSeq (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExSeq"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExSeq")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExRec (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExRec"))),
-                                    meta_loc _loc x0),
-                                  meta_rec_binding _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExRec")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_rec_binding _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExOvr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExOvr"))),
-                                  meta_loc _loc x0),
-                                meta_rec_binding _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExOvr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_rec_binding _loc x1))
                           | Ast.ExOlb (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExOlb"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExOlb")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExObj (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExObj"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_class_str_item _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExObj")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_class_str_item _loc x2))
                           | Ast.ExNew (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExNew"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExNew")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.ExMat (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExMat"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_match_case _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExMat")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_match_case _loc x2))
                           | Ast.ExLmd (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "ExLmd"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_module_expr _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "ExLmd")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_module_expr _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.ExLet (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "ExLet"))),
-                                      meta_loc _loc x0),
-                                    meta_meta_bool _loc x1),
-                                  meta_binding _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "ExLet")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_rec_flag _loc x1))),
+                                   (meta_binding _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.ExLaz (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExLaz"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExLaz")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExLab (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExLab"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExLab")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExNativeInt (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExNativeInt"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExNativeInt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExInt64 (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExInt64"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExInt64")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExInt32 (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExInt32"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExInt32")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExInt (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExInt"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExInt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExIfe (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "ExIfe"))),
-                                      meta_loc _loc x0),
-                                    meta_expr _loc x1),
-                                  meta_expr _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "ExIfe")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_expr _loc x1))),
+                                   (meta_expr _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.ExFun (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExFun"))),
-                                  meta_loc _loc x0),
-                                meta_match_case _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExFun")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_match_case _loc x1))
                           | Ast.ExFor (x0, x1, x2, x3, x4, x5) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExApp (_loc,
-                                        Ast.ExApp (_loc,
-                                          Ast.ExId (_loc,
-                                            Ast.IdAcc (_loc,
-                                              Ast.IdUid (_loc, "Ast"),
-                                              Ast.IdUid (_loc, "ExFor"))),
-                                          meta_loc _loc x0),
-                                        meta_string _loc x1),
-                                      meta_expr _loc x2),
-                                    meta_expr _loc x3),
-                                  meta_meta_bool _loc x4),
-                                meta_expr _loc x5)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExApp (_loc,
+                                            (Ast.ExApp (_loc,
+                                               (Ast.ExId (_loc,
+                                                  (Ast.IdAcc (_loc,
+                                                     (Ast.IdUid (_loc, "Ast")),
+                                                     (Ast.IdUid (_loc,
+                                                        "ExFor")))))),
+                                               (meta_loc _loc x0))),
+                                            (meta_string _loc x1))),
+                                         (meta_expr _loc x2))),
+                                      (meta_expr _loc x3))),
+                                   (meta_direction_flag _loc x4))),
+                                (meta_expr _loc x5))
                           | Ast.ExFlo (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExFlo"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExFlo")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExCoe (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "ExCoe"))),
-                                      meta_loc _loc x0),
-                                    meta_expr _loc x1),
-                                  meta_ctyp _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "ExCoe")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_expr _loc x1))),
+                                   (meta_ctyp _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.ExChr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExChr"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExChr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExAss (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExAss"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExAss")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExAsr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExAsr"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExAsr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExAsf x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "ExAsf"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "ExAsf")))))),
+                                (meta_loc _loc x0))
                           | Ast.ExSem (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExSem"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExArr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExArr"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExArr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExAre (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExAre"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExAre")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExApp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExApp"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.ExAcc (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExAcc"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExAcc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExId (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.ExNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "ExNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "ExNil")))))),
+                                (meta_loc _loc x0))
                         and meta_ident _loc =
                           function
                           | Ast.IdAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.IdUid (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "IdUid"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "IdUid")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.IdLid (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "IdLid"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "IdLid")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.IdApp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "IdApp"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_ident _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "IdApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_ident _loc x2))
                           | Ast.IdAcc (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "IdAcc"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_ident _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "IdAcc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_ident _loc x2))
                         and meta_match_case _loc =
                           function
                           | Ast.McAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.McArr (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "McArr"))),
-                                      meta_loc _loc x0),
-                                    meta_patt _loc x1),
-                                  meta_expr _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "McArr")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_patt _loc x1))),
+                                   (meta_expr _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.McOr (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "McOr"))),
-                                    meta_loc _loc x0),
-                                  meta_match_case _loc x1),
-                                meta_match_case _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "McOr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_match_case _loc x1))),
+                                (meta_match_case _loc x2))
                           | Ast.McNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "McNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "McNil")))))),
+                                (meta_loc _loc x0))
                         and meta_meta_bool _loc =
                           function
                           | Ast.BAnt x0 -> Ast.ExAnt (_loc, x0)
                           | Ast.BFalse ->
                               Ast.ExId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                  Ast.IdUid (_loc, "BFalse")))
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "BFalse")))))
                           | Ast.BTrue ->
                               Ast.ExId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                  Ast.IdUid (_loc, "BTrue")))
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "BTrue")))))
                         and meta_meta_list mf_a _loc =
                           function
                           | Ast.LAnt x0 -> Ast.ExAnt (_loc, x0)
                           | Ast.LCons (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "LCons"))),
-                                  mf_a _loc x0),
-                                meta_meta_list mf_a _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "LCons")))))),
+                                   (mf_a _loc x0))),
+                                (meta_meta_list mf_a _loc x1))
                           | Ast.LNil ->
                               Ast.ExId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                  Ast.IdUid (_loc, "LNil")))
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "LNil")))))
                         and meta_meta_option mf_a _loc =
                           function
                           | Ast.OAnt x0 -> Ast.ExAnt (_loc, x0)
                           | Ast.OSome x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "OSome"))),
-                                mf_a _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "OSome")))))),
+                                (mf_a _loc x0))
                           | Ast.ONone ->
                               Ast.ExId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                  Ast.IdUid (_loc, "ONone")))
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ONone")))))
                         and meta_module_binding _loc =
                           function
                           | Ast.MbAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.MbCol (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MbCol"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MbCol")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.MbColEq (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "MbColEq"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_module_type _loc x2),
-                                meta_module_expr _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "MbColEq")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_module_type _loc x2))),
+                                (meta_module_expr _loc x3))
                           | Ast.MbAnd (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MbAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_module_binding _loc x1),
-                                meta_module_binding _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MbAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_module_binding _loc x1))),
+                                (meta_module_binding _loc x2))
                           | Ast.MbNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "MbNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "MbNil")))))),
+                                (meta_loc _loc x0))
                         and meta_module_expr _loc =
                           function
                           | Ast.MeAnt (x0, x1) -> Ast.ExAnt (x0, x1)
+                          | Ast.MePkg (x0, x1) ->
+                              Ast.ExApp (_loc,
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MePkg")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.MeTyc (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MeTyc"))),
-                                    meta_loc _loc x0),
-                                  meta_module_expr _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MeTyc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_module_expr _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.MeStr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MeStr"))),
-                                  meta_loc _loc x0),
-                                meta_str_item _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MeStr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_str_item _loc x1))
                           | Ast.MeFun (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "MeFun"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_module_type _loc x2),
-                                meta_module_expr _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "MeFun")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_module_type _loc x2))),
+                                (meta_module_expr _loc x3))
                           | Ast.MeApp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MeApp"))),
-                                    meta_loc _loc x0),
-                                  meta_module_expr _loc x1),
-                                meta_module_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MeApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_module_expr _loc x1))),
+                                (meta_module_expr _loc x2))
                           | Ast.MeId (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MeId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MeId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.MeNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "MeNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "MeNil")))))),
+                                (meta_loc _loc x0))
                         and meta_module_type _loc =
                           function
                           | Ast.MtAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.MtWit (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MtWit"))),
-                                    meta_loc _loc x0),
-                                  meta_module_type _loc x1),
-                                meta_with_constr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MtWit")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_module_type _loc x1))),
+                                (meta_with_constr _loc x2))
                           | Ast.MtSig (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MtSig"))),
-                                  meta_loc _loc x0),
-                                meta_sig_item _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MtSig")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_sig_item _loc x1))
                           | Ast.MtQuo (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MtQuo"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MtQuo")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.MtFun (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "MtFun"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_module_type _loc x2),
-                                meta_module_type _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "MtFun")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_module_type _loc x2))),
+                                (meta_module_type _loc x3))
                           | Ast.MtId (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MtId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MtId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.MtNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "MtNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "MtNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_mutable_flag _loc =
+                          function
+                          | Ast.MuAnt x0 -> Ast.ExAnt (_loc, x0)
+                          | Ast.MuNil ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "MuNil")))))
+                          | Ast.MuMutable ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "MuMutable")))))
+                        and meta_override_flag _loc =
+                          function
+                          | Ast.OvAnt x0 -> Ast.ExAnt (_loc, x0)
+                          | Ast.OvNil ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "OvNil")))))
+                          | Ast.OvOverride ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "OvOverride")))))
                         and meta_patt _loc =
                           function
                           | Ast.PaLaz (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaLaz"))),
-                                  meta_loc _loc x0),
-                                meta_patt _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaLaz")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_patt _loc x1))
                           | Ast.PaVrn (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaVrn"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaVrn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaTyp (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaTyp"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaTyp")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.PaTyc (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaTyc"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaTyc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.PaTup (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaTup"))),
-                                  meta_loc _loc x0),
-                                meta_patt _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaTup")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_patt _loc x1))
                           | Ast.PaStr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaStr"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaStr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaEq (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaEq"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaRec (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaRec"))),
-                                  meta_loc _loc x0),
-                                meta_patt _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaRec")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_patt _loc x1))
                           | Ast.PaRng (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaRng"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaRng")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaOrp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaOrp"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaOrp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaOlbi (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "PaOlbi"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_patt _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "PaOlbi")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_patt _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.PaOlb (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaOlb"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaOlb")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaLab (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaLab"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaLab")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaFlo (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaFlo"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaFlo")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaNativeInt (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaNativeInt"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaNativeInt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaInt64 (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaInt64"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaInt64")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaInt32 (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaInt32"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaInt32")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaInt (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaInt"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaInt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaChr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaChr"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaChr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaSem (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaSem"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaCom (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaCom"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaCom")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaArr (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaArr"))),
-                                  meta_loc _loc x0),
-                                meta_patt _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaArr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_patt _loc x1))
                           | Ast.PaApp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaApp"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaAny x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "PaAny"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "PaAny")))))),
+                                (meta_loc _loc x0))
                           | Ast.PaAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.PaAli (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaAli"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaAli")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaId (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.PaNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "PaNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "PaNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_private_flag _loc =
+                          function
+                          | Ast.PrAnt x0 -> Ast.ExAnt (_loc, x0)
+                          | Ast.PrNil ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "PrNil")))))
+                          | Ast.PrPrivate ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "PrPrivate")))))
                         and meta_rec_binding _loc =
                           function
                           | Ast.RbAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.RbEq (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "RbEq"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "RbEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.RbSem (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "RbSem"))),
-                                    meta_loc _loc x0),
-                                  meta_rec_binding _loc x1),
-                                meta_rec_binding _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "RbSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_rec_binding _loc x1))),
+                                (meta_rec_binding _loc x2))
                           | Ast.RbNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "RbNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "RbNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_rec_flag _loc =
+                          function
+                          | Ast.ReAnt x0 -> Ast.ExAnt (_loc, x0)
+                          | Ast.ReNil ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ReNil")))))
+                          | Ast.ReRecursive ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ReRecursive")))))
+                        and meta_row_var_flag _loc =
+                          function
+                          | Ast.RvAnt x0 -> Ast.ExAnt (_loc, x0)
+                          | Ast.RvNil ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "RvNil")))))
+                          | Ast.RvRowVar ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "RvRowVar")))))
                         and meta_sig_item _loc =
                           function
                           | Ast.SgAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.SgVal (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgVal"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgVal")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.SgTyp (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgTyp"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgTyp")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.SgOpn (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgOpn"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgOpn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.SgMty (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgMty"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgMty")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.SgRecMod (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgRecMod"))),
-                                  meta_loc _loc x0),
-                                meta_module_binding _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgRecMod")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_binding _loc x1))
                           | Ast.SgMod (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgMod"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgMod")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.SgInc (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgInc"))),
-                                  meta_loc _loc x0),
-                                meta_module_type _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgInc")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_type _loc x1))
                           | Ast.SgExt (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "SgExt"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_ctyp _loc x2),
-                                meta_meta_list meta_string _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "SgExt")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_ctyp _loc x2))),
+                                (meta_meta_list meta_string _loc x3))
                           | Ast.SgExc (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgExc"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgExc")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.SgDir (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgDir"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgDir")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.SgSem (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgSem"))),
-                                    meta_loc _loc x0),
-                                  meta_sig_item _loc x1),
-                                meta_sig_item _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_sig_item _loc x1))),
+                                (meta_sig_item _loc x2))
                           | Ast.SgClt (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgClt"))),
-                                  meta_loc _loc x0),
-                                meta_class_type _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgClt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_type _loc x1))
                           | Ast.SgCls (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgCls"))),
-                                  meta_loc _loc x0),
-                                meta_class_type _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgCls")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_type _loc x1))
                           | Ast.SgNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "SgNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "SgNil")))))),
+                                (meta_loc _loc x0))
                         and meta_str_item _loc =
                           function
                           | Ast.StAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.StVal (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StVal"))),
-                                    meta_loc _loc x0),
-                                  meta_meta_bool _loc x1),
-                                meta_binding _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StVal")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_rec_flag _loc x1))),
+                                (meta_binding _loc x2))
                           | Ast.StTyp (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StTyp"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StTyp")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.StOpn (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StOpn"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StOpn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.StMty (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StMty"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StMty")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.StRecMod (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StRecMod"))),
-                                  meta_loc _loc x0),
-                                meta_module_binding _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StRecMod")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_binding _loc x1))
                           | Ast.StMod (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StMod"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StMod")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_expr _loc x2))
                           | Ast.StInc (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StInc"))),
-                                  meta_loc _loc x0),
-                                meta_module_expr _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StInc")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_expr _loc x1))
                           | Ast.StExt (x0, x1, x2, x3) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExApp (_loc,
-                                      Ast.ExId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "StExt"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_ctyp _loc x2),
-                                meta_meta_list meta_string _loc x3)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExApp (_loc,
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "StExt")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_ctyp _loc x2))),
+                                (meta_meta_list meta_string _loc x3))
                           | Ast.StExp (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StExp"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StExp")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.StExc (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StExc"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_meta_option meta_ident _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StExc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_meta_option meta_ident _loc x2))
                           | Ast.StDir (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StDir"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StDir")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.StSem (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StSem"))),
-                                    meta_loc _loc x0),
-                                  meta_str_item _loc x1),
-                                meta_str_item _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_str_item _loc x1))),
+                                (meta_str_item _loc x2))
                           | Ast.StClt (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StClt"))),
-                                  meta_loc _loc x0),
-                                meta_class_type _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StClt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_type _loc x1))
                           | Ast.StCls (x0, x1) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StCls"))),
-                                  meta_loc _loc x0),
-                                meta_class_expr _loc x1)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StCls")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_expr _loc x1))
                           | Ast.StNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "StNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "StNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_virtual_flag _loc =
+                          function
+                          | Ast.ViAnt x0 -> Ast.ExAnt (_loc, x0)
+                          | Ast.ViNil ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ViNil")))))
+                          | Ast.ViVirtual ->
+                              Ast.ExId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ViVirtual")))))
                         and meta_with_constr _loc =
                           function
                           | Ast.WcAnt (x0, x1) -> Ast.ExAnt (x0, x1)
                           | Ast.WcAnd (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "WcAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_with_constr _loc x1),
-                                meta_with_constr _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_with_constr _loc x1))),
+                                (meta_with_constr _loc x2))
+                          | Ast.WcMoS (x0, x1, x2) ->
+                              Ast.ExApp (_loc,
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcMoS")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_ident _loc x2))
+                          | Ast.WcTyS (x0, x1, x2) ->
+                              Ast.ExApp (_loc,
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcTyS")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.WcMod (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "WcMod"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_ident _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcMod")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_ident _loc x2))
                           | Ast.WcTyp (x0, x1, x2) ->
                               Ast.ExApp (_loc,
-                                Ast.ExApp (_loc,
-                                  Ast.ExApp (_loc,
-                                    Ast.ExId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "WcTyp"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.ExApp (_loc,
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcTyp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.WcNil x0 ->
                               Ast.ExApp (_loc,
-                                Ast.ExId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "WcNil"))),
-                                meta_loc _loc x0)
+                                (Ast.ExId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "WcNil")))))),
+                                (meta_loc _loc x0))
                           
                       end
                       
@@ -9364,2038 +9797,2274 @@ module Struct =
                         let meta_bool _loc =
                           function
                           | false ->
-                              Ast.PaId (_loc, Ast.IdUid (_loc, "False"))
-                          | true -> Ast.PaId (_loc, Ast.IdUid (_loc, "True"))
+                              Ast.PaId (_loc, (Ast.IdUid (_loc, "False")))
+                          | true ->
+                              Ast.PaId (_loc, (Ast.IdUid (_loc, "True")))
                           
                         let rec meta_list mf_a _loc =
                           function
-                          | [] -> Ast.PaId (_loc, Ast.IdUid (_loc, "[]"))
+                          | [] -> Ast.PaId (_loc, (Ast.IdUid (_loc, "[]")))
                           | x :: xs ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc, Ast.IdUid (_loc, "::")),
-                                  mf_a _loc x),
-                                meta_list mf_a _loc xs)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc, (Ast.IdUid (_loc, "::")))),
+                                   (mf_a _loc x))),
+                                (meta_list mf_a _loc xs))
                           
                         let rec meta_binding _loc =
                           function
                           | Ast.BiAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.BiEq (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "BiEq"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "BiEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.BiAnd (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "BiAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_binding _loc x1),
-                                meta_binding _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "BiAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_binding _loc x1))),
+                                (meta_binding _loc x2))
                           | Ast.BiNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "BiNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "BiNil")))))),
+                                (meta_loc _loc x0))
                         and meta_class_expr _loc =
                           function
                           | Ast.CeAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.CeEq (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeEq"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_class_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_expr _loc x1))),
+                                (meta_class_expr _loc x2))
                           | Ast.CeAnd (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_class_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_expr _loc x1))),
+                                (meta_class_expr _loc x2))
                           | Ast.CeTyc (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeTyc"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeTyc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_expr _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CeStr (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeStr"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_class_str_item _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeStr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_class_str_item _loc x2))
                           | Ast.CeLet (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CeLet"))),
-                                      meta_loc _loc x0),
-                                    meta_meta_bool _loc x1),
-                                  meta_binding _loc x2),
-                                meta_class_expr _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CeLet")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_rec_flag _loc x1))),
+                                   (meta_binding _loc x2))),
+                                (meta_class_expr _loc x3))
                           | Ast.CeFun (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeFun"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_class_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeFun")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_class_expr _loc x2))
                           | Ast.CeCon (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CeCon"))),
-                                      meta_loc _loc x0),
-                                    meta_meta_bool _loc x1),
-                                  meta_ident _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CeCon")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_virtual_flag _loc x1))),
+                                   (meta_ident _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CeApp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CeApp"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CeApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.CeNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "CeNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "CeNil")))))),
+                                (meta_loc _loc x0))
                         and meta_class_sig_item _loc =
                           function
                           | Ast.CgAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.CgVir (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CgVir"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CgVir")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_private_flag _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CgVal (x0, x1, x2, x3, x4) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaApp (_loc,
-                                        Ast.PaId (_loc,
-                                          Ast.IdAcc (_loc,
-                                            Ast.IdUid (_loc, "Ast"),
-                                            Ast.IdUid (_loc, "CgVal"))),
-                                        meta_loc _loc x0),
-                                      meta_string _loc x1),
-                                    meta_meta_bool _loc x2),
-                                  meta_meta_bool _loc x3),
-                                meta_ctyp _loc x4)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaApp (_loc,
+                                            (Ast.PaId (_loc,
+                                               (Ast.IdAcc (_loc,
+                                                  (Ast.IdUid (_loc, "Ast")),
+                                                  (Ast.IdUid (_loc, "CgVal")))))),
+                                            (meta_loc _loc x0))),
+                                         (meta_string _loc x1))),
+                                      (meta_mutable_flag _loc x2))),
+                                   (meta_virtual_flag _loc x3))),
+                                (meta_ctyp _loc x4))
                           | Ast.CgMth (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CgMth"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CgMth")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_private_flag _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CgInh (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "CgInh"))),
-                                  meta_loc _loc x0),
-                                meta_class_type _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "CgInh")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_type _loc x1))
                           | Ast.CgSem (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CgSem"))),
-                                    meta_loc _loc x0),
-                                  meta_class_sig_item _loc x1),
-                                meta_class_sig_item _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CgSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_sig_item _loc x1))),
+                                (meta_class_sig_item _loc x2))
                           | Ast.CgCtr (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CgCtr"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CgCtr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.CgNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "CgNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "CgNil")))))),
+                                (meta_loc _loc x0))
                         and meta_class_str_item _loc =
                           function
                           | Ast.CrAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.CrVvr (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CrVvr"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CrVvr")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_mutable_flag _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CrVir (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CrVir"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_ctyp _loc x3)
-                          | Ast.CrVal (x0, x1, x2, x3) ->
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CrVir")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_private_flag _loc x2))),
+                                (meta_ctyp _loc x3))
+                          | Ast.CrVal (x0, x1, x2, x3, x4) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CrVal"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_meta_bool _loc x2),
-                                meta_expr _loc x3)
-                          | Ast.CrMth (x0, x1, x2, x3, x4) ->
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaApp (_loc,
+                                            (Ast.PaId (_loc,
+                                               (Ast.IdAcc (_loc,
+                                                  (Ast.IdUid (_loc, "Ast")),
+                                                  (Ast.IdUid (_loc, "CrVal")))))),
+                                            (meta_loc _loc x0))),
+                                         (meta_string _loc x1))),
+                                      (meta_override_flag _loc x2))),
+                                   (meta_mutable_flag _loc x3))),
+                                (meta_expr _loc x4))
+                          | Ast.CrMth (x0, x1, x2, x3, x4, x5) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaApp (_loc,
-                                        Ast.PaId (_loc,
-                                          Ast.IdAcc (_loc,
-                                            Ast.IdUid (_loc, "Ast"),
-                                            Ast.IdUid (_loc, "CrMth"))),
-                                        meta_loc _loc x0),
-                                      meta_string _loc x1),
-                                    meta_meta_bool _loc x2),
-                                  meta_expr _loc x3),
-                                meta_ctyp _loc x4)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaApp (_loc,
+                                            (Ast.PaApp (_loc,
+                                               (Ast.PaId (_loc,
+                                                  (Ast.IdAcc (_loc,
+                                                     (Ast.IdUid (_loc, "Ast")),
+                                                     (Ast.IdUid (_loc,
+                                                        "CrMth")))))),
+                                               (meta_loc _loc x0))),
+                                            (meta_string _loc x1))),
+                                         (meta_override_flag _loc x2))),
+                                      (meta_private_flag _loc x3))),
+                                   (meta_expr _loc x4))),
+                                (meta_ctyp _loc x5))
                           | Ast.CrIni (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "CrIni"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
-                          | Ast.CrInh (x0, x1, x2) ->
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "CrIni")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
+                          | Ast.CrInh (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CrInh"))),
-                                    meta_loc _loc x0),
-                                  meta_class_expr _loc x1),
-                                meta_string _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CrInh")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_override_flag _loc x1))),
+                                   (meta_class_expr _loc x2))),
+                                (meta_string _loc x3))
                           | Ast.CrCtr (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CrCtr"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CrCtr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.CrSem (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CrSem"))),
-                                    meta_loc _loc x0),
-                                  meta_class_str_item _loc x1),
-                                meta_class_str_item _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CrSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_str_item _loc x1))),
+                                (meta_class_str_item _loc x2))
                           | Ast.CrNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "CrNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "CrNil")))))),
+                                (meta_loc _loc x0))
                         and meta_class_type _loc =
                           function
                           | Ast.CtAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.CtEq (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtEq"))),
-                                    meta_loc _loc x0),
-                                  meta_class_type _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_type _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CtCol (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtCol"))),
-                                    meta_loc _loc x0),
-                                  meta_class_type _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtCol")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_type _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CtAnd (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_class_type _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_class_type _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CtSig (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtSig"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_class_sig_item _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtSig")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_class_sig_item _loc x2))
                           | Ast.CtFun (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "CtFun"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_class_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "CtFun")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_class_type _loc x2))
                           | Ast.CtCon (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "CtCon"))),
-                                      meta_loc _loc x0),
-                                    meta_meta_bool _loc x1),
-                                  meta_ident _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "CtCon")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_virtual_flag _loc x1))),
+                                   (meta_ident _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.CtNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "CtNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "CtNil")))))),
+                                (meta_loc _loc x0))
                         and meta_ctyp _loc =
                           function
                           | Ast.TyAnt (x0, x1) -> Ast.PaAnt (x0, x1)
+                          | Ast.TyPkg (x0, x1) ->
+                              Ast.PaApp (_loc,
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyPkg")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_type _loc x1))
                           | Ast.TyOfAmp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyOfAmp"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyOfAmp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyAmp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyAmp"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyAmp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyVrnInfSup (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyVrnInfSup"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyVrnInfSup")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyVrnInf (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyVrnInf"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyVrnInf")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyVrnSup (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyVrnSup"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyVrnSup")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyVrnEq (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyVrnEq"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyVrnEq")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TySta (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TySta"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TySta")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyTup (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyTup"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyTup")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyMut (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyMut"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyMut")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyPrv (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyPrv"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyPrv")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyOr (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyOr"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyOr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyAnd (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyOf (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyOf"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyOf")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TySum (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TySum"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TySum")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyCom (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyCom"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyCom")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TySem (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TySem"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TySem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyCol (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyCol"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyCol")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyRec (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyRec"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyRec")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.TyVrn (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyVrn"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyVrn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.TyQuM (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyQuM"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyQuM")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.TyQuP (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyQuP"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyQuP")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.TyQuo (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyQuo"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyQuo")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.TyPol (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyPol"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyPol")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyOlb (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyOlb"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyOlb")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyObj (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyObj"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_meta_bool _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyObj")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_row_var_flag _loc x2))
                           | Ast.TyDcl (x0, x1, x2, x3, x4) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaApp (_loc,
-                                        Ast.PaId (_loc,
-                                          Ast.IdAcc (_loc,
-                                            Ast.IdUid (_loc, "Ast"),
-                                            Ast.IdUid (_loc, "TyDcl"))),
-                                        meta_loc _loc x0),
-                                      meta_string _loc x1),
-                                    meta_list meta_ctyp _loc x2),
-                                  meta_ctyp _loc x3),
-                                meta_list
-                                  (fun _loc (x1, x2) ->
-                                     Ast.PaTup (_loc,
-                                       Ast.PaCom (_loc, meta_ctyp _loc x1,
-                                         meta_ctyp _loc x2)))
-                                  _loc x4)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaApp (_loc,
+                                            (Ast.PaId (_loc,
+                                               (Ast.IdAcc (_loc,
+                                                  (Ast.IdUid (_loc, "Ast")),
+                                                  (Ast.IdUid (_loc, "TyDcl")))))),
+                                            (meta_loc _loc x0))),
+                                         (meta_string _loc x1))),
+                                      (meta_list meta_ctyp _loc x2))),
+                                   (meta_ctyp _loc x3))),
+                                (meta_list
+                                   (fun _loc (x1, x2) ->
+                                      Ast.PaTup (_loc,
+                                        (Ast.PaCom (_loc,
+                                           (meta_ctyp _loc x1),
+                                           (meta_ctyp _loc x2)))))
+                                   _loc x4))
                           | Ast.TyMan (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyMan"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyMan")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyId (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.TyLab (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyLab"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyLab")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyCls (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "TyCls"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "TyCls")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.TyArr (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyArr"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyArr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyApp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyApp"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyAny x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "TyAny"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "TyAny")))))),
+                                (meta_loc _loc x0))
                           | Ast.TyAli (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "TyAli"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "TyAli")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.TyNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "TyNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "TyNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_direction_flag _loc =
+                          function
+                          | Ast.DiAnt x0 -> Ast.PaAnt (_loc, x0)
+                          | Ast.DiDownto ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "DiDownto")))))
+                          | Ast.DiTo ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "DiTo")))))
                         and meta_expr _loc =
                           function
+                          | Ast.ExPkg (x0, x1) ->
+                              Ast.PaApp (_loc,
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExPkg")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_expr _loc x1))
+                          | Ast.ExFUN (x0, x1, x2) ->
+                              Ast.PaApp (_loc,
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExFUN")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExOpI (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExOpI"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExOpI")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExWhi (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExWhi"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExWhi")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExVrn (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExVrn"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExVrn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExTyc (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExTyc"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExTyc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.ExCom (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExCom"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExCom")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExTup (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExTup"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExTup")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExTry (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExTry"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_match_case _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExTry")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_match_case _loc x2))
                           | Ast.ExStr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExStr"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExStr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExSte (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExSte"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExSte")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExSnd (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExSnd"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_string _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExSnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_string _loc x2))
                           | Ast.ExSeq (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExSeq"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExSeq")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExRec (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExRec"))),
-                                    meta_loc _loc x0),
-                                  meta_rec_binding _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExRec")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_rec_binding _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExOvr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExOvr"))),
-                                  meta_loc _loc x0),
-                                meta_rec_binding _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExOvr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_rec_binding _loc x1))
                           | Ast.ExOlb (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExOlb"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExOlb")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExObj (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExObj"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_class_str_item _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExObj")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_class_str_item _loc x2))
                           | Ast.ExNew (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExNew"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExNew")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.ExMat (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExMat"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_match_case _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExMat")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_match_case _loc x2))
                           | Ast.ExLmd (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "ExLmd"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_module_expr _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "ExLmd")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_module_expr _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.ExLet (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "ExLet"))),
-                                      meta_loc _loc x0),
-                                    meta_meta_bool _loc x1),
-                                  meta_binding _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "ExLet")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_rec_flag _loc x1))),
+                                   (meta_binding _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.ExLaz (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExLaz"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExLaz")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExLab (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExLab"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExLab")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExNativeInt (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExNativeInt"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExNativeInt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExInt64 (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExInt64"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExInt64")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExInt32 (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExInt32"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExInt32")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExInt (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExInt"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExInt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExIfe (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "ExIfe"))),
-                                      meta_loc _loc x0),
-                                    meta_expr _loc x1),
-                                  meta_expr _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "ExIfe")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_expr _loc x1))),
+                                   (meta_expr _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.ExFun (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExFun"))),
-                                  meta_loc _loc x0),
-                                meta_match_case _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExFun")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_match_case _loc x1))
                           | Ast.ExFor (x0, x1, x2, x3, x4, x5) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaApp (_loc,
-                                        Ast.PaApp (_loc,
-                                          Ast.PaId (_loc,
-                                            Ast.IdAcc (_loc,
-                                              Ast.IdUid (_loc, "Ast"),
-                                              Ast.IdUid (_loc, "ExFor"))),
-                                          meta_loc _loc x0),
-                                        meta_string _loc x1),
-                                      meta_expr _loc x2),
-                                    meta_expr _loc x3),
-                                  meta_meta_bool _loc x4),
-                                meta_expr _loc x5)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaApp (_loc,
+                                            (Ast.PaApp (_loc,
+                                               (Ast.PaId (_loc,
+                                                  (Ast.IdAcc (_loc,
+                                                     (Ast.IdUid (_loc, "Ast")),
+                                                     (Ast.IdUid (_loc,
+                                                        "ExFor")))))),
+                                               (meta_loc _loc x0))),
+                                            (meta_string _loc x1))),
+                                         (meta_expr _loc x2))),
+                                      (meta_expr _loc x3))),
+                                   (meta_direction_flag _loc x4))),
+                                (meta_expr _loc x5))
                           | Ast.ExFlo (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExFlo"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExFlo")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExCoe (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "ExCoe"))),
-                                      meta_loc _loc x0),
-                                    meta_expr _loc x1),
-                                  meta_ctyp _loc x2),
-                                meta_ctyp _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "ExCoe")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_expr _loc x1))),
+                                   (meta_ctyp _loc x2))),
+                                (meta_ctyp _loc x3))
                           | Ast.ExChr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExChr"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExChr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.ExAss (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExAss"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExAss")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExAsr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExAsr"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExAsr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExAsf x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "ExAsf"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "ExAsf")))))),
+                                (meta_loc _loc x0))
                           | Ast.ExSem (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExSem"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExArr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExArr"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExArr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.ExAre (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExAre"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExAre")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExApp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExApp"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.ExAcc (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "ExAcc"))),
-                                    meta_loc _loc x0),
-                                  meta_expr _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "ExAcc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_expr _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.ExId (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "ExId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "ExId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.ExNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "ExNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "ExNil")))))),
+                                (meta_loc _loc x0))
                         and meta_ident _loc =
                           function
                           | Ast.IdAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.IdUid (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "IdUid"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "IdUid")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.IdLid (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "IdLid"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "IdLid")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.IdApp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "IdApp"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_ident _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "IdApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_ident _loc x2))
                           | Ast.IdAcc (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "IdAcc"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_ident _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "IdAcc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_ident _loc x2))
                         and meta_match_case _loc =
                           function
                           | Ast.McAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.McArr (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "McArr"))),
-                                      meta_loc _loc x0),
-                                    meta_patt _loc x1),
-                                  meta_expr _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "McArr")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_patt _loc x1))),
+                                   (meta_expr _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.McOr (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "McOr"))),
-                                    meta_loc _loc x0),
-                                  meta_match_case _loc x1),
-                                meta_match_case _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "McOr")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_match_case _loc x1))),
+                                (meta_match_case _loc x2))
                           | Ast.McNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "McNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "McNil")))))),
+                                (meta_loc _loc x0))
                         and meta_meta_bool _loc =
                           function
                           | Ast.BAnt x0 -> Ast.PaAnt (_loc, x0)
                           | Ast.BFalse ->
                               Ast.PaId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                  Ast.IdUid (_loc, "BFalse")))
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "BFalse")))))
                           | Ast.BTrue ->
                               Ast.PaId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                  Ast.IdUid (_loc, "BTrue")))
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "BTrue")))))
                         and meta_meta_list mf_a _loc =
                           function
                           | Ast.LAnt x0 -> Ast.PaAnt (_loc, x0)
                           | Ast.LCons (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "LCons"))),
-                                  mf_a _loc x0),
-                                meta_meta_list mf_a _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "LCons")))))),
+                                   (mf_a _loc x0))),
+                                (meta_meta_list mf_a _loc x1))
                           | Ast.LNil ->
                               Ast.PaId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                  Ast.IdUid (_loc, "LNil")))
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "LNil")))))
                         and meta_meta_option mf_a _loc =
                           function
                           | Ast.OAnt x0 -> Ast.PaAnt (_loc, x0)
                           | Ast.OSome x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "OSome"))),
-                                mf_a _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "OSome")))))),
+                                (mf_a _loc x0))
                           | Ast.ONone ->
                               Ast.PaId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                  Ast.IdUid (_loc, "ONone")))
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ONone")))))
                         and meta_module_binding _loc =
                           function
                           | Ast.MbAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.MbCol (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MbCol"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MbCol")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.MbColEq (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "MbColEq"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_module_type _loc x2),
-                                meta_module_expr _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "MbColEq")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_module_type _loc x2))),
+                                (meta_module_expr _loc x3))
                           | Ast.MbAnd (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MbAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_module_binding _loc x1),
-                                meta_module_binding _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MbAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_module_binding _loc x1))),
+                                (meta_module_binding _loc x2))
                           | Ast.MbNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "MbNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "MbNil")))))),
+                                (meta_loc _loc x0))
                         and meta_module_expr _loc =
                           function
                           | Ast.MeAnt (x0, x1) -> Ast.PaAnt (x0, x1)
+                          | Ast.MePkg (x0, x1) ->
+                              Ast.PaApp (_loc,
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MePkg")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.MeTyc (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MeTyc"))),
-                                    meta_loc _loc x0),
-                                  meta_module_expr _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MeTyc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_module_expr _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.MeStr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MeStr"))),
-                                  meta_loc _loc x0),
-                                meta_str_item _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MeStr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_str_item _loc x1))
                           | Ast.MeFun (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "MeFun"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_module_type _loc x2),
-                                meta_module_expr _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "MeFun")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_module_type _loc x2))),
+                                (meta_module_expr _loc x3))
                           | Ast.MeApp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MeApp"))),
-                                    meta_loc _loc x0),
-                                  meta_module_expr _loc x1),
-                                meta_module_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MeApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_module_expr _loc x1))),
+                                (meta_module_expr _loc x2))
                           | Ast.MeId (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MeId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MeId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.MeNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "MeNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "MeNil")))))),
+                                (meta_loc _loc x0))
                         and meta_module_type _loc =
                           function
                           | Ast.MtAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.MtWit (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "MtWit"))),
-                                    meta_loc _loc x0),
-                                  meta_module_type _loc x1),
-                                meta_with_constr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "MtWit")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_module_type _loc x1))),
+                                (meta_with_constr _loc x2))
                           | Ast.MtSig (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MtSig"))),
-                                  meta_loc _loc x0),
-                                meta_sig_item _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MtSig")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_sig_item _loc x1))
                           | Ast.MtQuo (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MtQuo"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MtQuo")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.MtFun (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "MtFun"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_module_type _loc x2),
-                                meta_module_type _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "MtFun")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_module_type _loc x2))),
+                                (meta_module_type _loc x3))
                           | Ast.MtId (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "MtId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "MtId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.MtNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "MtNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "MtNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_mutable_flag _loc =
+                          function
+                          | Ast.MuAnt x0 -> Ast.PaAnt (_loc, x0)
+                          | Ast.MuNil ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "MuNil")))))
+                          | Ast.MuMutable ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "MuMutable")))))
+                        and meta_override_flag _loc =
+                          function
+                          | Ast.OvAnt x0 -> Ast.PaAnt (_loc, x0)
+                          | Ast.OvNil ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "OvNil")))))
+                          | Ast.OvOverride ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "OvOverride")))))
                         and meta_patt _loc =
                           function
                           | Ast.PaLaz (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaLaz"))),
-                                  meta_loc _loc x0),
-                                meta_patt _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaLaz")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_patt _loc x1))
                           | Ast.PaVrn (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaVrn"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaVrn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaTyp (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaTyp"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaTyp")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.PaTyc (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaTyc"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaTyc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.PaTup (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaTup"))),
-                                  meta_loc _loc x0),
-                                meta_patt _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaTup")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_patt _loc x1))
                           | Ast.PaStr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaStr"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaStr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaEq (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaEq"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaRec (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaRec"))),
-                                  meta_loc _loc x0),
-                                meta_patt _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaRec")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_patt _loc x1))
                           | Ast.PaRng (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaRng"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaRng")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaOrp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaOrp"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaOrp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaOlbi (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "PaOlbi"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_patt _loc x2),
-                                meta_expr _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "PaOlbi")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_patt _loc x2))),
+                                (meta_expr _loc x3))
                           | Ast.PaOlb (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaOlb"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaOlb")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaLab (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaLab"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaLab")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaFlo (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaFlo"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaFlo")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaNativeInt (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaNativeInt"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaNativeInt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaInt64 (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaInt64"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaInt64")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaInt32 (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaInt32"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaInt32")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaInt (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaInt"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaInt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaChr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaChr"))),
-                                  meta_loc _loc x0),
-                                meta_string _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaChr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_string _loc x1))
                           | Ast.PaSem (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaSem"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaCom (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaCom"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaCom")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaArr (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaArr"))),
-                                  meta_loc _loc x0),
-                                meta_patt _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaArr")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_patt _loc x1))
                           | Ast.PaApp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaApp"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaApp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaAny x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "PaAny"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "PaAny")))))),
+                                (meta_loc _loc x0))
                           | Ast.PaAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.PaAli (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "PaAli"))),
-                                    meta_loc _loc x0),
-                                  meta_patt _loc x1),
-                                meta_patt _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "PaAli")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_patt _loc x1))),
+                                (meta_patt _loc x2))
                           | Ast.PaId (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "PaId"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "PaId")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.PaNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "PaNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "PaNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_private_flag _loc =
+                          function
+                          | Ast.PrAnt x0 -> Ast.PaAnt (_loc, x0)
+                          | Ast.PrNil ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "PrNil")))))
+                          | Ast.PrPrivate ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "PrPrivate")))))
                         and meta_rec_binding _loc =
                           function
                           | Ast.RbAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.RbEq (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "RbEq"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "RbEq")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.RbSem (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "RbSem"))),
-                                    meta_loc _loc x0),
-                                  meta_rec_binding _loc x1),
-                                meta_rec_binding _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "RbSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_rec_binding _loc x1))),
+                                (meta_rec_binding _loc x2))
                           | Ast.RbNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "RbNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "RbNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_rec_flag _loc =
+                          function
+                          | Ast.ReAnt x0 -> Ast.PaAnt (_loc, x0)
+                          | Ast.ReNil ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ReNil")))))
+                          | Ast.ReRecursive ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ReRecursive")))))
+                        and meta_row_var_flag _loc =
+                          function
+                          | Ast.RvAnt x0 -> Ast.PaAnt (_loc, x0)
+                          | Ast.RvNil ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "RvNil")))))
+                          | Ast.RvRowVar ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "RvRowVar")))))
                         and meta_sig_item _loc =
                           function
                           | Ast.SgAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.SgVal (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgVal"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgVal")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.SgTyp (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgTyp"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgTyp")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.SgOpn (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgOpn"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgOpn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.SgMty (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgMty"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgMty")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.SgRecMod (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgRecMod"))),
-                                  meta_loc _loc x0),
-                                meta_module_binding _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgRecMod")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_binding _loc x1))
                           | Ast.SgMod (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgMod"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgMod")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.SgInc (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgInc"))),
-                                  meta_loc _loc x0),
-                                meta_module_type _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgInc")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_type _loc x1))
                           | Ast.SgExt (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "SgExt"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_ctyp _loc x2),
-                                meta_meta_list meta_string _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "SgExt")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_ctyp _loc x2))),
+                                (meta_meta_list meta_string _loc x3))
                           | Ast.SgExc (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgExc"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgExc")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.SgDir (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgDir"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgDir")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.SgSem (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "SgSem"))),
-                                    meta_loc _loc x0),
-                                  meta_sig_item _loc x1),
-                                meta_sig_item _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "SgSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_sig_item _loc x1))),
+                                (meta_sig_item _loc x2))
                           | Ast.SgClt (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgClt"))),
-                                  meta_loc _loc x0),
-                                meta_class_type _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgClt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_type _loc x1))
                           | Ast.SgCls (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "SgCls"))),
-                                  meta_loc _loc x0),
-                                meta_class_type _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "SgCls")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_type _loc x1))
                           | Ast.SgNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "SgNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "SgNil")))))),
+                                (meta_loc _loc x0))
                         and meta_str_item _loc =
                           function
                           | Ast.StAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.StVal (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StVal"))),
-                                    meta_loc _loc x0),
-                                  meta_meta_bool _loc x1),
-                                meta_binding _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StVal")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_rec_flag _loc x1))),
+                                (meta_binding _loc x2))
                           | Ast.StTyp (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StTyp"))),
-                                  meta_loc _loc x0),
-                                meta_ctyp _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StTyp")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ctyp _loc x1))
                           | Ast.StOpn (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StOpn"))),
-                                  meta_loc _loc x0),
-                                meta_ident _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StOpn")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_ident _loc x1))
                           | Ast.StMty (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StMty"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_type _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StMty")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_type _loc x2))
                           | Ast.StRecMod (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StRecMod"))),
-                                  meta_loc _loc x0),
-                                meta_module_binding _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StRecMod")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_binding _loc x1))
                           | Ast.StMod (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StMod"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_module_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StMod")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_module_expr _loc x2))
                           | Ast.StInc (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StInc"))),
-                                  meta_loc _loc x0),
-                                meta_module_expr _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StInc")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_module_expr _loc x1))
                           | Ast.StExt (x0, x1, x2, x3) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaApp (_loc,
-                                      Ast.PaId (_loc,
-                                        Ast.IdAcc (_loc,
-                                          Ast.IdUid (_loc, "Ast"),
-                                          Ast.IdUid (_loc, "StExt"))),
-                                      meta_loc _loc x0),
-                                    meta_string _loc x1),
-                                  meta_ctyp _loc x2),
-                                meta_meta_list meta_string _loc x3)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaApp (_loc,
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Ast")),
+                                               (Ast.IdUid (_loc, "StExt")))))),
+                                         (meta_loc _loc x0))),
+                                      (meta_string _loc x1))),
+                                   (meta_ctyp _loc x2))),
+                                (meta_meta_list meta_string _loc x3))
                           | Ast.StExp (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StExp"))),
-                                  meta_loc _loc x0),
-                                meta_expr _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StExp")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_expr _loc x1))
                           | Ast.StExc (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StExc"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_meta_option meta_ident _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StExc")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_meta_option meta_ident _loc x2))
                           | Ast.StDir (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StDir"))),
-                                    meta_loc _loc x0),
-                                  meta_string _loc x1),
-                                meta_expr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StDir")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_string _loc x1))),
+                                (meta_expr _loc x2))
                           | Ast.StSem (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "StSem"))),
-                                    meta_loc _loc x0),
-                                  meta_str_item _loc x1),
-                                meta_str_item _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "StSem")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_str_item _loc x1))),
+                                (meta_str_item _loc x2))
                           | Ast.StClt (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StClt"))),
-                                  meta_loc _loc x0),
-                                meta_class_type _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StClt")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_type _loc x1))
                           | Ast.StCls (x0, x1) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                      Ast.IdUid (_loc, "StCls"))),
-                                  meta_loc _loc x0),
-                                meta_class_expr _loc x1)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, "Ast")),
+                                         (Ast.IdUid (_loc, "StCls")))))),
+                                   (meta_loc _loc x0))),
+                                (meta_class_expr _loc x1))
                           | Ast.StNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "StNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "StNil")))))),
+                                (meta_loc _loc x0))
+                        and meta_virtual_flag _loc =
+                          function
+                          | Ast.ViAnt x0 -> Ast.PaAnt (_loc, x0)
+                          | Ast.ViNil ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ViNil")))))
+                          | Ast.ViVirtual ->
+                              Ast.PaId (_loc,
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                   (Ast.IdUid (_loc, "ViVirtual")))))
                         and meta_with_constr _loc =
                           function
                           | Ast.WcAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                           | Ast.WcAnd (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "WcAnd"))),
-                                    meta_loc _loc x0),
-                                  meta_with_constr _loc x1),
-                                meta_with_constr _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcAnd")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_with_constr _loc x1))),
+                                (meta_with_constr _loc x2))
+                          | Ast.WcMoS (x0, x1, x2) ->
+                              Ast.PaApp (_loc,
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcMoS")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_ident _loc x2))
+                          | Ast.WcTyS (x0, x1, x2) ->
+                              Ast.PaApp (_loc,
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcTyS")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.WcMod (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "WcMod"))),
-                                    meta_loc _loc x0),
-                                  meta_ident _loc x1),
-                                meta_ident _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcMod")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ident _loc x1))),
+                                (meta_ident _loc x2))
                           | Ast.WcTyp (x0, x1, x2) ->
                               Ast.PaApp (_loc,
-                                Ast.PaApp (_loc,
-                                  Ast.PaApp (_loc,
-                                    Ast.PaId (_loc,
-                                      Ast.IdAcc (_loc,
-                                        Ast.IdUid (_loc, "Ast"),
-                                        Ast.IdUid (_loc, "WcTyp"))),
-                                    meta_loc _loc x0),
-                                  meta_ctyp _loc x1),
-                                meta_ctyp _loc x2)
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaApp (_loc,
+                                      (Ast.PaId (_loc,
+                                         (Ast.IdAcc (_loc,
+                                            (Ast.IdUid (_loc, "Ast")),
+                                            (Ast.IdUid (_loc, "WcTyp")))))),
+                                      (meta_loc _loc x0))),
+                                   (meta_ctyp _loc x1))),
+                                (meta_ctyp _loc x2))
                           | Ast.WcNil x0 ->
                               Ast.PaApp (_loc,
-                                Ast.PaId (_loc,
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                    Ast.IdUid (_loc, "WcNil"))),
-                                meta_loc _loc x0)
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Ast")),
+                                      (Ast.IdUid (_loc, "WcNil")))))),
+                                (meta_loc _loc x0))
                           
                       end
                       
@@ -11428,6 +12097,14 @@ module Struct =
                       let _x = o#loc _x in
                       let _x_i1 = o#ident _x_i1 in
                       let _x_i2 = o#ident _x_i2 in WcMod (_x, _x_i1, _x_i2)
+                  | WcTyS (_x, _x_i1, _x_i2) ->
+                      let _x = o#loc _x in
+                      let _x_i1 = o#ctyp _x_i1 in
+                      let _x_i2 = o#ctyp _x_i2 in WcTyS (_x, _x_i1, _x_i2)
+                  | WcMoS (_x, _x_i1, _x_i2) ->
+                      let _x = o#loc _x in
+                      let _x_i1 = o#ident _x_i1 in
+                      let _x_i2 = o#ident _x_i2 in WcMoS (_x, _x_i1, _x_i2)
                   | WcAnd (_x, _x_i1, _x_i2) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#with_constr _x_i1 in
@@ -11437,6 +12114,12 @@ module Struct =
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in WcAnt (_x, _x_i1)
                   
+                method virtual_flag : virtual_flag -> virtual_flag =
+                  function
+                  | ViVirtual -> ViVirtual
+                  | ViNil -> ViNil
+                  | ViAnt _x -> let _x = o#string _x in ViAnt _x
+                  
                 method str_item : str_item -> str_item =
                   function
                   | StNil _x -> let _x = o#loc _x in StNil _x
@@ -11494,7 +12177,7 @@ module Struct =
                       let _x_i1 = o#ctyp _x_i1 in StTyp (_x, _x_i1)
                   | StVal (_x, _x_i1, _x_i2) ->
                       let _x = o#loc _x in
-                      let _x_i1 = o#meta_bool _x_i1 in
+                      let _x_i1 = o#rec_flag _x_i1 in
                       let _x_i2 = o#binding _x_i2 in StVal (_x, _x_i1, _x_i2)
                   | StAnt (_x, _x_i1) ->
                       let _x = o#loc _x in
@@ -11558,6 +12241,18 @@ module Struct =
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in SgAnt (_x, _x_i1)
                   
+                method row_var_flag : row_var_flag -> row_var_flag =
+                  function
+                  | RvRowVar -> RvRowVar
+                  | RvNil -> RvNil
+                  | RvAnt _x -> let _x = o#string _x in RvAnt _x
+                  
+                method rec_flag : rec_flag -> rec_flag =
+                  function
+                  | ReRecursive -> ReRecursive
+                  | ReNil -> ReNil
+                  | ReAnt _x -> let _x = o#string _x in ReAnt _x
+                  
                 method rec_binding : rec_binding -> rec_binding =
                   function
                   | RbNil _x -> let _x = o#loc _x in RbNil _x
@@ -11574,6 +12269,12 @@ module Struct =
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in RbAnt (_x, _x_i1)
                   
+                method private_flag : private_flag -> private_flag =
+                  function
+                  | PrPrivate -> PrPrivate
+                  | PrNil -> PrNil
+                  | PrAnt _x -> let _x = o#string _x in PrAnt _x
+                  
                 method patt : patt -> patt =
                   function
                   | PaNil _x -> let _x = o#loc _x in PaNil _x
@@ -11670,6 +12371,18 @@ module Struct =
                       let _x = o#loc _x in
                       let _x_i1 = o#patt _x_i1 in PaLaz (_x, _x_i1)
                   
+                method override_flag : override_flag -> override_flag =
+                  function
+                  | OvOverride -> OvOverride
+                  | OvNil -> OvNil
+                  | OvAnt _x -> let _x = o#string _x in OvAnt _x
+                  
+                method mutable_flag : mutable_flag -> mutable_flag =
+                  function
+                  | MuMutable -> MuMutable
+                  | MuNil -> MuNil
+                  | MuAnt _x -> let _x = o#string _x in MuAnt _x
+                  
                 method module_type : module_type -> module_type =
                   function
                   | MtNil _x -> let _x = o#loc _x in MtNil _x
@@ -11722,6 +12435,9 @@ module Struct =
                       let _x_i1 = o#module_expr _x_i1 in
                       let _x_i2 = o#module_type _x_i2
                       in MeTyc (_x, _x_i1, _x_i2)
+                  | MePkg (_x, _x_i1) ->
+                      let _x = o#loc _x in
+                      let _x_i1 = o#expr _x_i1 in MePkg (_x, _x_i1)
                   | MeAnt (_x, _x_i1) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in MeAnt (_x, _x_i1)
@@ -11871,7 +12587,7 @@ module Struct =
                       let _x_i1 = o#string _x_i1 in
                       let _x_i2 = o#expr _x_i2 in
                       let _x_i3 = o#expr _x_i3 in
-                      let _x_i4 = o#meta_bool _x_i4 in
+                      let _x_i4 = o#direction_flag _x_i4 in
                       let _x_i5 = o#expr _x_i5
                       in ExFor (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5)
                   | ExFun (_x, _x_i1) ->
@@ -11904,7 +12620,7 @@ module Struct =
                       let _x_i1 = o#expr _x_i1 in ExLaz (_x, _x_i1)
                   | ExLet (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
-                      let _x_i1 = o#meta_bool _x_i1 in
+                      let _x_i1 = o#rec_flag _x_i1 in
                       let _x_i2 = o#binding _x_i2 in
                       let _x_i3 = o#expr _x_i3
                       in ExLet (_x, _x_i1, _x_i2, _x_i3)
@@ -11979,6 +12695,19 @@ module Struct =
                       let _x = o#loc _x in
                       let _x_i1 = o#ident _x_i1 in
                       let _x_i2 = o#expr _x_i2 in ExOpI (_x, _x_i1, _x_i2)
+                  | ExFUN (_x, _x_i1, _x_i2) ->
+                      let _x = o#loc _x in
+                      let _x_i1 = o#string _x_i1 in
+                      let _x_i2 = o#expr _x_i2 in ExFUN (_x, _x_i1, _x_i2)
+                  | ExPkg (_x, _x_i1) ->
+                      let _x = o#loc _x in
+                      let _x_i1 = o#module_expr _x_i1 in ExPkg (_x, _x_i1)
+                  
+                method direction_flag : direction_flag -> direction_flag =
+                  function
+                  | DiTo -> DiTo
+                  | DiDownto -> DiDownto
+                  | DiAnt _x -> let _x = o#string _x in DiAnt _x
                   
                 method ctyp : ctyp -> ctyp =
                   function
@@ -12025,7 +12754,7 @@ module Struct =
                   | TyObj (_x, _x_i1, _x_i2) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#ctyp _x_i1 in
-                      let _x_i2 = o#meta_bool _x_i2
+                      let _x_i2 = o#row_var_flag _x_i2
                       in TyObj (_x, _x_i1, _x_i2)
                   | TyOlb (_x, _x_i1, _x_i2) ->
                       let _x = o#loc _x in
@@ -12112,6 +12841,9 @@ module Struct =
                       let _x = o#loc _x in
                       let _x_i1 = o#ctyp _x_i1 in
                       let _x_i2 = o#ctyp _x_i2 in TyOfAmp (_x, _x_i1, _x_i2)
+                  | TyPkg (_x, _x_i1) ->
+                      let _x = o#loc _x in
+                      let _x_i1 = o#module_type _x_i1 in TyPkg (_x, _x_i1)
                   | TyAnt (_x, _x_i1) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in TyAnt (_x, _x_i1)
@@ -12121,7 +12853,7 @@ module Struct =
                   | CtNil _x -> let _x = o#loc _x in CtNil _x
                   | CtCon (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
-                      let _x_i1 = o#meta_bool _x_i1 in
+                      let _x_i1 = o#virtual_flag _x_i1 in
                       let _x_i2 = o#ident _x_i2 in
                       let _x_i3 = o#ctyp _x_i3
                       in CtCon (_x, _x_i1, _x_i2, _x_i3)
@@ -12166,36 +12898,40 @@ module Struct =
                       let _x = o#loc _x in
                       let _x_i1 = o#ctyp _x_i1 in
                       let _x_i2 = o#ctyp _x_i2 in CrCtr (_x, _x_i1, _x_i2)
-                  | CrInh (_x, _x_i1, _x_i2) ->
+                  | CrInh (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
-                      let _x_i1 = o#class_expr _x_i1 in
-                      let _x_i2 = o#string _x_i2 in CrInh (_x, _x_i1, _x_i2)
+                      let _x_i1 = o#override_flag _x_i1 in
+                      let _x_i2 = o#class_expr _x_i2 in
+                      let _x_i3 = o#string _x_i3
+                      in CrInh (_x, _x_i1, _x_i2, _x_i3)
                   | CrIni (_x, _x_i1) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#expr _x_i1 in CrIni (_x, _x_i1)
-                  | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
+                  | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in
-                      let _x_i2 = o#meta_bool _x_i2 in
-                      let _x_i3 = o#expr _x_i3 in
-                      let _x_i4 = o#ctyp _x_i4
-                      in CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4)
-                  | CrVal (_x, _x_i1, _x_i2, _x_i3) ->
+                      let _x_i2 = o#override_flag _x_i2 in
+                      let _x_i3 = o#private_flag _x_i3 in
+                      let _x_i4 = o#expr _x_i4 in
+                      let _x_i5 = o#ctyp _x_i5
+                      in CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5)
+                  | CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in
-                      let _x_i2 = o#meta_bool _x_i2 in
-                      let _x_i3 = o#expr _x_i3
-                      in CrVal (_x, _x_i1, _x_i2, _x_i3)
+                      let _x_i2 = o#override_flag _x_i2 in
+                      let _x_i3 = o#mutable_flag _x_i3 in
+                      let _x_i4 = o#expr _x_i4
+                      in CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4)
                   | CrVir (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in
-                      let _x_i2 = o#meta_bool _x_i2 in
+                      let _x_i2 = o#private_flag _x_i2 in
                       let _x_i3 = o#ctyp _x_i3
                       in CrVir (_x, _x_i1, _x_i2, _x_i3)
                   | CrVvr (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in
-                      let _x_i2 = o#meta_bool _x_i2 in
+                      let _x_i2 = o#mutable_flag _x_i2 in
                       let _x_i3 = o#ctyp _x_i3
                       in CrVvr (_x, _x_i1, _x_i2, _x_i3)
                   | CrAnt (_x, _x_i1) ->
@@ -12220,20 +12956,20 @@ module Struct =
                   | CgMth (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in
-                      let _x_i2 = o#meta_bool _x_i2 in
+                      let _x_i2 = o#private_flag _x_i2 in
                       let _x_i3 = o#ctyp _x_i3
                       in CgMth (_x, _x_i1, _x_i2, _x_i3)
                   | CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in
-                      let _x_i2 = o#meta_bool _x_i2 in
-                      let _x_i3 = o#meta_bool _x_i3 in
+                      let _x_i2 = o#mutable_flag _x_i2 in
+                      let _x_i3 = o#virtual_flag _x_i3 in
                       let _x_i4 = o#ctyp _x_i4
                       in CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4)
                   | CgVir (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
                       let _x_i1 = o#string _x_i1 in
-                      let _x_i2 = o#meta_bool _x_i2 in
+                      let _x_i2 = o#private_flag _x_i2 in
                       let _x_i3 = o#ctyp _x_i3
                       in CgVir (_x, _x_i1, _x_i2, _x_i3)
                   | CgAnt (_x, _x_i1) ->
@@ -12249,7 +12985,7 @@ module Struct =
                       let _x_i2 = o#expr _x_i2 in CeApp (_x, _x_i1, _x_i2)
                   | CeCon (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
-                      let _x_i1 = o#meta_bool _x_i1 in
+                      let _x_i1 = o#virtual_flag _x_i1 in
                       let _x_i2 = o#ident _x_i2 in
                       let _x_i3 = o#ctyp _x_i3
                       in CeCon (_x, _x_i1, _x_i2, _x_i3)
@@ -12260,7 +12996,7 @@ module Struct =
                       in CeFun (_x, _x_i1, _x_i2)
                   | CeLet (_x, _x_i1, _x_i2, _x_i3) ->
                       let _x = o#loc _x in
-                      let _x_i1 = o#meta_bool _x_i1 in
+                      let _x_i1 = o#rec_flag _x_i1 in
                       let _x_i2 = o#binding _x_i2 in
                       let _x_i3 = o#class_expr _x_i3
                       in CeLet (_x, _x_i1, _x_i2, _x_i3)
@@ -12329,6 +13065,12 @@ module Struct =
                   | WcMod (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
                       let o = o#ident _x_i1 in let o = o#ident _x_i2 in o
+                  | WcTyS (_x, _x_i1, _x_i2) ->
+                      let o = o#loc _x in
+                      let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
+                  | WcMoS (_x, _x_i1, _x_i2) ->
+                      let o = o#loc _x in
+                      let o = o#ident _x_i1 in let o = o#ident _x_i2 in o
                   | WcAnd (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
                       let o = o#with_constr _x_i1 in
@@ -12336,6 +13078,12 @@ module Struct =
                   | WcAnt (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#string _x_i1 in o
                   
+                method virtual_flag : virtual_flag -> 'self_type =
+                  function
+                  | ViVirtual -> o
+                  | ViNil -> o
+                  | ViAnt _x -> let o = o#string _x in o
+                  
                 method str_item : str_item -> 'self_type =
                   function
                   | StNil _x -> let o = o#loc _x in o
@@ -12379,7 +13127,7 @@ module Struct =
                       let o = o#loc _x in let o = o#ctyp _x_i1 in o
                   | StVal (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
-                      let o = o#meta_bool _x_i1 in
+                      let o = o#rec_flag _x_i1 in
                       let o = o#binding _x_i2 in o
                   | StAnt (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#string _x_i1 in o
@@ -12427,6 +13175,18 @@ module Struct =
                   | SgAnt (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#string _x_i1 in o
                   
+                method row_var_flag : row_var_flag -> 'self_type =
+                  function
+                  | RvRowVar -> o
+                  | RvNil -> o
+                  | RvAnt _x -> let o = o#string _x in o
+                  
+                method rec_flag : rec_flag -> 'self_type =
+                  function
+                  | ReRecursive -> o
+                  | ReNil -> o
+                  | ReAnt _x -> let o = o#string _x in o
+                  
                 method rec_binding : rec_binding -> 'self_type =
                   function
                   | RbNil _x -> let o = o#loc _x in o
@@ -12440,6 +13200,12 @@ module Struct =
                   | RbAnt (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#string _x_i1 in o
                   
+                method private_flag : private_flag -> 'self_type =
+                  function
+                  | PrPrivate -> o
+                  | PrNil -> o
+                  | PrAnt _x -> let o = o#string _x in o
+                  
                 method patt : patt -> 'self_type =
                   function
                   | PaNil _x -> let o = o#loc _x in o
@@ -12509,6 +13275,18 @@ module Struct =
                   | PaLaz (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#patt _x_i1 in o
                   
+                method override_flag : override_flag -> 'self_type =
+                  function
+                  | OvOverride -> o
+                  | OvNil -> o
+                  | OvAnt _x -> let o = o#string _x in o
+                  
+                method mutable_flag : mutable_flag -> 'self_type =
+                  function
+                  | MuMutable -> o
+                  | MuNil -> o
+                  | MuAnt _x -> let o = o#string _x in o
+                  
                 method module_type : module_type -> 'self_type =
                   function
                   | MtNil _x -> let o = o#loc _x in o
@@ -12550,6 +13328,8 @@ module Struct =
                       let o = o#loc _x in
                       let o = o#module_expr _x_i1 in
                       let o = o#module_type _x_i2 in o
+                  | MePkg (_x, _x_i1) ->
+                      let o = o#loc _x in let o = o#expr _x_i1 in o
                   | MeAnt (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#string _x_i1 in o
                   
@@ -12671,7 +13451,8 @@ module Struct =
                       let o = o#string _x_i1 in
                       let o = o#expr _x_i2 in
                       let o = o#expr _x_i3 in
-                      let o = o#meta_bool _x_i4 in let o = o#expr _x_i5 in o
+                      let o = o#direction_flag _x_i4 in
+                      let o = o#expr _x_i5 in o
                   | ExFun (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#match_case _x_i1 in o
                   | ExIfe (_x, _x_i1, _x_i2, _x_i3) ->
@@ -12693,7 +13474,7 @@ module Struct =
                       let o = o#loc _x in let o = o#expr _x_i1 in o
                   | ExLet (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
-                      let o = o#meta_bool _x_i1 in
+                      let o = o#rec_flag _x_i1 in
                       let o = o#binding _x_i2 in let o = o#expr _x_i3 in o
                   | ExLmd (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
@@ -12747,6 +13528,17 @@ module Struct =
                   | ExOpI (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
                       let o = o#ident _x_i1 in let o = o#expr _x_i2 in o
+                  | ExFUN (_x, _x_i1, _x_i2) ->
+                      let o = o#loc _x in
+                      let o = o#string _x_i1 in let o = o#expr _x_i2 in o
+                  | ExPkg (_x, _x_i1) ->
+                      let o = o#loc _x in let o = o#module_expr _x_i1 in o
+                  
+                method direction_flag : direction_flag -> 'self_type =
+                  function
+                  | DiTo -> o
+                  | DiDownto -> o
+                  | DiAnt _x -> let o = o#string _x in o
                   
                 method ctyp : ctyp -> 'self_type =
                   function
@@ -12784,7 +13576,8 @@ module Struct =
                       in o
                   | TyObj (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
-                      let o = o#ctyp _x_i1 in let o = o#meta_bool _x_i2 in o
+                      let o = o#ctyp _x_i1 in
+                      let o = o#row_var_flag _x_i2 in o
                   | TyOlb (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
                       let o = o#string _x_i1 in let o = o#ctyp _x_i2 in o
@@ -12845,6 +13638,8 @@ module Struct =
                   | TyOfAmp (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
                       let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
+                  | TyPkg (_x, _x_i1) ->
+                      let o = o#loc _x in let o = o#module_type _x_i1 in o
                   | TyAnt (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#string _x_i1 in o
                   
@@ -12853,7 +13648,7 @@ module Struct =
                   | CtNil _x -> let o = o#loc _x in o
                   | CtCon (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
-                      let o = o#meta_bool _x_i1 in
+                      let o = o#virtual_flag _x_i1 in
                       let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o
                   | CtFun (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
@@ -12887,29 +13682,35 @@ module Struct =
                   | CrCtr (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
                       let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
-                  | CrInh (_x, _x_i1, _x_i2) ->
+                  | CrInh (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
-                      let o = o#class_expr _x_i1 in
-                      let o = o#string _x_i2 in o
+                      let o = o#override_flag _x_i1 in
+                      let o = o#class_expr _x_i2 in
+                      let o = o#string _x_i3 in o
                   | CrIni (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#expr _x_i1 in o
-                  | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
+                  | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5) ->
                       let o = o#loc _x in
                       let o = o#string _x_i1 in
-                      let o = o#meta_bool _x_i2 in
-                      let o = o#expr _x_i3 in let o = o#ctyp _x_i4 in o
-                  | CrVal (_x, _x_i1, _x_i2, _x_i3) ->
+                      let o = o#override_flag _x_i2 in
+                      let o = o#private_flag _x_i3 in
+                      let o = o#expr _x_i4 in let o = o#ctyp _x_i5 in o
+                  | CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
                       let o = o#loc _x in
                       let o = o#string _x_i1 in
-                      let o = o#meta_bool _x_i2 in let o = o#expr _x_i3 in o
+                      let o = o#override_flag _x_i2 in
+                      let o = o#mutable_flag _x_i3 in
+                      let o = o#expr _x_i4 in o
                   | CrVir (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
                       let o = o#string _x_i1 in
-                      let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
+                      let o = o#private_flag _x_i2 in
+                      let o = o#ctyp _x_i3 in o
                   | CrVvr (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
                       let o = o#string _x_i1 in
-                      let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
+                      let o = o#mutable_flag _x_i2 in
+                      let o = o#ctyp _x_i3 in o
                   | CrAnt (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#string _x_i1 in o
                   
@@ -12928,16 +13729,19 @@ module Struct =
                   | CgMth (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
                       let o = o#string _x_i1 in
-                      let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
+                      let o = o#private_flag _x_i2 in
+                      let o = o#ctyp _x_i3 in o
                   | CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
                       let o = o#loc _x in
                       let o = o#string _x_i1 in
-                      let o = o#meta_bool _x_i2 in
-                      let o = o#meta_bool _x_i3 in let o = o#ctyp _x_i4 in o
+                      let o = o#mutable_flag _x_i2 in
+                      let o = o#virtual_flag _x_i3 in
+                      let o = o#ctyp _x_i4 in o
                   | CgVir (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
                       let o = o#string _x_i1 in
-                      let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
+                      let o = o#private_flag _x_i2 in
+                      let o = o#ctyp _x_i3 in o
                   | CgAnt (_x, _x_i1) ->
                       let o = o#loc _x in let o = o#string _x_i1 in o
                   
@@ -12949,14 +13753,14 @@ module Struct =
                       let o = o#class_expr _x_i1 in let o = o#expr _x_i2 in o
                   | CeCon (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
-                      let o = o#meta_bool _x_i1 in
+                      let o = o#virtual_flag _x_i1 in
                       let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o
                   | CeFun (_x, _x_i1, _x_i2) ->
                       let o = o#loc _x in
                       let o = o#patt _x_i1 in let o = o#class_expr _x_i2 in o
                   | CeLet (_x, _x_i1, _x_i2, _x_i3) ->
                       let o = o#loc _x in
-                      let o = o#meta_bool _x_i1 in
+                      let o = o#rec_flag _x_i1 in
                       let o = o#binding _x_i2 in
                       let o = o#class_expr _x_i3 in o
                   | CeStr (_x, _x_i1, _x_i2) ->
@@ -13308,11 +14112,11 @@ module Struct =
                 | Loc.Exc_located (qloc, exc) ->
                     raise
                       (Loc.Exc_located (qloc,
-                         Error.E ((name, pos_tag, Finding, exc))))
+                         (Error.E ((name, pos_tag, Finding, exc)))))
                 | exc ->
                     raise
                       (Loc.Exc_located (loc,
-                         Error.E ((name, pos_tag, Finding, exc)))) in
+                         (Error.E ((name, pos_tag, Finding, exc))))) in
               let loc = Loc.join (Loc.move `start quotation.q_shift loc)
               in expand_quotation loc expander pos_tag quotation
               
@@ -13433,13 +14237,17 @@ module Struct =
               | Ptyp_poly (_, _) -> t
               | _ -> { (t) with ptyp_desc = Ptyp_poly ([], t); }
               
-            let mb2b =
+            let mkvirtual =
               function
-              | Ast.BTrue -> true
-              | Ast.BFalse -> false
-              | Ast.BAnt _ -> assert false
+              | Ast.ViVirtual -> Virtual
+              | Ast.ViNil -> Concrete
+              | _ -> assert false
               
-            let mkvirtual m = if mb2b m then Virtual else Concrete
+            let mkdirection =
+              function
+              | Ast.DiTo -> Upto
+              | Ast.DiDownto -> Downto
+              | _ -> assert false
               
             let lident s = Lident s
               
@@ -13468,9 +14276,9 @@ module Struct =
               
             let mkrf =
               function
-              | Ast.BTrue -> Recursive
-              | Ast.BFalse -> Nonrecursive
-              | Ast.BAnt _ -> assert false
+              | Ast.ReRecursive -> Recursive
+              | Ast.ReNil -> Nonrecursive
+              | _ -> assert false
               
             let mkli s =
               let rec loop f =
@@ -13488,7 +14296,7 @@ module Struct =
                 | Ast.IdAcc (_, i1, i2) -> self i2 (Some (self i1 acc))
                 | Ast.IdApp (_, i1, i2) ->
                     let i' =
-                      Lapply (fst (self i1 None), fst (self i2 None)) in
+                      Lapply ((fst (self i1 None)), (fst (self i2 None))) in
                     let x =
                       (match acc with
                        | None -> i'
@@ -13566,30 +14374,36 @@ module Struct =
                      | (t, TyQuo (_, s)) -> (t, s)
                      | (TyQuo (_, s), t) -> (t, s)
                      | _ -> error loc "invalid alias type")
-                  in mktyp loc (Ptyp_alias (ctyp t, i))
+                  in mktyp loc (Ptyp_alias ((ctyp t), i))
               | TyAny loc -> mktyp loc Ptyp_any
               | (TyApp (loc, _, _) as f) ->
                   let (f, al) = ctyp_fa [] f in
                   let (is_cls, li) = ctyp_long_id f
                   in
                     if is_cls
-                    then mktyp loc (Ptyp_class (li, List.map ctyp al, []))
-                    else mktyp loc (Ptyp_constr (li, List.map ctyp al))
+                    then mktyp loc (Ptyp_class (li, (List.map ctyp al), []))
+                    else mktyp loc (Ptyp_constr (li, (List.map ctyp al)))
               | TyArr (loc, (TyLab (_, lab, t1)), t2) ->
-                  mktyp loc (Ptyp_arrow (lab, ctyp t1, ctyp t2))
+                  mktyp loc (Ptyp_arrow (lab, (ctyp t1), (ctyp t2)))
               | TyArr (loc, (TyOlb (loc1, lab, t1)), t2) ->
                   let t1 =
-                    TyApp (loc1, Ast.TyId (loc1, Ast.IdLid (loc1, "option")),
-                      t1)
-                  in mktyp loc (Ptyp_arrow ("?" ^ lab, ctyp t1, ctyp t2))
+                    TyApp (loc1,
+                      (Ast.TyId (loc1, (Ast.IdLid (loc1, "option")))), t1)
+                  in
+                    mktyp loc
+                      (Ptyp_arrow (("?" ^ lab), (ctyp t1), (ctyp t2)))
               | TyArr (loc, t1, t2) ->
-                  mktyp loc (Ptyp_arrow ("", ctyp t1, ctyp t2))
-              | Ast.TyObj (loc, fl, Ast.BFalse) ->
+                  mktyp loc (Ptyp_arrow ("", (ctyp t1), (ctyp t2)))
+              | Ast.TyObj (loc, fl, Ast.RvNil) ->
                   mktyp loc (Ptyp_object (meth_list fl []))
-              | Ast.TyObj (loc, fl, Ast.BTrue) ->
+              | Ast.TyObj (loc, fl, Ast.RvRowVar) ->
                   mktyp loc
                     (Ptyp_object (meth_list fl [ mkfield loc Pfield_var ]))
-              | TyCls (loc, id) -> mktyp loc (Ptyp_class (ident id, [], []))
+              | TyCls (loc, id) ->
+                  mktyp loc (Ptyp_class ((ident id), [], []))
+              | Ast.TyPkg (loc, pt) ->
+                  let (i, cs) = package_type pt
+                  in mktyp loc (Ptyp_package (i, cs))
               | TyLab (loc, _, _) ->
                   error loc "labelled type not allowed here"
               | TyMan (loc, _, _) ->
@@ -13597,7 +14411,7 @@ module Struct =
               | TyOlb (loc, _, _) ->
                   error loc "labelled type not allowed here"
               | TyPol (loc, t1, t2) ->
-                  mktyp loc (Ptyp_poly (ty_var_list_of_ctyp t1, ctyp t2))
+                  mktyp loc (Ptyp_poly ((ty_var_list_of_ctyp t1), (ctyp t2)))
               | TyQuo (loc, s) -> mktyp loc (Ptyp_var s)
               | TyRec (loc, _) -> error loc "record type not allowed here"
               | TySum (loc, _) -> error loc "sum type not allowed here"
@@ -13618,28 +14432,29 @@ module Struct =
                     (Ptyp_tuple
                        (List.map ctyp (list_of_ctyp t1 (list_of_ctyp t2 []))))
               | Ast.TyVrnEq (loc, t) ->
-                  mktyp loc (Ptyp_variant (row_field t, true, None))
+                  mktyp loc (Ptyp_variant ((row_field t), true, None))
               | Ast.TyVrnSup (loc, t) ->
-                  mktyp loc (Ptyp_variant (row_field t, false, None))
+                  mktyp loc (Ptyp_variant ((row_field t), false, None))
               | Ast.TyVrnInf (loc, t) ->
-                  mktyp loc (Ptyp_variant (row_field t, true, Some []))
+                  mktyp loc (Ptyp_variant ((row_field t), true, (Some [])))
               | Ast.TyVrnInfSup (loc, t, t') ->
                   mktyp loc
-                    (Ptyp_variant (row_field t, true, Some (name_tags t')))
+                    (Ptyp_variant ((row_field t), true,
+                       (Some (name_tags t'))))
               | TyAnt (loc, _) -> error loc "antiquotation not allowed here"
               | TyOfAmp (_, _, _) | TyAmp (_, _, _) | TySta (_, _, _) |
                   TyCom (_, _, _) | TyVrn (_, _) | TyQuM (_, _) |
                   TyQuP (_, _) | TyDcl (_, _, _, _, _) |
-                  TyObj (_, _, (BAnt _)) | TyNil _ | TyTup (_, _) ->
+                  TyObj (_, _, (RvAnt _)) | TyNil _ | TyTup (_, _) ->
                   assert false
             and row_field =
               function
               | Ast.TyNil _ -> []
               | Ast.TyVrn (_, i) -> [ Rtag (i, true, []) ]
               | Ast.TyOfAmp (_, (Ast.TyVrn (_, i)), t) ->
-                  [ Rtag (i, true, List.map ctyp (list_of_ctyp t [])) ]
+                  [ Rtag (i, true, (List.map ctyp (list_of_ctyp t []))) ]
               | Ast.TyOf (_, (Ast.TyVrn (_, i)), t) ->
-                  [ Rtag (i, false, List.map ctyp (list_of_ctyp t [])) ]
+                  [ Rtag (i, false, (List.map ctyp (list_of_ctyp t []))) ]
               | Ast.TyOr (_, t1, t2) -> (row_field t1) @ (row_field t2)
               | t -> [ Rinherit (ctyp t) ]
             and name_tags =
@@ -13652,8 +14467,25 @@ module Struct =
               | Ast.TyNil _ -> acc
               | Ast.TySem (_, t1, t2) -> meth_list t1 (meth_list t2 acc)
               | Ast.TyCol (loc, (Ast.TyId (_, (Ast.IdLid (_, lab)))), t) ->
-                  (mkfield loc (Pfield (lab, mkpolytype (ctyp t)))) :: acc
+                  (mkfield loc (Pfield (lab, (mkpolytype (ctyp t))))) :: acc
               | _ -> assert false
+            and package_type_constraints wc acc =
+              match wc with
+              | Ast.WcNil _ -> acc
+              | Ast.WcTyp (_, (Ast.TyId (_, (Ast.IdLid (_, id)))), ct) ->
+                  (id, (ctyp ct)) :: acc
+              | Ast.WcAnd (_, wc1, wc2) ->
+                  package_type_constraints wc1
+                    (package_type_constraints wc2 acc)
+              | _ ->
+                  error (loc_of_with_constr wc)
+                    "unexpected `with constraint' for a package type"
+            and package_type : module_type -> package_type =
+              function
+              | Ast.MtWit (_, (Ast.MtId (_, i)), wc) ->
+                  ((long_uident i), (package_type_constraints wc []))
+              | Ast.MtId (_, i) -> ((long_uident i), [])
+              | mt -> error (loc_of_module_type mt) "unexpected package type"
               
             let mktype loc tl cl tk tp tm =
               let (params, variance) = List.split tl
@@ -13670,7 +14502,11 @@ module Struct =
               
             let mkprivate' m = if m then Private else Public
               
-            let mkprivate m = mkprivate' (mb2b m)
+            let mkprivate =
+              function
+              | Ast.PrPrivate -> Private
+              | Ast.PrNil -> Public
+              | _ -> assert false
               
             let mktrecord =
               function
@@ -13725,7 +14561,11 @@ module Struct =
               | Ast.LCons (x, xs) -> x :: (list_of_meta_list xs)
               | Ast.LAnt _ -> assert false
               
-            let mkmutable m = if mb2b m then Mutable else Immutable
+            let mkmutable =
+              function
+              | Ast.MuMutable -> Mutable
+              | Ast.MuNil -> Immutable
+              | _ -> assert false
               
             let paolab lab p =
               match (lab, p) with
@@ -13766,28 +14606,36 @@ module Struct =
               | Ast.TyId (_, i) -> ((ident i), acc)
               | _ -> assert false
               
+            let mkwithtyp pwith_type loc id_tpl ct =
+              let (id, tpl) = type_parameters_and_type_name id_tpl [] in
+              let (params, variance) = List.split tpl in
+              let (kind, priv, ct) = opt_private_ctyp ct
+              in
+                (id,
+                 (pwith_type
+                    {
+                      ptype_params = params;
+                      ptype_cstrs = [];
+                      ptype_kind = kind;
+                      ptype_private = priv;
+                      ptype_manifest = Some ct;
+                      ptype_loc = mkloc loc;
+                      ptype_variance = variance;
+                    }))
+              
             let rec mkwithc wc acc =
               match wc with
-              | WcNil _ -> acc
-              | WcTyp (loc, id_tpl, ct) ->
-                  let (id, tpl) = type_parameters_and_type_name id_tpl [] in
-                  let (params, variance) = List.split tpl in
-                  let (kind, priv, ct) = opt_private_ctyp ct
-                  in
-                    (id,
-                     (Pwith_type
-                        {
-                          ptype_params = params;
-                          ptype_cstrs = [];
-                          ptype_kind = kind;
-                          ptype_private = priv;
-                          ptype_manifest = Some ct;
-                          ptype_loc = mkloc loc;
-                          ptype_variance = variance;
-                        })) ::
-                      acc
-              | WcMod (_, i1, i2) ->
+              | Ast.WcNil _ -> acc
+              | Ast.WcTyp (loc, id_tpl, ct) ->
+                  (mkwithtyp (fun x -> Pwith_type x) loc id_tpl ct) :: acc
+              | Ast.WcMod (_, i1, i2) ->
                   ((long_uident i1), (Pwith_module (long_uident i2))) :: acc
+              | Ast.WcTyS (loc, id_tpl, ct) ->
+                  (mkwithtyp (fun x -> Pwith_typesubst x) loc id_tpl ct) ::
+                    acc
+              | Ast.WcMoS (_, i1, i2) ->
+                  ((long_uident i1), (Pwith_modsubst (long_uident i2))) ::
+                    acc
               | Ast.WcAnd (_, wc1, wc2) -> mkwithc wc1 (mkwithc wc2 acc)
               | Ast.WcAnt (loc, _) ->
                   error loc "bad with constraint (antiquotation)"
@@ -13802,8 +14650,8 @@ module Struct =
               then mkghpat loc (Ppat_constant (Const_char c1))
               else
                 mkghpat loc
-                  (Ppat_or (mkghpat loc (Ppat_constant (Const_char c1)),
-                     deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2))
+                  (Ppat_or ((mkghpat loc (Ppat_constant (Const_char c1))),
+                     (deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2)))
               
             let rec mkrangepat loc c1 c2 =
               if c1 > c2
@@ -13813,16 +14661,17 @@ module Struct =
                 then mkpat loc (Ppat_constant (Const_char c1))
                 else
                   mkpat loc
-                    (Ppat_or (mkghpat loc (Ppat_constant (Const_char c1)),
-                       deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2))
+                    (Ppat_or ((mkghpat loc (Ppat_constant (Const_char c1))),
+                       (deep_mkrangepat loc (Char.chr ((Char.code c1) + 1))
+                          c2)))
               
             let rec patt =
               function
               | Ast.PaId (loc, (Ast.IdLid (_, s))) -> mkpat loc (Ppat_var s)
               | Ast.PaId (loc, i) ->
                   let p =
-                    Ppat_construct (long_uident ~conv_con i, None,
-                      constructors_arity ())
+                    Ppat_construct ((long_uident ~conv_con i), None,
+                      (constructors_arity ()))
                   in mkpat loc p
               | PaAli (loc, p1, p2) ->
                   let (p, i) =
@@ -13830,14 +14679,14 @@ module Struct =
                      | (p, Ast.PaId (_, (Ast.IdLid (_, s)))) -> (p, s)
                      | (Ast.PaId (_, (Ast.IdLid (_, s))), p) -> (p, s)
                      | _ -> error loc "invalid alias pattern")
-                  in mkpat loc (Ppat_alias (patt p, i))
+                  in mkpat loc (Ppat_alias ((patt p), i))
               | PaAnt (loc, _) -> error loc "antiquotation not allowed here"
               | PaAny loc -> mkpat loc Ppat_any
               | Ast.PaApp (loc, (Ast.PaId (_, (Ast.IdUid (_, s)))),
                   (Ast.PaTup (_, (Ast.PaAny loc_any)))) ->
                   mkpat loc
-                    (Ppat_construct (lident (conv_con s),
-                       Some (mkpat loc_any Ppat_any), false))
+                    (Ppat_construct ((lident (conv_con s)),
+                       (Some (mkpat loc_any Ppat_any)), false))
               | (PaApp (loc, _, _) as f) ->
                   let (f, al) = patt_fa [] f in
                   let al = List.map patt al
@@ -13848,13 +14697,15 @@ module Struct =
                          then
                            mkpat loc
                              (Ppat_construct (li,
-                                Some (mkpat loc (Ppat_tuple al)), true))
+                                (Some (mkpat loc (Ppat_tuple al))), true))
                          else
                            (let a =
                               match al with
                               | [ a ] -> a
                               | _ -> mkpat loc (Ppat_tuple al)
-                            in mkpat loc (Ppat_construct (li, Some a, false)))
+                            in
+                              mkpat loc
+                                (Ppat_construct (li, (Some a), false)))
                      | Ppat_variant (s, None) ->
                          let a =
                            if constructors_arity ()
@@ -13863,7 +14714,7 @@ module Struct =
                              (match al with
                               | [ a ] -> a
                               | _ -> mkpat loc (Ppat_tuple al))
-                         in mkpat loc (Ppat_variant (s, Some a))
+                         in mkpat loc (Ppat_variant (s, (Some a)))
                      | _ ->
                          error (loc_of_patt f)
                            "this is not a constructor, it cannot be applied in a pattern")
@@ -13911,7 +14762,8 @@ module Struct =
                   error loc "labeled pattern not allowed here"
               | PaOlb (loc, _, _) | PaOlbi (loc, _, _, _) ->
                   error loc "labeled pattern not allowed here"
-              | PaOrp (loc, p1, p2) -> mkpat loc (Ppat_or (patt p1, patt p2))
+              | PaOrp (loc, p1, p2) ->
+                  mkpat loc (Ppat_or ((patt p1), (patt p2)))
               | PaRng (loc, p1, p2) ->
                   (match (p1, p2) with
                    | (PaChr (loc1, c1), PaChr (loc2, c2)) ->
@@ -13939,7 +14791,7 @@ module Struct =
                        (List.map patt (list_of_patt p1 (list_of_patt p2 []))))
               | Ast.PaTup (loc, _) -> error loc "singleton tuple pattern"
               | PaTyc (loc, p, t) ->
-                  mkpat loc (Ppat_constraint (patt p, ctyp t))
+                  mkpat loc (Ppat_constraint ((patt p), (ctyp t)))
               | PaTyp (loc, i) -> mkpat loc (Ppat_type (long_type_ident i))
               | PaVrn (loc, s) -> mkpat loc (Ppat_variant (s, None))
               | PaLaz (loc, p) -> mkpat loc (Ppat_lazy (patt p))
@@ -13973,15 +14825,23 @@ module Struct =
                   let rec normalize_acc =
                     (function
                      | Ast.IdAcc (_loc, i1, i2) ->
-                         Ast.ExAcc (_loc, normalize_acc i1, normalize_acc i2)
+                         Ast.ExAcc (_loc, (normalize_acc i1),
+                           (normalize_acc i2))
                      | Ast.IdApp (_loc, i1, i2) ->
-                         Ast.ExApp (_loc, normalize_acc i1, normalize_acc i2)
+                         Ast.ExApp (_loc, (normalize_acc i1),
+                           (normalize_acc i2))
                      | (Ast.IdAnt (_loc, _) | Ast.IdUid (_loc, _) |
                           Ast.IdLid (_loc, _)
                         as i) -> Ast.ExId (_loc, i))
                   in sep_expr_acc l (normalize_acc i)
               | e -> ((loc_of_expr e), [], e) :: l
               
+            let override_flag loc =
+              function
+              | Ast.OvOverride -> Override
+              | Ast.OvNil -> Fresh
+              | _ -> error loc "antiquotation not allowed here"
+              
             let list_of_opt_ctyp ot acc =
               match ot with | Ast.TyNil _ -> acc | t -> list_of_ctyp t acc
               
@@ -13989,7 +14849,7 @@ module Struct =
               function
               | Ast.ExAcc (loc, x, (Ast.ExId (_, (Ast.IdLid (_, "val"))))) ->
                   mkexp loc
-                    (Pexp_apply (mkexp loc (Pexp_ident (Lident "!")),
+                    (Pexp_apply ((mkexp loc (Pexp_ident (Lident "!"))),
                        [ ("", (expr x)) ]))
               | (ExAcc (loc, _, _) | Ast.ExId (loc, (Ast.IdAcc (_, _, _))) as
                  e) ->
@@ -13999,7 +14859,7 @@ module Struct =
                          let ca = constructors_arity ()
                          in
                            ((mkexp loc
-                               (Pexp_construct (mkli (conv_con s) ml, None,
+                               (Pexp_construct ((mkli (conv_con s) ml), None,
                                   ca))),
                             l)
                      | (loc, ml, Ast.ExId (_, (Ast.IdLid (_, s)))) :: l ->
@@ -14015,7 +14875,7 @@ module Struct =
                              in
                                (loc,
                                 (mkexp loc
-                                   (Pexp_field (e1, mkli (conv_lab s) ml))))
+                                   (Pexp_field (e1, (mkli (conv_lab s) ml)))))
                          | _ ->
                              error (loc_of_expr e2)
                                "lowercase identifier expected")
@@ -14034,7 +14894,7 @@ module Struct =
                            then
                              mkexp loc
                                (Pexp_construct (li,
-                                  Some (mkexp loc (Pexp_tuple al)), true))
+                                  (Some (mkexp loc (Pexp_tuple al))), true))
                            else
                              (let a =
                                 match al with
@@ -14042,7 +14902,7 @@ module Struct =
                                 | _ -> mkexp loc (Pexp_tuple al)
                               in
                                 mkexp loc
-                                  (Pexp_construct (li, Some a, false)))
+                                  (Pexp_construct (li, (Some a), false)))
                      | Pexp_variant (s, None) ->
                          let al = List.map snd al in
                          let a =
@@ -14052,12 +14912,13 @@ module Struct =
                              (match al with
                               | [ a ] -> a
                               | _ -> mkexp loc (Pexp_tuple al))
-                         in mkexp loc (Pexp_variant (s, Some a))
-                     | _ -> mkexp loc (Pexp_apply (expr f, al)))
+                         in mkexp loc (Pexp_variant (s, (Some a)))
+                     | _ -> mkexp loc (Pexp_apply ((expr f), al)))
               | ExAre (loc, e1, e2) ->
                   mkexp loc
                     (Pexp_apply
-                       (mkexp loc (Pexp_ident (array_function "Array" "get")),
+                       ((mkexp loc
+                           (Pexp_ident (array_function "Array" "get"))),
                        [ ("", (expr e1)); ("", (expr e2)) ]))
               | ExArr (loc, e) ->
                   mkexp loc (Pexp_array (List.map expr (list_of_expr e [])))
@@ -14067,24 +14928,24 @@ module Struct =
                     (match e with
                      | Ast.ExAcc (loc, x,
                          (Ast.ExId (_, (Ast.IdLid (_, "val"))))) ->
-                         Pexp_apply (mkexp loc (Pexp_ident (Lident ":=")),
+                         Pexp_apply ((mkexp loc (Pexp_ident (Lident ":="))),
                            [ ("", (expr x)); ("", (expr v)) ])
                      | ExAcc (loc, _, _) ->
                          (match (expr e).pexp_desc with
                           | Pexp_field (e, lab) ->
-                              Pexp_setfield (e, lab, expr v)
+                              Pexp_setfield (e, lab, (expr v))
                           | _ -> error loc "bad record access")
                      | ExAre (_, e1, e2) ->
                          Pexp_apply
-                           (mkexp loc
-                              (Pexp_ident (array_function "Array" "set")),
+                           ((mkexp loc
+                               (Pexp_ident (array_function "Array" "set"))),
                            [ ("", (expr e1)); ("", (expr e2)); ("", (expr v)) ])
                      | Ast.ExId (_, (Ast.IdLid (_, lab))) ->
-                         Pexp_setinstvar (lab, expr v)
+                         Pexp_setinstvar (lab, (expr v))
                      | ExSte (_, e1, e2) ->
                          Pexp_apply
-                           (mkexp loc
-                              (Pexp_ident (array_function "String" "set")),
+                           ((mkexp loc
+                               (Pexp_ident (array_function "String" "set"))),
                            [ ("", (expr e1)); ("", (expr e2)); ("", (expr v)) ])
                      | _ -> error loc "bad left part of assignment")
                   in mkexp loc e
@@ -14095,14 +14956,18 @@ module Struct =
               | ExCoe (loc, e, t1, t2) ->
                   let t1 =
                     (match t1 with | Ast.TyNil _ -> None | t -> Some (ctyp t))
-                  in mkexp loc (Pexp_constraint (expr e, t1, Some (ctyp t2)))
+                  in
+                    mkexp loc
+                      (Pexp_constraint ((expr e), t1, (Some (ctyp t2))))
               | ExFlo (loc, s) ->
                   mkexp loc
                     (Pexp_constant (Const_float (remove_underscores s)))
               | ExFor (loc, i, e1, e2, df, el) ->
-                  let e3 = ExSeq (loc, el) in
-                  let df = if mb2b df then Upto else Downto
-                  in mkexp loc (Pexp_for (i, expr e1, expr e2, df, expr e3))
+                  let e3 = ExSeq (loc, el)
+                  in
+                    mkexp loc
+                      (Pexp_for (i, (expr e1), (expr e2), (mkdirection df),
+                         (expr e3)))
               | Ast.ExFun (loc, (Ast.McArr (_, (PaLab (_, lab, po)), w, e)))
                   ->
                   mkexp loc
@@ -14113,20 +14978,20 @@ module Struct =
                   let lab = paolab lab p
                   in
                     mkexp loc
-                      (Pexp_function ("?" ^ lab, Some (expr e1),
+                      (Pexp_function (("?" ^ lab), (Some (expr e1)),
                          [ ((patt p), (when_expr e2 w)) ]))
               | Ast.ExFun (loc, (Ast.McArr (_, (PaOlb (_, lab, p)), w, e)))
                   ->
                   let lab = paolab lab p
                   in
                     mkexp loc
-                      (Pexp_function ("?" ^ lab, None,
+                      (Pexp_function (("?" ^ lab), None,
                          [ ((patt_of_lab loc lab p), (when_expr e w)) ]))
               | ExFun (loc, a) ->
-                  mkexp loc (Pexp_function ("", None, match_case a []))
+                  mkexp loc (Pexp_function ("", None, (match_case a [])))
               | ExIfe (loc, e1, e2, e3) ->
                   mkexp loc
-                    (Pexp_ifthenelse (expr e1, expr e2, Some (expr e3)))
+                    (Pexp_ifthenelse ((expr e1), (expr e2), (Some (expr e3))))
               | ExInt (loc, s) ->
                   let i =
                     (try int_of_string s
@@ -14163,11 +15028,11 @@ module Struct =
                   error loc "labeled expression not allowed here"
               | ExLaz (loc, e) -> mkexp loc (Pexp_lazy (expr e))
               | ExLet (loc, rf, bi, e) ->
-                  mkexp loc (Pexp_let (mkrf rf, binding bi [], expr e))
+                  mkexp loc (Pexp_let ((mkrf rf), (binding bi []), (expr e)))
               | ExLmd (loc, i, me, e) ->
-                  mkexp loc (Pexp_letmodule (i, module_expr me, expr e))
+                  mkexp loc (Pexp_letmodule (i, (module_expr me), (expr e)))
               | ExMat (loc, e, a) ->
-                  mkexp loc (Pexp_match (expr e, match_case a []))
+                  mkexp loc (Pexp_match ((expr e), (match_case a [])))
               | ExNew (loc, id) -> mkexp loc (Pexp_new (long_type_ident id))
               | ExObj (loc, po, cfl) ->
                   let p =
@@ -14186,49 +15051,55 @@ module Struct =
                          (match eo with
                           | Ast.ExNil _ -> None
                           | e -> Some (expr e))
-                       in mkexp loc (Pexp_record (mklabexp lel [], eo)))
+                       in mkexp loc (Pexp_record ((mklabexp lel []), eo)))
               | ExSeq (_loc, e) ->
                   let rec loop =
                     (function
-                     | [] -> expr (Ast.ExId (_loc, Ast.IdUid (_loc, "()")))
+                     | [] -> expr (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))))
                      | [ e ] -> expr e
                      | e :: el ->
                          let _loc = Loc.merge (loc_of_expr e) _loc
-                         in mkexp _loc (Pexp_sequence (expr e, loop el)))
+                         in mkexp _loc (Pexp_sequence ((expr e), (loop el))))
                   in loop (list_of_expr e [])
-              | ExSnd (loc, e, s) -> mkexp loc (Pexp_send (expr e, s))
+              | ExSnd (loc, e, s) -> mkexp loc (Pexp_send ((expr e), s))
               | ExSte (loc, e1, e2) ->
                   mkexp loc
                     (Pexp_apply
-                       (mkexp loc
-                          (Pexp_ident (array_function "String" "get")),
+                       ((mkexp loc
+                           (Pexp_ident (array_function "String" "get"))),
                        [ ("", (expr e1)); ("", (expr e2)) ]))
               | ExStr (loc, s) ->
                   mkexp loc
                     (Pexp_constant
                        (Const_string (string_of_string_token loc s)))
               | ExTry (loc, e, a) ->
-                  mkexp loc (Pexp_try (expr e, match_case a []))
+                  mkexp loc (Pexp_try ((expr e), (match_case a [])))
               | Ast.ExTup (loc, (Ast.ExCom (_, e1, e2))) ->
                   mkexp loc
                     (Pexp_tuple
                        (List.map expr (list_of_expr e1 (list_of_expr e2 []))))
               | Ast.ExTup (loc, _) -> error loc "singleton tuple"
               | ExTyc (loc, e, t) ->
-                  mkexp loc (Pexp_constraint (expr e, Some (ctyp t), None))
+                  mkexp loc
+                    (Pexp_constraint ((expr e), (Some (ctyp t)), None))
               | Ast.ExId (loc, (Ast.IdUid (_, "()"))) ->
-                  mkexp loc (Pexp_construct (lident "()", None, true))
+                  mkexp loc (Pexp_construct ((lident "()"), None, true))
               | Ast.ExId (loc, (Ast.IdLid (_, s))) ->
                   mkexp loc (Pexp_ident (lident s))
               | Ast.ExId (loc, (Ast.IdUid (_, s))) ->
                   mkexp loc
-                    (Pexp_construct (lident (conv_con s), None, true))
+                    (Pexp_construct ((lident (conv_con s)), None, true))
               | ExVrn (loc, s) -> mkexp loc (Pexp_variant (s, None))
               | ExWhi (loc, e1, el) ->
                   let e2 = ExSeq (loc, el)
-                  in mkexp loc (Pexp_while (expr e1, expr e2))
+                  in mkexp loc (Pexp_while ((expr e1), (expr e2)))
               | Ast.ExOpI (loc, i, e) ->
-                  mkexp loc (Pexp_open (long_uident i, expr e))
+                  mkexp loc (Pexp_open ((long_uident i), (expr e)))
+              | Ast.ExPkg (loc, (Ast.MeTyc (_, me, pt))) ->
+                  mkexp loc (Pexp_pack ((module_expr me), (package_type pt)))
+              | Ast.ExPkg (loc, _) ->
+                  error loc "(module_expr : package_type) expected here"
+              | ExFUN (loc, i, e) -> mkexp loc (Pexp_newtype (i, (expr e)))
               | Ast.ExCom (loc, _, _) ->
                   error loc "expr, expr: not allowed here"
               | Ast.ExSem (loc, _, _) ->
@@ -14238,11 +15109,13 @@ module Struct =
                   error (loc_of_expr e) "invalid expr"
             and patt_of_lab _loc lab =
               function
-              | Ast.PaNil _ -> patt (Ast.PaId (_loc, Ast.IdLid (_loc, lab)))
+              | Ast.PaNil _ ->
+                  patt (Ast.PaId (_loc, (Ast.IdLid (_loc, lab))))
               | p -> patt p
             and expr_of_lab _loc lab =
               function
-              | Ast.ExNil _ -> expr (Ast.ExId (_loc, Ast.IdLid (_loc, lab)))
+              | Ast.ExNil _ ->
+                  expr (Ast.ExId (_loc, (Ast.IdLid (_loc, lab))))
               | e -> expr e
             and label_expr =
               function
@@ -14253,6 +15126,10 @@ module Struct =
             and binding x acc =
               match x with
               | Ast.BiAnd (_, x, y) -> binding x (binding y acc)
+              | Ast.BiEq (_loc, p,
+                  (Ast.ExTyc (_, e, (Ast.TyPol (_, vs, ty))))) ->
+                  ((patt (Ast.PaTyc (_loc, p, (Ast.TyPol (_loc, vs, ty))))),
+                   (expr e)) :: acc
               | Ast.BiEq (_, p, e) -> ((patt p), (expr e)) :: acc
               | Ast.BiNil _ -> acc
               | _ -> assert false
@@ -14265,7 +15142,7 @@ module Struct =
             and when_expr e w =
               match w with
               | Ast.ExNil _ -> expr e
-              | w -> mkexp (loc_of_expr w) (Pexp_when (expr w, expr e))
+              | w -> mkexp (loc_of_expr w) (Pexp_when ((expr w), (expr e)))
             and mklabexp x acc =
               match x with
               | Ast.RbSem (_, x, y) -> mklabexp x (mklabexp y acc)
@@ -14301,13 +15178,13 @@ module Struct =
               | Ast.MtId (loc, i) -> mkmty loc (Pmty_ident (long_uident i))
               | Ast.MtFun (loc, n, nt, mt) ->
                   mkmty loc
-                    (Pmty_functor (n, module_type nt, module_type mt))
+                    (Pmty_functor (n, (module_type nt), (module_type mt)))
               | Ast.MtQuo (loc, _) ->
                   error loc "module type variable not allowed here"
               | Ast.MtSig (loc, sl) ->
                   mkmty loc (Pmty_signature (sig_item sl []))
               | Ast.MtWit (loc, mt, wc) ->
-                  mkmty loc (Pmty_with (module_type mt, mkwithc wc []))
+                  mkmty loc (Pmty_with ((module_type mt), (mkwithc wc [])))
               | Ast.MtAnt (_, _) -> assert false
             and sig_item s l =
               match s with
@@ -14327,22 +15204,22 @@ module Struct =
               | Ast.SgSem (_, sg1, sg2) -> sig_item sg1 (sig_item sg2 l)
               | SgDir (_, _, _) -> l
               | Ast.SgExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s))))) ->
-                  (mksig loc (Psig_exception (conv_con s, []))) :: l
+                  (mksig loc (Psig_exception ((conv_con s), []))) :: l
               | Ast.SgExc (loc,
                   (Ast.TyOf (_, (Ast.TyId (_, (Ast.IdUid (_, s)))), t))) ->
                   (mksig loc
-                     (Psig_exception (conv_con s,
-                        List.map ctyp (list_of_ctyp t [])))) ::
+                     (Psig_exception ((conv_con s),
+                        (List.map ctyp (list_of_ctyp t []))))) ::
                     l
               | SgExc (_, _) -> assert false
               | SgExt (loc, n, t, sl) ->
                   (mksig loc
-                     (Psig_value (n, mkvalue_desc t (list_of_meta_list sl)))) ::
+                     (Psig_value (n, (mkvalue_desc t (list_of_meta_list sl))))) ::
                     l
               | SgInc (loc, mt) ->
                   (mksig loc (Psig_include (module_type mt))) :: l
               | SgMod (loc, n, mt) ->
-                  (mksig loc (Psig_module (n, module_type mt))) :: l
+                  (mksig loc (Psig_module (n, (module_type mt)))) :: l
               | SgRecMod (loc, mb) ->
                   (mksig loc (Psig_recmodule (module_sig_binding mb []))) ::
                     l
@@ -14357,7 +15234,7 @@ module Struct =
               | SgTyp (loc, tdl) ->
                   (mksig loc (Psig_type (mktype_decl tdl []))) :: l
               | SgVal (loc, n, t) ->
-                  (mksig loc (Psig_value (n, mkvalue_desc t []))) :: l
+                  (mksig loc (Psig_value (n, (mkvalue_desc t [])))) :: l
               | Ast.SgAnt (loc, _) -> error loc "antiquotation in sig_item"
             and module_sig_binding x acc =
               match x with
@@ -14377,15 +15254,20 @@ module Struct =
               | Ast.MeNil loc -> error loc "nil module expression"
               | Ast.MeId (loc, i) -> mkmod loc (Pmod_ident (long_uident i))
               | Ast.MeApp (loc, me1, me2) ->
-                  mkmod loc (Pmod_apply (module_expr me1, module_expr me2))
+                  mkmod loc
+                    (Pmod_apply ((module_expr me1), (module_expr me2)))
               | Ast.MeFun (loc, n, mt, me) ->
                   mkmod loc
-                    (Pmod_functor (n, module_type mt, module_expr me))
+                    (Pmod_functor (n, (module_type mt), (module_expr me)))
               | Ast.MeStr (loc, sl) ->
                   mkmod loc (Pmod_structure (str_item sl []))
               | Ast.MeTyc (loc, me, mt) ->
                   mkmod loc
-                    (Pmod_constraint (module_expr me, module_type mt))
+                    (Pmod_constraint ((module_expr me), (module_type mt)))
+              | Ast.MePkg (loc, (Ast.ExTyc (_, e, (Ast.TyPkg (_, pt))))) ->
+                  mkmod loc (Pmod_unpack ((expr e), (package_type pt)))
+              | Ast.MePkg (loc, _) ->
+                  error loc "(value expr) not supported yet"
               | Ast.MeAnt (loc, _) ->
                   error loc "antiquotation in module_expr"
             and str_item s l =
@@ -14407,55 +15289,58 @@ module Struct =
               | StDir (_, _, _) -> l
               | Ast.StExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s)))), Ast.
                   ONone) ->
-                  (mkstr loc (Pstr_exception (conv_con s, []))) :: l
+                  (mkstr loc (Pstr_exception ((conv_con s), []))) :: l
               | Ast.StExc (loc,
                   (Ast.TyOf (_, (Ast.TyId (_, (Ast.IdUid (_, s)))), t)), Ast.
                   ONone) ->
                   (mkstr loc
-                     (Pstr_exception (conv_con s,
-                        List.map ctyp (list_of_ctyp t [])))) ::
+                     (Pstr_exception ((conv_con s),
+                        (List.map ctyp (list_of_ctyp t []))))) ::
                     l
               | Ast.StExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s)))),
                   (Ast.OSome i)) ->
-                  (mkstr loc (Pstr_exn_rebind (conv_con s, ident i))) :: l
+                  (mkstr loc (Pstr_exn_rebind ((conv_con s), (ident i)))) ::
+                    l
               | StExc (_, _, _) -> assert false
               | StExp (loc, e) -> (mkstr loc (Pstr_eval (expr e))) :: l
               | StExt (loc, n, t, sl) ->
                   (mkstr loc
                      (Pstr_primitive (n,
-                        mkvalue_desc t (list_of_meta_list sl)))) ::
+                        (mkvalue_desc t (list_of_meta_list sl))))) ::
                     l
               | StInc (loc, me) ->
                   (mkstr loc (Pstr_include (module_expr me))) :: l
               | StMod (loc, n, me) ->
-                  (mkstr loc (Pstr_module (n, module_expr me))) :: l
+                  (mkstr loc (Pstr_module (n, (module_expr me)))) :: l
               | StRecMod (loc, mb) ->
                   (mkstr loc (Pstr_recmodule (module_str_binding mb []))) ::
                     l
               | StMty (loc, n, mt) ->
-                  (mkstr loc (Pstr_modtype (n, module_type mt))) :: l
+                  (mkstr loc (Pstr_modtype (n, (module_type mt)))) :: l
               | StOpn (loc, id) ->
                   (mkstr loc (Pstr_open (long_uident id))) :: l
               | StTyp (loc, tdl) ->
                   (mkstr loc (Pstr_type (mktype_decl tdl []))) :: l
               | StVal (loc, rf, bi) ->
-                  (mkstr loc (Pstr_value (mkrf rf, binding bi []))) :: l
+                  (mkstr loc (Pstr_value ((mkrf rf), (binding bi [])))) :: l
               | Ast.StAnt (loc, _) -> error loc "antiquotation in str_item"
             and class_type =
               function
-              | CtCon (loc, Ast.BFalse, id, tl) ->
+              | CtCon (loc, ViNil, id, tl) ->
                   mkcty loc
-                    (Pcty_constr (long_class_ident id,
-                       List.map ctyp (list_of_opt_ctyp tl [])))
+                    (Pcty_constr ((long_class_ident id),
+                       (List.map ctyp (list_of_opt_ctyp tl []))))
               | CtFun (loc, (TyLab (_, lab, t)), ct) ->
-                  mkcty loc (Pcty_fun (lab, ctyp t, class_type ct))
+                  mkcty loc (Pcty_fun (lab, (ctyp t), (class_type ct)))
               | CtFun (loc, (TyOlb (loc1, lab, t)), ct) ->
                   let t =
-                    TyApp (loc1, Ast.TyId (loc1, Ast.IdLid (loc1, "option")),
-                      t)
-                  in mkcty loc (Pcty_fun ("?" ^ lab, ctyp t, class_type ct))
+                    TyApp (loc1,
+                      (Ast.TyId (loc1, (Ast.IdLid (loc1, "option")))), t)
+                  in
+                    mkcty loc
+                      (Pcty_fun (("?" ^ lab), (ctyp t), (class_type ct)))
               | CtFun (loc, t, ct) ->
-                  mkcty loc (Pcty_fun ("", ctyp t, class_type ct))
+                  mkcty loc (Pcty_fun ("", (ctyp t), (class_type ct)))
               | CtSig (loc, t_o, ctfl) ->
                   let t =
                     (match t_o with | Ast.TyNil _ -> Ast.TyAny loc | t -> t) in
@@ -14477,7 +15362,7 @@ module Struct =
                           (List.split (class_parameters t []))))
                   in
                     {
-                      pci_virt = if mb2b vir then Virtual else Concrete;
+                      pci_virt = mkvirtual vir;
                       pci_params = (params, (mkloc loc_params));
                       pci_name = name;
                       pci_expr = class_expr ce;
@@ -14499,7 +15384,7 @@ module Struct =
                           (List.split (class_parameters t []))))
                   in
                     {
-                      pci_virt = if mb2b vir then Virtual else Concrete;
+                      pci_virt = mkvirtual vir;
                       pci_params = (params, (mkloc loc_params));
                       pci_name = name;
                       pci_expr = class_type ct;
@@ -14536,38 +15421,40 @@ module Struct =
               | (CeApp (loc, _, _) as c) ->
                   let (ce, el) = class_expr_fa [] c in
                   let el = List.map label_expr el
-                  in mkpcl loc (Pcl_apply (class_expr ce, el))
-              | CeCon (loc, Ast.BFalse, id, tl) ->
+                  in mkpcl loc (Pcl_apply ((class_expr ce), el))
+              | CeCon (loc, ViNil, id, tl) ->
                   mkpcl loc
-                    (Pcl_constr (long_class_ident id,
-                       List.map ctyp (list_of_opt_ctyp tl [])))
+                    (Pcl_constr ((long_class_ident id),
+                       (List.map ctyp (list_of_opt_ctyp tl []))))
               | CeFun (loc, (PaLab (_, lab, po)), ce) ->
                   mkpcl loc
-                    (Pcl_fun (lab, None, patt_of_lab loc lab po,
-                       class_expr ce))
+                    (Pcl_fun (lab, None, (patt_of_lab loc lab po),
+                       (class_expr ce)))
               | CeFun (loc, (PaOlbi (_, lab, p, e)), ce) ->
                   let lab = paolab lab p
                   in
                     mkpcl loc
-                      (Pcl_fun ("?" ^ lab, Some (expr e), patt p,
-                         class_expr ce))
+                      (Pcl_fun (("?" ^ lab), (Some (expr e)), (patt p),
+                         (class_expr ce)))
               | CeFun (loc, (PaOlb (_, lab, p)), ce) ->
                   let lab = paolab lab p
                   in
                     mkpcl loc
-                      (Pcl_fun ("?" ^ lab, None, patt_of_lab loc lab p,
-                         class_expr ce))
+                      (Pcl_fun (("?" ^ lab), None, (patt_of_lab loc lab p),
+                         (class_expr ce)))
               | CeFun (loc, p, ce) ->
-                  mkpcl loc (Pcl_fun ("", None, patt p, class_expr ce))
+                  mkpcl loc (Pcl_fun ("", None, (patt p), (class_expr ce)))
               | CeLet (loc, rf, bi, ce) ->
-                  mkpcl loc (Pcl_let (mkrf rf, binding bi [], class_expr ce))
+                  mkpcl loc
+                    (Pcl_let ((mkrf rf), (binding bi []), (class_expr ce)))
               | CeStr (loc, po, cfl) ->
                   let p =
                     (match po with | Ast.PaNil _ -> Ast.PaAny loc | p -> p) in
                   let cil = class_str_item cfl []
                   in mkpcl loc (Pcl_structure (((patt p), cil)))
               | CeTyc (loc, ce, ct) ->
-                  mkpcl loc (Pcl_constraint (class_expr ce, class_type ct))
+                  mkpcl loc
+                    (Pcl_constraint ((class_expr ce), (class_type ct)))
               | CeCon (loc, _, _, _) ->
                   error loc "invalid virtual class inside a class expression"
               | CeAnt (_, _) | CeEq (_, _, _) | CeAnd (_, _, _) | CeNil _ ->
@@ -14579,29 +15466,34 @@ module Struct =
                   (Pcf_cstr (((ctyp t1), (ctyp t2), (mkloc loc)))) :: l
               | Ast.CrSem (_, cst1, cst2) ->
                   class_str_item cst1 (class_str_item cst2 l)
-              | CrInh (_, ce, "") ->
-                  (Pcf_inher (Fresh, class_expr ce, None)) :: l
-              | CrInh (_, ce, pb) ->
-                  (Pcf_inher (Fresh, class_expr ce, Some pb)) :: l
+              | CrInh (loc, ov, ce, pb) ->
+                  let opb = if pb = "" then None else Some pb
+                  in
+                    (Pcf_inher ((override_flag loc ov), (class_expr ce), opb)) ::
+                      l
               | CrIni (_, e) -> (Pcf_init (expr e)) :: l
-              | CrMth (loc, s, b, e, t) ->
+              | CrMth (loc, s, ov, pf, e, t) ->
                   let t =
                     (match t with
                      | Ast.TyNil _ -> None
                      | t -> Some (mkpolytype (ctyp t))) in
-                  let e = mkexp loc (Pexp_poly (expr e, t))
+                  let e = mkexp loc (Pexp_poly ((expr e), t))
                   in
-                    (Pcf_meth ((s, (mkprivate b), Fresh, e, (mkloc loc)))) ::
+                    (Pcf_meth
+                       ((s, (mkprivate pf), (override_flag loc ov), e,
+                         (mkloc loc)))) ::
                       l
-              | CrVal (loc, s, b, e) ->
-                  (Pcf_val ((s, (mkmutable b), Fresh, (expr e), (mkloc loc)))) ::
+              | CrVal (loc, s, ov, mf, e) ->
+                  (Pcf_val
+                     ((s, (mkmutable mf), (override_flag loc ov), (expr e),
+                       (mkloc loc)))) ::
                     l
-              | CrVir (loc, s, b, t) ->
+              | CrVir (loc, s, pf, t) ->
                   (Pcf_virt
-                     ((s, (mkprivate b), (mkpolytype (ctyp t)), (mkloc loc)))) ::
+                     ((s, (mkprivate pf), (mkpolytype (ctyp t)), (mkloc loc)))) ::
                     l
-              | CrVvr (loc, s, b, t) ->
-                  (Pcf_valvirt ((s, (mkmutable b), (ctyp t), (mkloc loc)))) ::
+              | CrVvr (loc, s, mf, t) ->
+                  (Pcf_valvirt ((s, (mkmutable mf), (ctyp t), (mkloc loc)))) ::
                     l
               | CrAnt (_, _) -> assert false
               
@@ -14620,7 +15512,7 @@ module Struct =
               
             let phrase =
               function
-              | StDir (_, d, dp) -> Ptop_dir (d, directive dp)
+              | StDir (_, d, dp) -> Ptop_dir (d, (directive dp))
               | si -> Ptop_def (str_item si)
               
           end
@@ -14902,7 +15794,7 @@ module Struct =
                   | Dynlink.Error e ->
                       raise
                         (Error ("Camlp4's dynamic loader initialization",
-                           Dynlink.error_message e)))
+                           (Dynlink.error_message e))))
                else ();
                let fname =
                  try find_in_path _path file
@@ -14913,7 +15805,7 @@ module Struct =
                  try Dynlink.loadfile fname
                  with
                  | Dynlink.Error e ->
-                     raise (Error (fname, Dynlink.error_message e)))
+                     raise (Error (fname, (Dynlink.error_message e))))
           
         let is_native = Dynlink.is_native
           
@@ -15056,9 +15948,9 @@ module Struct =
                       Ast.ExLab (_, s, (Ast.ExNil _)) |
                       Ast.ExOlb (_, s, (Ast.ExNil _)) ->
                       if S.mem s env then o else {< free = f s free; >}
-                  | Ast.ExLet (_, Ast.BFalse, bi, e) ->
+                  | Ast.ExLet (_, Ast.ReNil, bi, e) ->
                       (((o#add_binding bi)#expr e)#set_env env)#binding bi
-                  | Ast.ExLet (_, Ast.BTrue, bi, e) ->
+                  | Ast.ExLet (_, Ast.ReRecursive, bi, e) ->
                       (((o#add_binding bi)#expr e)#binding bi)#set_env env
                   | Ast.ExFor (_, s, e1, e2, _, e3) ->
                       ((((o#expr e1)#expr e2)#add_atom s)#expr e3)#set_env
@@ -15077,9 +15969,9 @@ module Struct =
                 method str_item =
                   function
                   | Ast.StExt (_, s, t, _) -> (o#ctyp t)#add_atom s
-                  | Ast.StVal (_, Ast.BFalse, bi) ->
+                  | Ast.StVal (_, Ast.ReNil, bi) ->
                       (o#binding bi)#add_binding bi
-                  | Ast.StVal (_, Ast.BTrue, bi) ->
+                  | Ast.StVal (_, Ast.ReRecursive, bi) ->
                       (o#add_binding bi)#binding bi
                   | st -> super#str_item st
                   
@@ -15087,10 +15979,10 @@ module Struct =
                   function
                   | Ast.CeFun (_, p, ce) ->
                       ((o#add_patt p)#class_expr ce)#set_env env
-                  | Ast.CeLet (_, Ast.BFalse, bi, ce) ->
+                  | Ast.CeLet (_, Ast.ReNil, bi, ce) ->
                       (((o#binding bi)#add_binding bi)#class_expr ce)#set_env
                         env
-                  | Ast.CeLet (_, Ast.BTrue, bi, ce) ->
+                  | Ast.CeLet (_, Ast.ReRecursive, bi, ce) ->
                       (((o#add_binding bi)#binding bi)#class_expr ce)#set_env
                         env
                   | Ast.CeStr (_, p, cst) ->
@@ -15099,9 +15991,10 @@ module Struct =
                   
                 method class_str_item =
                   function
-                  | (Ast.CrInh (_, _, "") as cst) -> super#class_str_item cst
-                  | Ast.CrInh (_, ce, s) -> (o#class_expr ce)#add_atom s
-                  | Ast.CrVal (_, s, _, e) -> (o#expr e)#add_atom s
+                  | (Ast.CrInh (_, _, _, "") as cst) ->
+                      super#class_str_item cst
+                  | Ast.CrInh (_, _, ce, s) -> (o#class_expr ce)#add_atom s
+                  | Ast.CrVal (_, s, _, _, e) -> (o#expr e)#add_atom s
                   | Ast.CrVvr (_, s, _, t) -> (o#ctyp t)#add_atom s
                   | cst -> super#class_str_item cst
                   
@@ -15122,99 +16015,6 @@ module Struct =
       
     module Grammar =
       struct
-        module Context =
-          struct
-            module type S =
-              sig
-                module Token : Sig.Token
-                  
-                open Token
-                  
-                type t
-                
-                val call_with_ctx :
-                  (Token.t * Loc.t) Stream.t -> (t -> 'a) -> 'a
-                  
-                val loc_bp : t -> Loc.t
-                  
-                val loc_ep : t -> Loc.t
-                  
-                val stream : t -> (Token.t * Loc.t) Stream.t
-                  
-                val peek_nth : t -> int -> (Token.t * Loc.t) option
-                  
-                val njunk : t -> int -> unit
-                  
-                val junk : (Token.t * Loc.t) Stream.t -> unit
-                  
-                val bp : (Token.t * Loc.t) Stream.t -> Loc.t
-                  
-              end
-              
-            module Make (Token : Sig.Token) : S with module Token = Token =
-              struct
-                module Token = Token
-                  
-                open Token
-                  
-                type t =
-                  { mutable strm : (Token.t * Loc.t) Stream.t;
-                    mutable loc : Loc.t
-                  }
-                
-                let loc_bp c =
-                  match Stream.peek c.strm with
-                  | None -> Loc.ghost
-                  | Some ((_, loc)) -> loc
-                  
-                let loc_ep c = c.loc
-                  
-                let set_loc c =
-                  match Stream.peek c.strm with
-                  | Some ((_, loc)) -> c.loc <- loc
-                  | None -> ()
-                  
-                let mk strm =
-                  match Stream.peek strm with
-                  | Some ((_, loc)) -> { strm = strm; loc = loc; }
-                  | None -> { strm = strm; loc = Loc.ghost; }
-                  
-                let stream c = c.strm
-                  
-                let peek_nth c n =
-                  let list = Stream.npeek n c.strm in
-                  let rec loop list n =
-                    match (list, n) with
-                    | ((((_, loc) as x)) :: _, 1) -> (c.loc <- loc; Some x)
-                    | (_ :: l, n) -> loop l (n - 1)
-                    | ([], _) -> None
-                  in loop list n
-                  
-                let njunk c n =
-                  (for i = 1 to n do Stream.junk c.strm done; set_loc c)
-                  
-                let streams = ref []
-                  
-                let mk strm =
-                  let c = mk strm in
-                  let () = streams := (strm, c) :: !streams in c
-                  
-                let junk strm =
-                  (set_loc (List.assq strm !streams); Stream.junk strm)
-                  
-                let bp strm = loc_bp (List.assq strm !streams)
-                  
-                let call_with_ctx strm f =
-                  let streams_v = !streams in
-                  let r =
-                    try f (mk strm)
-                    with | exc -> (streams := streams_v; raise exc)
-                  in (streams := streams_v; r)
-                  
-              end
-              
-          end
-          
         module Structure =
           struct
             open Sig.Grammar
@@ -15228,8 +16028,6 @@ module Struct =
                 module Lexer : Sig.Lexer with module Loc = Loc
                   and module Token = Token
                   
-                module Context : Context.S with module Token = Token
-                  
                 module Action : Sig.Grammar.Action
                   
                 type gram =
@@ -15240,8 +16038,11 @@ module Struct =
                     warning_verbose : bool ref; error_verbose : bool ref
                   }
                 
-                type efun =
-                  Context.t -> (Token.t * Loc.t) Stream.t -> Action.t
+                type token_info = { prev_loc : Loc.t; cur_loc : Loc.t }
+                
+                type token_stream = (Token.t * token_info) Stream.t
+                
+                type efun = token_stream -> Action.t
                 
                 type token_pattern = ((Token.t -> bool) * string)
                 
@@ -15253,7 +16054,7 @@ module Struct =
                   }
                   and desc =
                   | Dlevels of level list
-                  | Dparser of ((Token.t * Loc.t) Stream.t -> Action.t)
+                  | Dparser of (token_stream -> Action.t)
                   and level =
                   { assoc : assoc; lname : string option; lsuffix : tree;
                     lprefix : tree
@@ -15267,6 +16068,7 @@ module Struct =
                   | Slist1 of symbol
                   | Slist1sep of symbol * symbol
                   | Sopt of symbol
+                  | Stry of symbol
                   | Sself
                   | Snext
                   | Stoken of token_pattern
@@ -15338,10 +16140,11 @@ module Struct =
                     warning_verbose : bool ref; error_verbose : bool ref
                   }
                 
-                module Context = Context.Make(Token)
-                  
-                type efun =
-                  Context.t -> (Token.t * Loc.t) Stream.t -> Action.t
+                type token_info = { prev_loc : Loc.t; cur_loc : Loc.t }
+                
+                type token_stream = (Token.t * token_info) Stream.t
+                
+                type efun = token_stream -> Action.t
                 
                 type token_pattern = ((Token.t -> bool) * string)
                 
@@ -15353,7 +16156,7 @@ module Struct =
                   }
                   and desc =
                   | Dlevels of level list
-                  | Dparser of ((Token.t * Loc.t) Stream.t -> Action.t)
+                  | Dparser of (token_stream -> Action.t)
                   and level =
                   { assoc : assoc; lname : string option; lsuffix : tree;
                     lprefix : tree
@@ -15367,6 +16170,7 @@ module Struct =
                   | Slist1 of symbol
                   | Slist1sep of symbol * symbol
                   | Sopt of symbol
+                  | Stry of symbol
                   | Sself
                   | Snext
                   | Stoken of token_pattern
@@ -15402,6 +16206,8 @@ module Struct =
                 
                 let get_filter g = g.gfilter
                   
+                let token_location r = r.cur_loc
+                  
                 type 'a not_filtered = 'a
                 
                 let using { gkeywords = table; gfilter = filter } kwd =
@@ -15481,8 +16287,8 @@ module Struct =
                         (match symb with
                          | Snterm _ | Snterml (_, _) | Slist0 _ |
                              Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) |
-                             Sopt _ | Stoken _ | Stree _ | Skeyword _ when
-                             symb == prev_symb -> Some symb
+                             Sopt _ | Stry _ | Stoken _ | Stree _ |
+                             Skeyword _ when symb == prev_symb -> Some symb
                          | Slist0 symb ->
                              (match search_symbol symb with
                               | Some symb -> Some (Slist0 symb)
@@ -15509,6 +16315,10 @@ module Struct =
                              (match search_symbol symb with
                               | Some symb -> Some (Sopt symb)
                               | None -> None)
+                         | Stry symb ->
+                             (match search_symbol symb with
+                              | Some symb -> Some (Stry symb)
+                              | None -> None)
                          | Stree t ->
                              (match search_tree t with
                               | Some t -> Some (Stree t)
@@ -15527,9 +16337,53 @@ module Struct =
               struct
                 open Structure
                   
-                let empty_entry ename _ _ _ =
+                let empty_entry ename _ =
                   raise (Stream.Error ("entry [" ^ (ename ^ "] is empty")))
                   
+                let rec stream_map f (__strm : _ Stream.t) =
+                  match Stream.peek __strm with
+                  | Some x ->
+                      (Stream.junk __strm;
+                       let strm = __strm
+                       in
+                         Stream.lcons (fun _ -> f x)
+                           (Stream.slazy (fun _ -> stream_map f strm)))
+                  | _ -> Stream.sempty
+                  
+                let keep_prev_loc strm =
+                  match Stream.peek strm with
+                  | None -> Stream.sempty
+                  | Some ((_, init_loc)) ->
+                      let rec go prev_loc (__strm : _ Stream.t) =
+                        (match Stream.peek __strm with
+                         | Some ((tok, cur_loc)) ->
+                             (Stream.junk __strm;
+                              let strm = __strm
+                              in
+                                Stream.lcons
+                                  (fun _ ->
+                                     (tok,
+                                      {
+                                        prev_loc = prev_loc;
+                                        cur_loc = cur_loc;
+                                      }))
+                                  (Stream.slazy (fun _ -> go cur_loc strm)))
+                         | _ -> Stream.sempty)
+                      in go init_loc strm
+                  
+                let drop_prev_loc strm =
+                  stream_map (fun (tok, r) -> (tok, (r.cur_loc))) strm
+                  
+                let get_cur_loc strm =
+                  match Stream.peek strm with
+                  | Some ((_, r)) -> r.cur_loc
+                  | None -> Loc.ghost
+                  
+                let get_prev_loc strm =
+                  match Stream.peek strm with
+                  | Some ((_, r)) -> r.prev_loc
+                  | None -> Loc.ghost
+                  
                 let is_level_labelled n lev =
                   match lev.lname with | Some n1 -> n = n1 | None -> false
                   
@@ -15565,13 +16419,12 @@ module Struct =
                     | (Sself, Snterm e2) -> entry.ename = e2.ename
                     | (Snterml (e1, l1), Snterml (e2, l2)) ->
                         (e1.ename = e2.ename) && (l1 = l2)
-                    | (Slist0 s1, Slist0 s2) -> eq_symbols s1 s2
-                    | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) ->
+                    | (Slist0 s1, Slist0 s2) | (Slist1 s1, Slist1 s2) |
+                        (Sopt s1, Sopt s2) | (Stry s1, Stry s2) ->
+                        eq_symbols s1 s2
+                    | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) |
+                        (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) ->
                         (eq_symbols s1 s2) && (eq_symbols sep1 sep2)
-                    | (Slist1 s1, Slist1 s2) -> eq_symbols s1 s2
-                    | (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) ->
-                        (eq_symbols s1 s2) && (eq_symbols sep1 sep2)
-                    | (Sopt s1, Sopt s2) -> eq_symbols s1 s2
                     | (Stree t1, Stree t2) -> eq_trees t1 t2
                     | (Stoken ((_, s1)), Stoken ((_, s2))) ->
                         eq_Stoken_ids s1 s2
@@ -15592,13 +16445,12 @@ module Struct =
                   | (Snterm e1, Snterm e2) -> e1 == e2
                   | (Snterml (e1, l1), Snterml (e2, l2)) ->
                       (e1 == e2) && (l1 = l2)
-                  | (Slist0 s1, Slist0 s2) -> eq_symbol s1 s2
-                  | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) ->
-                      (eq_symbol s1 s2) && (eq_symbol sep1 sep2)
-                  | (Slist1 s1, Slist1 s2) -> eq_symbol s1 s2
-                  | (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) ->
+                  | (Slist0 s1, Slist0 s2) | (Slist1 s1, Slist1 s2) |
+                      (Sopt s1, Sopt s2) | (Stry s1, Stry s2) ->
+                      eq_symbol s1 s2
+                  | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) |
+                      (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) ->
                       (eq_symbol s1 s2) && (eq_symbol sep1 sep2)
-                  | (Sopt s1, Sopt s2) -> eq_symbol s1 s2
                   | (Stree _, Stree _) -> false
                   | (Stoken ((_, s1)), Stoken ((_, s2))) ->
                       eq_Stoken_ids s1 s2
@@ -15695,6 +16547,7 @@ module Struct =
                       fprintf ppf "LIST1 %a SEP %a" print_symbol1 s
                         print_symbol1 t
                   | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s
+                  | Stry s -> fprintf ppf "TRY %a" print_symbol1 s
                   | Snterml (e, l) -> fprintf ppf "%s@ LEVEL@ %S" e.ename l
                   | (Snterm _ | Snext | Sself | Stree _ | Stoken _ |
                        Skeyword _
@@ -15727,7 +16580,7 @@ module Struct =
                       print_level ppf pp_print_space (flatten_tree t)
                   | (Smeta (_, _, _) | Snterml (_, _) | Slist0 _ |
                        Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) |
-                       Sopt _
+                       Sopt _ | Stry _
                      as s) -> fprintf ppf "(%a)" print_symbol s
                 and print_rule ppf symbols =
                   (fprintf ppf "@[<hov 0>";
@@ -15796,7 +16649,8 @@ module Struct =
                     | DeadEnd -> List.rev acc
                     | LocAct (_, _) -> List.rev acc
                     | Node { node = n; brother = b; son = s } ->
-                        get_brothers ((Bro (n, get_brothers [] s)) :: acc) b
+                        get_brothers ((Bro (n, (get_brothers [] s))) :: acc)
+                          b
                   and print_brothers ppf brothers =
                     if brothers = []
                     then fprintf ppf "@ []"
@@ -15836,6 +16690,7 @@ module Struct =
                       fprintf ppf "LIST1 %a SEP %a" print_symbol1 s
                         print_symbol1 t
                   | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s
+                  | Stry s -> fprintf ppf "TRY %a" print_symbol1 s
                   | Snterml (e, l) -> fprintf ppf "%s@ LEVEL@ %S" e.ename l
                   | (Snterm _ | Snext | Sself | Stree _ | Stoken _ |
                        Skeyword _
@@ -15867,7 +16722,7 @@ module Struct =
                   | Stree t -> print_tree ppf t
                   | (Smeta (_, _, _) | Snterml (_, _) | Slist0 _ |
                        Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) |
-                       Sopt _
+                       Sopt _ | Stry _
                      as s) -> fprintf ppf "(%a)" print_symbol s
                 and print_rule ppf symbols =
                   (fprintf ppf "@[<hov 0>";
@@ -15947,11 +16802,8 @@ module Struct =
                   
                 let rec name_of_symbol_failed entry =
                   function
-                  | Slist0 s -> name_of_symbol_failed entry s
-                  | Slist0sep (s, _) -> name_of_symbol_failed entry s
-                  | Slist1 s -> name_of_symbol_failed entry s
-                  | Slist1sep (s, _) -> name_of_symbol_failed entry s
-                  | Sopt s -> name_of_symbol_failed entry s
+                  | Slist0 s | Slist0sep (s, _) | Slist1 s | Slist1sep (s, _)
+                      | Sopt s | Stry s -> name_of_symbol_failed entry s
                   | Stree t -> name_of_tree_failed entry t
                   | s -> name_of_symbol entry s
                 and name_of_tree_failed entry =
@@ -16024,7 +16876,7 @@ module Struct =
                          | _ ->
                              let txt1 = name_of_symbol_failed entry sep
                              in txt1 ^ (" or " ^ (txt ^ " expected")))
-                    | Sopt _ | Stree _ -> txt ^ " expected"
+                    | Stry _ | Sopt _ | Stree _ -> txt ^ " expected"
                     | _ ->
                         txt ^
                           (" expected after " ^
@@ -16075,20 +16927,61 @@ module Struct =
                   
                 open Sig.Grammar
                   
+                module StreamOrig = Stream
+                  
+                let njunk strm n = for i = 1 to n do Stream.junk strm done
+                  
+                let loc_bp = Tools.get_cur_loc
+                  
+                let loc_ep = Tools.get_prev_loc
+                  
+                let drop_prev_loc = Tools.drop_prev_loc
+                  
+                let add_loc bp parse_fun strm =
+                  let x = parse_fun strm in
+                  let ep = loc_ep strm in
+                  let loc = Loc.merge bp ep in (x, loc)
+                  
+                let stream_peek_nth strm n =
+                  let rec loop i =
+                    function
+                    | x :: xs -> if i = 1 then Some x else loop (i - 1) xs
+                    | [] -> None
+                  in loop n (Stream.npeek n strm)
+                  
                 module Stream =
                   struct
-                    include Stream
+                    type 'a t = 'a StreamOrig.t
+                    
+                    exception Failure = StreamOrig.Failure
                       
-                    let junk strm = Context.junk strm
+                    exception Error = StreamOrig.Error
                       
-                    let count strm = Context.bp strm
+                    let peek = StreamOrig.peek
+                      
+                    let junk = StreamOrig.junk
+                      
+                    let dup strm =
+                      let peek_nth n =
+                        let rec loop n =
+                          function
+                          | [] -> None
+                          | [ x ] -> if n = 0 then Some x else None
+                          | _ :: l -> loop (n - 1) l
+                        in loop n (Stream.npeek (n + 1) strm)
+                      in Stream.from peek_nth
                       
                   end
                   
-                let add_loc c bp parse_fun strm =
-                  let x = parse_fun c strm in
-                  let ep = Context.loc_ep c in
-                  let loc = Loc.merge bp ep in (x, loc)
+                let try_parser ps strm =
+                  let strm' = Stream.dup strm in
+                  let r =
+                    try ps strm'
+                    with
+                    | Stream.Error _ | Loc.Exc_located (_, (Stream.Error _))
+                        -> raise Stream.Failure
+                    | exc -> raise exc
+                  in (njunk strm (StreamOrig.count strm'); r)
                   
                 let level_number entry lab =
                   let rec lookup levn =
@@ -16111,7 +17004,7 @@ module Struct =
                   function
                   | Sself | Snext -> Snterm entry
                   | Snterml (e, _) -> Snterm e
-                  | Slist1sep (s, sep) -> Slist1sep (top_symb entry s, sep)
+                  | Slist1sep (s, sep) -> Slist1sep ((top_symb entry s), sep)
                   | _ -> raise Stream.Failure
                   
                 let top_tree entry =
@@ -16129,9 +17022,8 @@ module Struct =
                   | Snterml (e, _) -> e
                   | _ -> raise Stream.Failure
                   
-                let continue entry loc a s c son p1 (__strm : _ Stream.t) =
-                  let a =
-                    (entry_of_symb entry s).econtinue 0 loc a c __strm in
+                let continue entry loc a s son p1 (__strm : _ Stream.t) =
+                  let a = (entry_of_symb entry s).econtinue 0 loc a __strm in
                   let act =
                     try p1 __strm
                     with
@@ -16140,26 +17032,26 @@ module Struct =
                           (Stream.Error (Failed.tree_failed entry a s son))
                   in Action.mk (fun _ -> Action.getf act a)
                   
-                let skip_if_empty c bp _ =
-                  if (Context.loc_bp c) = bp
+                let skip_if_empty bp strm =
+                  if (loc_bp strm) = bp
                   then Action.mk (fun _ -> raise Stream.Failure)
                   else raise Stream.Failure
                   
-                let do_recover parser_of_tree entry nlevn alevn loc a s son
+                let do_recover parser_of_tree entry nlevn alevn loc a s son
                                (__strm : _ Stream.t) =
                   try
-                    parser_of_tree entry nlevn alevn (top_tree entry son) c
+                    parser_of_tree entry nlevn alevn (top_tree entry son)
                       __strm
                   with
                   | Stream.Failure ->
-                      (try skip_if_empty loc __strm
+                      (try skip_if_empty loc __strm
                        with
                        | Stream.Failure ->
-                           continue entry loc a s son
-                             (parser_of_tree entry nlevn alevn son c) __strm)
+                           continue entry loc a s son
+                             (parser_of_tree entry nlevn alevn son) __strm)
                   
-                let recover parser_of_tree entry nlevn alevn loc a s c son
-                            strm =
+                let recover parser_of_tree entry nlevn alevn loc a s son strm
+                            =
                   if !strict_parsing
                   then
                     raise (Stream.Error (Failed.tree_failed entry a s son))
@@ -16177,33 +17069,33 @@ module Struct =
                              Format.eprintf "\n%s%a@." msg Loc.print loc))
                        else ()
                      in
-                       do_recover parser_of_tree entry nlevn alevn loc a s c
+                       do_recover parser_of_tree entry nlevn alevn loc a s
                          son strm)
                   
                 let rec parser_of_tree entry nlevn alevn =
                   function
                   | DeadEnd ->
-                      (fun (__strm : _ Stream.t) -> raise Stream.Failure)
-                  | LocAct (act, _) -> (fun (__strm : _ Stream.t) -> act)
+                      (fun (__strm : _ Stream.t) -> raise Stream.Failure)
+                  | LocAct (act, _) -> (fun (__strm : _ Stream.t) -> act)
                   | Node
                       {
                         node = Sself;
                         son = LocAct (act, _);
                         brother = DeadEnd
                       } ->
-                      (fun (__strm : _ Stream.t) ->
-                         let a = entry.estart alevn __strm
+                      (fun (__strm : _ Stream.t) ->
+                         let a = entry.estart alevn __strm
                          in Action.getf act a)
                   | Node { node = Sself; son = LocAct (act, _); brother = bro
                       } ->
                       let p2 = parser_of_tree entry nlevn alevn bro
                       in
-                        (fun (__strm : _ Stream.t) ->
-                           match try Some (entry.estart alevn __strm)
+                        (fun (__strm : _ Stream.t) ->
+                           match try Some (entry.estart alevn __strm)
                                  with | Stream.Failure -> None
                            with
                            | Some a -> Action.getf act a
-                           | _ -> p2 __strm)
+                           | _ -> p2 __strm)
                   | Node { node = s; son = son; brother = DeadEnd } ->
                       let tokl =
                         (match s with
@@ -16217,11 +17109,12 @@ module Struct =
                              let p1 = parser_of_tree entry nlevn alevn son in
                              let p1 = parser_cont p1 entry nlevn alevn s son
                              in
-                               (fun c (__strm : _ Stream.t) ->
-                                  let bp = Stream.count __strm in
-                                  let a = ps c __strm in
+                               (fun strm ->
+                                  let bp = loc_bp strm in
+                                  let (__strm : _ Stream.t) = strm in
+                                  let a = ps __strm in
                                   let act =
-                                    try p1 bp a __strm
+                                    try p1 bp a __strm
                                     with
                                     | Stream.Failure ->
                                         raise (Stream.Error "")
@@ -16246,20 +17139,21 @@ module Struct =
                                parser_cont p1 entry nlevn alevn s son in
                              let p2 = parser_of_tree entry nlevn alevn bro
                              in
-                               (fun c (__strm : _ Stream.t) ->
-                                  let bp = Stream.count __strm
+                               (fun strm ->
+                                  let bp = loc_bp strm in
+                                  let (__strm : _ Stream.t) = strm
                                   in
-                                    match try Some (ps __strm)
+                                    match try Some (ps __strm)
                                           with | Stream.Failure -> None
                                     with
                                     | Some a ->
                                         let act =
-                                          (try p1 bp a __strm
+                                          (try p1 bp a __strm
                                            with
                                            | Stream.Failure ->
                                                raise (Stream.Error ""))
                                         in Action.getf act a
-                                    | _ -> p2 __strm)
+                                    | _ -> p2 __strm)
                          | Some ((tokl, last_tok, son)) ->
                              let p1 = parser_of_tree entry nlevn alevn son in
                              let p1 =
@@ -16267,18 +17161,18 @@ module Struct =
                              let p1 = parser_of_token_list p1 tokl in
                              let p2 = parser_of_tree entry nlevn alevn bro
                              in
-                               (fun (__strm : _ Stream.t) ->
-                                  try p1 __strm
-                                  with | Stream.Failure -> p2 __strm))
+                               (fun (__strm : _ Stream.t) ->
+                                  try p1 __strm
+                                  with | Stream.Failure -> p2 __strm))
                 and
-                  parser_cont p1 entry nlevn alevn s son loc a
+                  parser_cont p1 entry nlevn alevn s son loc a
                               (__strm : _ Stream.t) =
-                  try p1 __strm
+                  try p1 __strm
                   with
                   | Stream.Failure ->
                       (try
-                         recover parser_of_tree entry nlevn alevn loc a s c
-                           son __strm
+                         recover parser_of_tree entry nlevn alevn loc a s son
+                           __strm
                        with
                        | Stream.Failure ->
                            raise
@@ -16289,63 +17183,65 @@ module Struct =
                     | Stoken ((tematch, _)) :: tokl ->
                         (match tokl with
                          | [] ->
-                             let ps c _ =
-                               (match Context.peek_nth c n with
+                             let ps strm =
+                               (match stream_peek_nth strm n with
                                 | Some ((tok, _)) when tematch tok ->
-                                    (Context.njunk c n; Action.mk tok)
+                                    (njunk strm n; Action.mk tok)
                                 | _ -> raise Stream.Failure)
                              in
-                               (fun c (__strm : _ Stream.t) ->
-                                  let bp = Stream.count __strm in
-                                  let a = ps c __strm in
+                               (fun strm ->
+                                  let bp = loc_bp strm in
+                                  let (__strm : _ Stream.t) = strm in
+                                  let a = ps __strm in
                                   let act =
-                                    try p1 bp a __strm
+                                    try p1 bp a __strm
                                     with
                                     | Stream.Failure ->
                                         raise (Stream.Error "")
                                   in Action.getf act a)
                          | _ ->
-                             let ps c _ =
-                               (match Context.peek_nth c n with
+                             let ps strm =
+                               (match stream_peek_nth strm n with
                                 | Some ((tok, _)) when tematch tok -> tok
                                 | _ -> raise Stream.Failure) in
                              let p1 = loop (n + 1) tokl
                              in
-                               (fun (__strm : _ Stream.t) ->
-                                  let tok = ps __strm in
+                               (fun (__strm : _ Stream.t) ->
+                                  let tok = ps __strm in
                                   let s = __strm in
-                                  let act = p1 s in Action.getf act tok))
+                                  let act = p1 s in Action.getf act tok))
                     | Skeyword kwd :: tokl ->
                         (match tokl with
                          | [] ->
-                             let ps c _ =
-                               (match Context.peek_nth c n with
+                             let ps strm =
+                               (match stream_peek_nth strm n with
                                 | Some ((tok, _)) when
                                     Token.match_keyword kwd tok ->
-                                    (Context.njunk c n; Action.mk tok)
+                                    (njunk strm n; Action.mk tok)
                                 | _ -> raise Stream.Failure)
                              in
-                               (fun c (__strm : _ Stream.t) ->
-                                  let bp = Stream.count __strm in
-                                  let a = ps c __strm in
+                               (fun strm ->
+                                  let bp = loc_bp strm in
+                                  let (__strm : _ Stream.t) = strm in
+                                  let a = ps __strm in
                                   let act =
-                                    try p1 bp a __strm
+                                    try p1 bp a __strm
                                     with
                                     | Stream.Failure ->
                                         raise (Stream.Error "")
                                   in Action.getf act a)
                          | _ ->
-                             let ps c _ =
-                               (match Context.peek_nth c n with
+                             let ps strm =
+                               (match stream_peek_nth strm n with
                                 | Some ((tok, _)) when
                                     Token.match_keyword kwd tok -> tok
                                 | _ -> raise Stream.Failure) in
                              let p1 = loop (n + 1) tokl
                              in
-                               (fun (__strm : _ Stream.t) ->
-                                  let tok = ps __strm in
+                               (fun (__strm : _ Stream.t) ->
+                                  let tok = ps __strm in
                                   let s = __strm in
-                                  let act = p1 s in Action.getf act tok))
+                                  let act = p1 s in Action.getf act tok))
                     | _ -> invalid_arg "parser_of_token_list"
                   in loop 1 tokl
                 and parser_of_symbol entry nlevn =
@@ -16354,134 +17250,133 @@ module Struct =
                       let act = Obj.magic act entry symbl in
                       let pl = List.map (parser_of_symbol entry nlevn) symbl
                       in
-                        (fun c ->
-                           Obj.magic
-                             (List.fold_left
-                                (fun act p -> Obj.magic act (p c)) act pl))
+                        Obj.magic
+                          (List.fold_left (fun act p -> Obj.magic act p) act
+                             pl)
                   | Slist0 s ->
                       let ps = parser_of_symbol entry nlevn s in
-                      let rec loop al (__strm : _ Stream.t) =
-                        (match try Some (ps __strm)
+                      let rec loop al (__strm : _ Stream.t) =
+                        (match try Some (ps __strm)
                                with | Stream.Failure -> None
                          with
-                         | Some a -> loop (a :: al) __strm
+                         | Some a -> loop (a :: al) __strm
                          | _ -> al)
                       in
-                        (fun (__strm : _ Stream.t) ->
-                           let a = loop [] __strm in Action.mk (List.rev a))
+                        (fun (__strm : _ Stream.t) ->
+                           let a = loop [] __strm in Action.mk (List.rev a))
                   | Slist0sep (symb, sep) ->
                       let ps = parser_of_symbol entry nlevn symb in
                       let pt = parser_of_symbol entry nlevn sep in
-                      let rec kont al (__strm : _ Stream.t) =
-                        (match try Some (pt __strm)
+                      let rec kont al (__strm : _ Stream.t) =
+                        (match try Some (pt __strm)
                                with | Stream.Failure -> None
                          with
                          | Some v ->
                              let a =
-                               (try ps __strm
+                               (try ps __strm
                                 with
                                 | Stream.Failure ->
                                     raise
                                       (Stream.Error
                                          (Failed.symb_failed entry v sep symb)))
-                             in kont (a :: al) __strm
+                             in kont (a :: al) __strm
                          | _ -> al)
                       in
-                        (fun (__strm : _ Stream.t) ->
-                           match try Some (ps __strm)
+                        (fun (__strm : _ Stream.t) ->
+                           match try Some (ps __strm)
                                  with | Stream.Failure -> None
                            with
                            | Some a ->
                                let s = __strm
-                               in Action.mk (List.rev (kont [ a ] s))
+                               in Action.mk (List.rev (kont [ a ] s))
                            | _ -> Action.mk [])
                   | Slist1 s ->
                       let ps = parser_of_symbol entry nlevn s in
-                      let rec loop al (__strm : _ Stream.t) =
-                        (match try Some (ps __strm)
+                      let rec loop al (__strm : _ Stream.t) =
+                        (match try Some (ps __strm)
                                with | Stream.Failure -> None
                          with
-                         | Some a -> loop (a :: al) __strm
+                         | Some a -> loop (a :: al) __strm
                          | _ -> al)
                       in
-                        (fun (__strm : _ Stream.t) ->
-                           let a = ps __strm in
+                        (fun (__strm : _ Stream.t) ->
+                           let a = ps __strm in
                            let s = __strm
-                           in Action.mk (List.rev (loop [ a ] s)))
+                           in Action.mk (List.rev (loop [ a ] s)))
                   | Slist1sep (symb, sep) ->
                       let ps = parser_of_symbol entry nlevn symb in
                       let pt = parser_of_symbol entry nlevn sep in
-                      let rec kont al (__strm : _ Stream.t) =
-                        (match try Some (pt __strm)
+                      let rec kont al (__strm : _ Stream.t) =
+                        (match try Some (pt __strm)
                                with | Stream.Failure -> None
                          with
                          | Some v ->
                              let a =
-                               (try ps __strm
+                               (try ps __strm
                                 with
                                 | Stream.Failure ->
-                                    (try parse_top_symb' entry symb c __strm
+                                    (try parse_top_symb entry symb __strm
                                      with
                                      | Stream.Failure ->
                                          raise
                                            (Stream.Error
                                               (Failed.symb_failed entry v sep
                                                  symb))))
-                             in kont (a :: al) __strm
+                             in kont (a :: al) __strm
                          | _ -> al)
                       in
-                        (fun (__strm : _ Stream.t) ->
-                           let a = ps __strm in
+                        (fun (__strm : _ Stream.t) ->
+                           let a = ps __strm in
                            let s = __strm
-                           in Action.mk (List.rev (kont [ a ] s)))
+                           in Action.mk (List.rev (kont [ a ] s)))
                   | Sopt s ->
                       let ps = parser_of_symbol entry nlevn s
                       in
-                        (fun (__strm : _ Stream.t) ->
-                           match try Some (ps __strm)
+                        (fun (__strm : _ Stream.t) ->
+                           match try Some (ps __strm)
                                  with | Stream.Failure -> None
                            with
                            | Some a -> Action.mk (Some a)
                            | _ -> Action.mk None)
+                  | Stry s ->
+                      let ps = parser_of_symbol entry nlevn s
+                      in try_parser ps
                   | Stree t ->
                       let pt = parser_of_tree entry 1 0 t
                       in
-                        (fun c (__strm : _ Stream.t) ->
-                           let bp = Stream.count __strm in
-                           let (act, loc) = add_loc c bp pt __strm
+                        (fun strm ->
+                           let bp = loc_bp strm in
+                           let (__strm : _ Stream.t) = strm in
+                           let (act, loc) = add_loc bp pt __strm
                            in Action.getf act loc)
                   | Snterm e ->
-                      (fun c (__strm : _ Stream.t) -> e.estart 0 c __strm)
+                      (fun (__strm : _ Stream.t) -> e.estart 0 __strm)
                   | Snterml (e, l) ->
-                      (fun (__strm : _ Stream.t) ->
-                         e.estart (level_number e l) __strm)
+                      (fun (__strm : _ Stream.t) ->
+                         e.estart (level_number e l) __strm)
                   | Sself ->
-                      (fun c (__strm : _ Stream.t) -> entry.estart 0 c __strm)
+                      (fun (__strm : _ Stream.t) -> entry.estart 0 __strm)
                   | Snext ->
-                      (fun c (__strm : _ Stream.t) ->
-                         entry.estart nlevn c __strm)
+                      (fun (__strm : _ Stream.t) -> entry.estart nlevn __strm)
                   | Skeyword kwd ->
-                      (fun (__strm : _ Stream.t) ->
+                      (fun (__strm : _ Stream.t) ->
                          match Stream.peek __strm with
                          | Some ((tok, _)) when Token.match_keyword kwd tok
                              -> (Stream.junk __strm; Action.mk tok)
                          | _ -> raise Stream.Failure)
                   | Stoken ((f, _)) ->
-                      (fun (__strm : _ Stream.t) ->
+                      (fun (__strm : _ Stream.t) ->
                          match Stream.peek __strm with
                          | Some ((tok, _)) when f tok ->
                              (Stream.junk __strm; Action.mk tok)
                          | _ -> raise Stream.Failure)
-                and parse_top_symb' entry symb c =
-                  parser_of_symbol entry 0 (top_symb entry symb) c
                 and parse_top_symb entry symb strm =
-                  Context.call_with_ctx strm
-                    (fun c -> parse_top_symb' entry symb c (Context.stream c))
+                  parser_of_symbol entry 0 (top_symb entry symb) strm
                   
                 let rec start_parser_of_levels entry clevn =
                   function
                   | [] ->
-                      (fun _ (__strm : _ Stream.t) -> raise Stream.Failure)
+                      (fun _ (__strm : _ Stream.t) -> raise Stream.Failure)
                   | lev :: levs ->
                       let p1 = start_parser_of_levels entry (succ clevn) levs
                       in
@@ -16497,24 +17392,25 @@ module Struct =
                              in
                                (match levs with
                                 | [] ->
-                                    (fun levn c (__strm : _ Stream.t) ->
-                                       let bp = Stream.count __strm in
+                                    (fun levn strm ->
+                                       let bp = loc_bp strm in
+                                       let (__strm : _ Stream.t) = strm in
                                        let (act, loc) =
-                                         add_loc bp p2 __strm in
+                                         add_loc bp p2 __strm in
                                        let strm = __strm in
                                        let a = Action.getf act loc
-                                       in entry.econtinue levn loc a strm)
+                                       in entry.econtinue levn loc a strm)
                                 | _ ->
-                                    (fun levn strm ->
+                                    (fun levn strm ->
                                        if levn > clevn
-                                       then p1 levn strm
+                                       then p1 levn strm
                                        else
-                                         (let (__strm : _ Stream.t) = strm in
-                                          let bp = Stream.count __strm
+                                         (let bp = loc_bp strm in
+                                          let (__strm : _ Stream.t) = strm
                                           in
                                             match try
                                                     Some
-                                                      (add_loc bp p2 __strm)
+                                                      (add_loc bp p2 __strm)
                                                   with
                                                   | Stream.Failure -> None
                                             with
@@ -16522,19 +17418,19 @@ module Struct =
                                                 let a = Action.getf act loc
                                                 in
                                                   entry.econtinue levn loc a
-                                                    strm
-                                            | _ -> p1 levn __strm))))
+                                                    strm
+                                            | _ -> p1 levn __strm))))
                   
                 let start_parser_of_entry entry =
                   match entry.edesc with
                   | Dlevels [] -> Tools.empty_entry entry.ename
                   | Dlevels elev -> start_parser_of_levels entry 0 elev
-                  | Dparser p -> (fun _ _ strm -> p strm)
+                  | Dparser p -> (fun _ -> p)
                   
                 let rec continue_parser_of_levels entry clevn =
                   function
                   | [] ->
-                      (fun _ _ _ (__strm : _ Stream.t) ->
+                      (fun _ _ _ (__strm : _ Stream.t) ->
                          raise Stream.Failure)
                   | lev :: levs ->
                       let p1 =
@@ -16550,32 +17446,29 @@ module Struct =
                              let p2 =
                                parser_of_tree entry (succ clevn) alevn tree
                              in
-                               (fun levn bp a strm ->
+                               (fun levn bp a strm ->
                                   if levn > clevn
-                                  then p1 levn bp a strm
+                                  then p1 levn bp a strm
                                   else
                                     (let (__strm : _ Stream.t) = strm
                                      in
-                                       try p1 levn bp a __strm
+                                       try p1 levn bp a __strm
                                        with
                                        | Stream.Failure ->
                                            let (act, loc) =
-                                             add_loc bp p2 __strm in
+                                             add_loc bp p2 __strm in
                                            let a = Action.getf2 act a loc
-                                           in
-                                             entry.econtinue levn loc a c
-                                               strm)))
+                                           in entry.econtinue levn loc a strm)))
                   
                 let continue_parser_of_entry entry =
                   match entry.edesc with
                   | Dlevels elev ->
                       let p = continue_parser_of_levels entry 0 elev
                       in
-                        (fun levn bp a c (__strm : _ Stream.t) ->
-                           try p c levn bp a __strm
-                           with | Stream.Failure -> a)
+                        (fun levn bp a (__strm : _ Stream.t) ->
+                           try p levn bp a __strm with | Stream.Failure -> a)
                   | Dparser _ ->
-                      (fun _ _ _ (__strm : _ Stream.t) ->
+                      (fun _ _ _ (__strm : _ Stream.t) ->
                          raise Stream.Failure)
                   
               end
@@ -16605,13 +17498,13 @@ module Struct =
                   
                 let rec derive_eps =
                   function
-                  | Slist0 _ -> true
-                  | Slist0sep (_, _) -> true
-                  | Sopt _ -> true
+                  | Slist0 _ | Slist0sep (_, _) | Sopt _ -> true
+                  | Stry s -> derive_eps s
                   | Stree t -> tree_derive_eps t
-                  | Smeta (_, _, _) | Slist1 _ | Slist1sep (_, _) | Snterm _
-                      | Snterml (_, _) | Snext | Sself | Stoken _ |
-                      Skeyword _ -> false
+                  | Slist1 _ | Slist1sep (_, _) | Stoken _ | Skeyword _ ->
+                      false
+                  | Smeta (_, _, _) | Snterm _ | Snterml (_, _) | Snext |
+                      Sself -> false
                 and tree_derive_eps =
                   function
                   | LocAct (_, _) -> true
@@ -16750,9 +17643,8 @@ module Struct =
                       (check_gram entry t; check_gram entry s)
                   | Slist1sep (s, t) ->
                       (check_gram entry t; check_gram entry s)
-                  | Slist0 s -> check_gram entry s
-                  | Slist1 s -> check_gram entry s
-                  | Sopt s -> check_gram entry s
+                  | Slist0 s | Slist1 s | Sopt s | Stry s ->
+                      check_gram entry s
                   | Stree t -> tree_check_gram entry t
                   | Snext | Sself | Stoken _ | Skeyword _ -> ()
                 and tree_check_gram entry =
@@ -16772,11 +17664,9 @@ module Struct =
                   let rec insert =
                     function
                     | Smeta (_, sl, _) -> List.iter insert sl
-                    | Slist0 s -> insert s
-                    | Slist1 s -> insert s
+                    | Slist0 s | Slist1 s | Sopt s | Stry s -> insert s
                     | Slist0sep (s, t) -> (insert s; insert t)
                     | Slist1sep (s, t) -> (insert s; insert t)
-                    | Sopt s -> insert s
                     | Stree t -> tinsert t
                     | Skeyword kwd -> using gram kwd
                     | Snterm _ | Snterml (_, _) | Snext | Sself | Stoken _ ->
@@ -16809,7 +17699,7 @@ module Struct =
                                    "<W> Grammar extension: in [%s] some rule has been masked@."
                                    entry.ename
                                else ()
-                             in LocAct (action, old_action :: action_list)
+                             in LocAct (action, (old_action :: action_list))
                          | DeadEnd -> LocAct (action, []))
                   and insert_in_tree s sl tree =
                     match try_insert s sl tree with
@@ -16932,13 +17822,13 @@ module Struct =
                   in
                     (entry.edesc <- Dlevels elev;
                      entry.estart <-
-                       (fun lev strm ->
+                       (fun lev strm ->
                           let f = Parser.start_parser_of_entry entry
-                          in (entry.estart <- f; f lev strm));
+                          in (entry.estart <- f; f lev strm));
                      entry.econtinue <-
-                       fun lev bp a strm ->
+                       fun lev bp a strm ->
                          let f = Parser.continue_parser_of_entry entry
-                         in (entry.econtinue <- f; f lev bp a strm))
+                         in (entry.econtinue <- f; f lev bp a strm))
                   
               end
               
@@ -17010,13 +17900,12 @@ module Struct =
                   function
                   | Skeyword kwd -> removing gram kwd
                   | Smeta (_, sl, _) -> List.iter (decr_keyw_use gram) sl
-                  | Slist0 s -> decr_keyw_use gram s
-                  | Slist1 s -> decr_keyw_use gram s
+                  | Slist0 s | Slist1 s | Sopt s | Stry s ->
+                      decr_keyw_use gram s
                   | Slist0sep (s1, s2) ->
                       (decr_keyw_use gram s1; decr_keyw_use gram s2)
                   | Slist1sep (s1, s2) ->
                       (decr_keyw_use gram s1; decr_keyw_use gram s2)
-                  | Sopt s -> decr_keyw_use gram s
                   | Stree t -> decr_keyw_use_in_tree gram t
                   | Sself | Snext | Snterm _ | Snterml (_, _) | Stoken _ ->
                       ()
@@ -17097,13 +17986,13 @@ module Struct =
                       in
                         (entry.edesc <- Dlevels levs;
                          entry.estart <-
-                           (fun lev strm ->
+                           (fun lev strm ->
                               let f = Parser.start_parser_of_entry entry
-                              in (entry.estart <- f; f lev strm));
+                              in (entry.estart <- f; f lev strm));
                          entry.econtinue <-
-                           (fun lev bp a strm ->
+                           (fun lev bp a strm ->
                               let f = Parser.continue_parser_of_entry entry
-                              in (entry.econtinue <- f; f lev bp a strm)))
+                              in (entry.econtinue <- f; f lev bp a strm)))
                   | Dparser _ -> ()
                   
               end
@@ -17140,11 +18029,11 @@ module Struct =
                   
                 module Stream =
                   struct
-                    include Stream
-                      
-                    let junk strm = Context.junk strm
+                    type 'a t = 'a Stream.t
+                    
+                    exception Failure = Stream.Failure
                       
-                    let count strm = Context.bp strm
+                    exception Error = Stream.Error
                       
                   end
                   
@@ -17246,6 +18135,8 @@ module Struct =
                   
                 open Structure
                   
+                open Tools
+                  
                 type 'a t = internal_entry
                 
                 let name e = e.ename
@@ -17258,24 +18149,21 @@ module Struct =
                   {
                     egram = g;
                     ename = n;
-                    estart = Tools.empty_entry n;
+                    estart = empty_entry n;
                     econtinue =
-                      (fun _ _ _ (__strm : _ Stream.t) ->
+                      (fun _ _ _ (__strm : _ Stream.t) ->
                          raise Stream.Failure);
                     edesc = Dlevels [];
                   }
                   
                 let action_parse entry ts : Action.t =
-                  Context.call_with_ctx ts
-                    (fun c ->
-                       try entry.estart 0 c (Context.stream c)
-                       with
-                       | Stream.Failure ->
-                           Loc.raise (Context.loc_ep c)
-                             (Stream.Error
-                                ("illegal begin of " ^ entry.ename))
-                       | (Loc.Exc_located (_, _) as exc) -> raise exc
-                       | exc -> Loc.raise (Context.loc_ep c) exc)
+                  try entry.estart 0 ts
+                  with
+                  | Stream.Failure ->
+                      Loc.raise (get_prev_loc ts)
+                        (Stream.Error ("illegal begin of " ^ entry.ename))
+                  | (Loc.Exc_located (_, _) as exc) -> raise exc
+                  | exc -> Loc.raise (get_prev_loc ts) exc
                   
                 let lex entry loc cs = entry.egram.glexer loc cs
                   
@@ -17283,7 +18171,8 @@ module Struct =
                   lex entry loc (Stream.of_string str)
                   
                 let filter entry ts =
-                  Token.Filter.filter (get_filter entry.egram) ts
+                  keep_prev_loc
+                    (Token.Filter.filter (get_filter entry.egram) ts)
                   
                 let parse_tokens_after_filter entry ts =
                   Action.get (action_parse entry ts)
@@ -17297,33 +18186,36 @@ module Struct =
                 let parse_string entry loc str =
                   parse_tokens_before_filter entry (lex_string entry loc str)
                   
-                let of_parser g n (p : (Token.t * Loc.t) Stream.t -> 'a) :
-                  'a t =
-                  {
-                    egram = g;
-                    ename = n;
-                    estart = (fun _ _ ts -> Action.mk (p ts));
-                    econtinue =
-                      (fun _ _ _ _ (__strm : _ Stream.t) ->
-                         raise Stream.Failure);
-                    edesc = Dparser (fun ts -> Action.mk (p ts));
-                  }
+                let of_parser g n
+                  (p : (Token.t * token_info) Stream.t -> 'a) : 'a t =
+                  let f ts = Action.mk (p ts)
+                  in
+                    {
+                      egram = g;
+                      ename = n;
+                      estart = (fun _ -> f);
+                      econtinue =
+                        (fun _ _ _ (__strm : _ Stream.t) ->
+                           raise Stream.Failure);
+                      edesc = Dparser f;
+                    }
                   
-                let setup_parser e (p : (Token.t * Loc.t) Stream.t -> 'a) =
+                let setup_parser e
+                                 (p : (Token.t * token_info) Stream.t -> 'a)
+                                 =
                   let f ts = Action.mk (p ts)
                   in
-                    (e.estart <- (fun _ -> f);
+                    (e.estart <- (fun _ -> f);
                      e.econtinue <-
-                       (fun _ _ _ (__strm : _ Stream.t) ->
+                       (fun _ _ _ (__strm : _ Stream.t) ->
                           raise Stream.Failure);
                      e.edesc <- Dparser f)
                   
                 let clear e =
                   (e.estart <-
-                     (fun _ (__strm : _ Stream.t) -> raise Stream.Failure);
+                     (fun _ (__strm : _ Stream.t) -> raise Stream.Failure);
                    e.econtinue <-
-                     (fun _ _ _ _ (__strm : _ Stream.t) ->
-                        raise Stream.Failure);
+                     (fun _ _ _ (__strm : _ Stream.t) -> raise Stream.Failure);
                    e.edesc <- Dlevels [])
                   
                 let obj x = x
@@ -17350,6 +18242,8 @@ module Struct =
                   
                 module Fold = Fold.Make(Structure)
                   
+                module Tools = Tools.Make(Structure)
+                  
                 include Structure
                   
                 let gram =
@@ -17393,7 +18287,8 @@ module Struct =
                   
                 let lex_string loc str = lex loc (Stream.of_string str)
                   
-                let filter ts = Token.Filter.filter gram.gfilter ts
+                let filter ts =
+                  Tools.keep_prev_loc (Token.Filter.filter gram.gfilter ts)
                   
                 let parse_tokens_after_filter entry ts =
                   Entry.E.parse_tokens_after_filter entry ts
@@ -17442,6 +18337,8 @@ module Struct =
                   
                 module Fold = Fold.Make(Structure)
                   
+                module Tools = Tools.Make(Structure)
+                  
                 include Structure
                   
                 let mk () =
@@ -17461,7 +18358,8 @@ module Struct =
                   
                 let lex_string g loc str = lex g loc (Stream.of_string str)
                   
-                let filter g ts = Token.Filter.filter g.gfilter ts
+                let filter g ts =
+                  Tools.keep_prev_loc (Token.Filter.filter g.gfilter ts)
                   
                 let parse_tokens_after_filter entry ts =
                   Entry.parse_tokens_after_filter entry ts
@@ -17642,6 +18540,8 @@ module Printers =
               
             type sep = (unit, formatter, unit) format
             
+            type fun_binding = [ | `patt of Ast.patt | `newtype of string ]
+            
             val list' :
               (formatter -> 'a -> unit) ->
                 ('b, formatter, unit) format ->
@@ -17669,7 +18569,7 @@ module Printers =
             val get_ctyp_args :
               Ast.ctyp -> Ast.ctyp list -> (Ast.ctyp * (Ast.ctyp list))
               
-            val expr_fun_args : Ast.expr -> ((Ast.patt list) * Ast.expr)
+            val expr_fun_args : Ast.expr -> ((fun_binding list) * Ast.expr)
               
             class printer :
               ?curry_constr: bool ->
@@ -17690,9 +18590,11 @@ module Printers =
                         
                       val semisep : sep
                         
-                      val value_val : string
+                      method value_val : string
+                        
+                      method value_let : string
                         
-                      val value_let : string
+                      method andsep : sep
                         
                       method anti : formatter -> string -> unit
                         
@@ -17729,6 +18631,8 @@ module Printers =
                       method expr_list_cons :
                         bool -> formatter -> Ast.expr -> unit
                         
+                      method fun_binding : formatter -> fun_binding -> unit
+                        
                       method functor_arg :
                         formatter -> (string * Ast.module_type) -> unit
                         
@@ -17773,16 +18677,16 @@ module Printers =
                       method module_type :
                         formatter -> Ast.module_type -> unit
                         
+                      method override_flag :
+                        formatter -> Ast.override_flag -> unit
+                        
                       method mutable_flag :
-                        formatter -> Ast.meta_bool -> unit
+                        formatter -> Ast.mutable_flag -> unit
                         
                       method direction_flag :
-                        formatter -> Ast.meta_bool -> unit
+                        formatter -> Ast.direction_flag -> unit
                         
-                      method rec_flag : formatter -> Ast.meta_bool -> unit
-                        
-                      method flag :
-                        formatter -> Ast.meta_bool -> string -> unit
+                      method rec_flag : formatter -> Ast.rec_flag -> unit
                         
                       method node : formatter -> 'b -> ('b -> Loc.t) -> unit
                         
@@ -17801,7 +18705,7 @@ module Printers =
                       method patt_tycon : formatter -> Ast.patt -> unit
                         
                       method patt_expr_fun_args :
-                        formatter -> (Ast.patt * Ast.expr) -> unit
+                        formatter -> (fun_binding * Ast.expr) -> unit
                         
                       method patt_class_expr_fun_args :
                         formatter -> (Ast.patt * Ast.class_expr) -> unit
@@ -17810,10 +18714,10 @@ module Printers =
                         Loc.t -> formatter -> unit
                         
                       method private_flag :
-                        formatter -> Ast.meta_bool -> unit
+                        formatter -> Ast.private_flag -> unit
                         
                       method virtual_flag :
-                        formatter -> Ast.meta_bool -> unit
+                        formatter -> Ast.virtual_flag -> unit
                         
                       method quoted_string : formatter -> string -> unit
                         
@@ -17890,6 +18794,8 @@ module Printers =
               
             type sep = (unit, formatter, unit) format
             
+            type fun_binding = [ | `patt of Ast.patt | `newtype of string ]
+            
             let pp = fprintf
               
             let cut f = fprintf f "@ "
@@ -17918,7 +18824,7 @@ module Printers =
               function
               | Ast.LNil -> []
               | Ast.LCons (x, xs) -> x :: (list_of_meta_list xs)
-              | Ast.LAnt x -> assert false
+              | Ast.LAnt _ -> assert false
               
             let meta_list elt sep f mxs =
               let xs = list_of_meta_list mxs in list elt sep f xs
@@ -18016,8 +18922,11 @@ module Printers =
               | (Ast.ExFun (_, (Ast.McArr (_, p, (Ast.ExNil _), e))) as ge)
                   ->
                   if is_irrefut_patt p
-                  then (let (pl, e) = expr_fun_args e in ((p :: pl), e))
+                  then
+                    (let (pl, e) = expr_fun_args e in (((`patt p) :: pl), e))
                   else ([], ge)
+              | Ast.ExFUN (_, i, e) ->
+                  let (pl, e) = expr_fun_args e in (((`newtype i) :: pl), e)
               | ge -> ([], ge)
               
             let rec class_expr_fun_args =
@@ -18056,18 +18965,18 @@ module Printers =
                   
                 val semisep = (";;" : sep)
                   
-                val andsep = ("@]@ @[<2>and@ " : sep)
-                  
-                val value_val = "val"
-                  
-                val value_let = "let"
-                  
                 val mode = if comments then `comments else `no_comments
                   
                 val curry_constr = init_curry_constr
                   
                 val var_conversion = false
                   
+                method andsep : sep = "@]@ @[<2>and@ "
+                  
+                method value_val = "val"
+                  
+                method value_let = "let"
+                  
                 method semisep = semisep
                   
                 method set_semisep = fun s -> {< semisep = s; >}
@@ -18138,20 +19047,40 @@ module Printers =
                           o#class_params t2
                     | x -> o#ctyp f x
                   
-                method mutable_flag = fun f b -> o#flag f b "mutable"
+                method override_flag =
+                  fun f ->
+                    function
+                    | Ast.OvOverride -> pp f "!"
+                    | Ast.OvNil -> ()
+                    | Ast.OvAnt s -> o#anti f s
                   
-                method rec_flag = fun f b -> o#flag f b "rec"
+                method mutable_flag =
+                  fun f ->
+                    function
+                    | Ast.MuMutable -> pp f "mutable@ "
+                    | Ast.MuNil -> ()
+                    | Ast.MuAnt s -> o#anti f s
                   
-                method virtual_flag = fun f b -> o#flag f b "virtual"
+                method rec_flag =
+                  fun f ->
+                    function
+                    | Ast.ReRecursive -> pp f "rec@ "
+                    | Ast.ReNil -> ()
+                    | Ast.ReAnt s -> o#anti f s
                   
-                method private_flag = fun f b -> o#flag f b "private"
+                method virtual_flag =
+                  fun f ->
+                    function
+                    | Ast.ViVirtual -> pp f "virtual@ "
+                    | Ast.ViNil -> ()
+                    | Ast.ViAnt s -> o#anti f s
                   
-                method flag =
-                  fun f b n ->
-                    match b with
-                    | Ast.BTrue -> (pp_print_string f n; pp f "@ ")
-                    | Ast.BFalse -> ()
-                    | Ast.BAnt s -> o#anti f s
+                method private_flag =
+                  fun f ->
+                    function
+                    | Ast.PrPrivate -> pp f "private@ "
+                    | Ast.PrNil -> ()
+                    | Ast.PrAnt s -> o#anti f s
                   
                 method anti = fun f s -> pp f "$%s$" s
                   
@@ -18184,6 +19113,12 @@ module Printers =
                         pp f "@ | @[<2>%a@ when@ %a@ ->@ %a@]" o#patt p
                           o#under_pipe#expr w o#under_pipe#expr e
                   
+                method fun_binding =
+                  fun f ->
+                    function
+                    | `patt p -> o#simple_patt f p
+                    | `newtype i -> pp f "(type %s)" i
+                  
                 method binding =
                   fun f bi ->
                     let () = o#node f bi Ast.loc_of_binding
@@ -18191,7 +19126,7 @@ module Printers =
                       match bi with
                       | Ast.BiNil _ -> ()
                       | Ast.BiAnd (_, b1, b2) ->
-                          (o#binding f b1; pp f andsep; o#binding f b2)
+                          (o#binding f b1; pp f o#andsep; o#binding f b2)
                       | Ast.BiEq (_, p, e) ->
                           let (pl, e) =
                             (match p with
@@ -18202,11 +19137,11 @@ module Printers =
                              | (Ast.PaId (_, (Ast.IdLid (_, _))),
                                 Ast.ExTyc (_, e, t)) ->
                                  pp f "%a :@ %a =@ %a"
-                                   (list o#simple_patt "@ ") (p :: pl) 
-                                   o#ctyp t o#expr e
+                                   (list o#fun_binding "@ ")
+                                   ((`patt p) :: pl) o#ctyp t o#expr e
                              | _ ->
                                  pp f "%a @[<0>%a=@]@ %a" o#simple_patt p
-                                   (list' o#simple_patt "" "@ ") pl o#expr e)
+                                   (list' o#fun_binding "" "@ ") pl o#expr e)
                       | Ast.BiAnt (_, s) -> o#anti f s
                   
                 method record_binding =
@@ -18267,7 +19202,7 @@ module Printers =
                   fun f (p, e) ->
                     let (pl, e) = expr_fun_args e
                     in
-                      pp f "%a@ ->@ %a" (list o#simple_patt "@ ") (p :: pl)
+                      pp f "%a@ ->@ %a" (list o#fun_binding "@ ") (p :: pl)
                         o#expr e
                   
                 method patt_class_expr_fun_args =
@@ -18323,7 +19258,7 @@ module Printers =
                         pp f "@[<2>%a :@ %a@]" o#var s o#module_type mt
                     | Ast.MbAnd (_, mb1, mb2) ->
                         (o#module_rec_binding f mb1;
-                         pp f andsep;
+                         pp f o#andsep;
                          o#module_rec_binding f mb2)
                     | Ast.MbAnt (_, s) -> o#anti f s
                   
@@ -18342,15 +19277,16 @@ module Printers =
                     in
                       o#expr f
                         (Ast.ExApp (_loc,
-                           Ast.ExId (_loc, Ast.IdLid (_loc, "raise")),
-                           Ast.ExApp (_loc,
-                             Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdUid (_loc, "Match_failure")),
-                                 Ast.ExStr (_loc, Ast.safe_string_escaped n)),
-                               Ast.ExInt (_loc, string_of_int l)),
-                             Ast.ExInt (_loc, string_of_int c))))
+                           (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))),
+                           (Ast.ExApp (_loc,
+                              (Ast.ExApp (_loc,
+                                 (Ast.ExApp (_loc,
+                                    (Ast.ExId (_loc,
+                                       (Ast.IdUid (_loc, "Match_failure")))),
+                                    (Ast.ExStr (_loc,
+                                       (Ast.safe_string_escaped n))))),
+                                 (Ast.ExInt (_loc, (string_of_int l))))),
+                              (Ast.ExInt (_loc, (string_of_int c)))))))
                   
                 method node : 'a. formatter -> 'a -> ('a -> Loc.t) -> unit =
                   fun f node loc_of_node ->
@@ -18411,7 +19347,7 @@ module Printers =
                                      o#apply_expr y
                                | al ->
                                    pp f "@[<2>%a@ (%a)@]" o#apply_expr a
-                                     (list o#under_pipe#expr ",@ ") al)
+                                     (list o#under_pipe#apply_expr ",@ ") al)
                             else
                               pp f "@[<2>%a@]" (list o#apply_expr "@ ")
                                 (a :: al)
@@ -18427,7 +19363,11 @@ module Printers =
                             loc
                       | Ast.ExFun (_, (Ast.McArr (_, p, (Ast.ExNil _), e)))
                           when is_irrefut_patt p ->
-                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (p, e)
+                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args
+                            ((`patt p), e)
+                      | Ast.ExFUN (_, i, e) ->
+                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args
+                            ((`newtype i), e)
                       | Ast.ExFun (_, a) ->
                           pp f "@[<hv0>function%a@]" o#match_case a
                       | Ast.ExIfe (_, e1, e2, e3) ->
@@ -18559,22 +19499,29 @@ module Printers =
                           pp f "%a,@ %a" o#simple_expr e1 o#simple_expr e2
                       | Ast.ExSem (_, e1, e2) ->
                           pp f "%a;@ %a" o#under_semi#expr e1 o#expr e2
+                      | Ast.ExPkg (_, (Ast.MeTyc (_, me, mt))) ->
+                          pp f "@[<hv0>@[<hv2>(module %a : %a@])@]"
+                            o#module_expr me o#module_type mt
+                      | Ast.ExPkg (_, me) ->
+                          pp f "@[<hv0>@[<hv2>(module %a@])@]" o#module_expr
+                            me
                       | Ast.ExApp (_, _, _) | Ast.ExAcc (_, _, _) |
                           Ast.ExAre (_, _, _) | Ast.ExSte (_, _, _) |
                           Ast.ExAss (_, _, _) | Ast.ExSnd (_, _, _) |
-                          Ast.ExFun (_, _) | Ast.ExMat (_, _, _) |
-                          Ast.ExTry (_, _, _) | Ast.ExIfe (_, _, _, _) |
-                          Ast.ExLet (_, _, _, _) | Ast.ExLmd (_, _, _, _) |
-                          Ast.ExOpI (_, _, _) | Ast.ExAsr (_, _) |
-                          Ast.ExAsf _ | Ast.ExLaz (_, _) | Ast.ExNew (_, _) |
-                          Ast.ExObj (_, _, _) -> pp f "(%a)" o#reset#expr e
+                          Ast.ExFun (_, _) | Ast.ExFUN (_, _, _) |
+                          Ast.ExMat (_, _, _) | Ast.ExTry (_, _, _) |
+                          Ast.ExIfe (_, _, _, _) | Ast.ExLet (_, _, _, _) |
+                          Ast.ExLmd (_, _, _, _) | Ast.ExOpI (_, _, _) |
+                          Ast.ExAsr (_, _) | Ast.ExAsf _ | Ast.ExLaz (_, _) |
+                          Ast.ExNew (_, _) | Ast.ExObj (_, _, _) ->
+                          pp f "(%a)" o#reset#expr e
                   
                 method direction_flag =
                   fun f b ->
                     match b with
-                    | Ast.BTrue -> pp_print_string f "to"
-                    | Ast.BFalse -> pp_print_string f "downto"
-                    | Ast.BAnt s -> o#anti f s
+                    | Ast.DiTo -> pp_print_string f "to"
+                    | Ast.DiDownto -> pp_print_string f "downto"
+                    | Ast.DiAnt s -> o#anti f s
                   
                 method patt =
                   fun f p ->
@@ -18721,18 +19668,19 @@ module Printers =
                           pp f "@[<2>%s:@ %a@]" s o#simple_ctyp t
                       | Ast.TyOlb (_, s, t) ->
                           pp f "@[<2>?%s:@ %a@]" s o#simple_ctyp t
-                      | Ast.TyObj (_, (Ast.TyNil _), Ast.BFalse) ->
-                          pp f "< >"
-                      | Ast.TyObj (_, (Ast.TyNil _), Ast.BTrue) ->
+                      | Ast.TyObj (_, (Ast.TyNil _), Ast.RvNil) -> pp f "< >"
+                      | Ast.TyObj (_, (Ast.TyNil _), Ast.RvRowVar) ->
                           pp f "< .. >"
-                      | Ast.TyObj (_, t, Ast.BTrue) ->
+                      | Ast.TyObj (_, t, Ast.RvRowVar) ->
                           pp f "@[<0>@[<2><@ %a;@ ..@]@ >@]" o#ctyp t
-                      | Ast.TyObj (_, t, Ast.BFalse) ->
+                      | Ast.TyObj (_, t, Ast.RvNil) ->
                           pp f "@[<0>@[<2><@ %a@]@ >@]" o#ctyp t
                       | Ast.TyQuo (_, s) -> pp f "'%a" o#var s
                       | Ast.TyRec (_, t) -> pp f "@[<2>{@ %a@]@ }" o#ctyp t
                       | Ast.TySum (_, t) -> pp f "@[<0>%a@]" o#sum_type t
                       | Ast.TyTup (_, t) -> pp f "@[<1>(%a)@]" o#ctyp t
+                      | Ast.TyPkg (_, mt) ->
+                          pp f "@[<2>(module@ %a@])" o#module_type mt
                       | Ast.TyVrnEq (_, t) ->
                           pp f "@[<2>[@ %a@]@ ]" o#sum_type t
                       | Ast.TyVrnInf (_, t) ->
@@ -18745,9 +19693,6 @@ module Printers =
                       | Ast.TyVrnSup (_, t) ->
                           pp f "@[<2>[>@ %a@]@,]" o#sum_type t
                       | Ast.TyCls (_, i) -> pp f "@[<2>#%a@]" o#ident i
-                      | Ast.TyMan (_, t1, t2) ->
-                          pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1
-                            o#simple_ctyp t2
                       | Ast.TyVrn (_, s) -> pp f "`%a" o#var s
                       | Ast.TySta (_, t1, t2) ->
                           pp f "%a *@ %a" o#simple_ctyp t1 o#simple_ctyp t2
@@ -18787,6 +19732,8 @@ module Printers =
                           pp f "@[<2>mutable@ %a@]" o#ctyp t
                       | Ast.TyAmp (_, t1, t2) ->
                           pp f "%a@ &@ %a" o#ctyp t1 o#ctyp t2
+                      | Ast.TyMan (_, t1, t2) ->
+                          pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1 o#ctyp t2
                       | Ast.TyDcl (_, tn, tp, te, cl) ->
                           (pp f "@[<2>%a%a@]" o#type_params tp o#var tn;
                            (match te with
@@ -18869,7 +19816,7 @@ module Printers =
                           pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t
                             semisep
                       | Ast.SgVal (_, s, t) ->
-                          pp f "@[<2>%s %a :@ %a%(%)@]" value_val o#var s
+                          pp f "@[<2>%s %a :@ %a%(%)@]" o#value_val o#var s
                             o#ctyp t semisep
                       | Ast.SgInc (_, mt) ->
                           pp f "@[<2>include@ %a%(%)@]" o#module_type mt
@@ -18932,7 +19879,7 @@ module Printers =
                           pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t
                             semisep
                       | Ast.StVal (_, r, bi) ->
-                          pp f "@[<2>%s %a%a%(%)@]" value_let o#rec_flag r
+                          pp f "@[<2>%s %a%a%(%)@]" o#value_let o#rec_flag r
                             o#binding bi semisep
                       | Ast.StExp (_, e) ->
                           pp f "@[<2>let _ =@ %a%(%)@]" o#expr e semisep
@@ -18981,9 +19928,14 @@ module Printers =
                       | Ast.WcMod (_, i1, i2) ->
                           pp f "@[<2>module@ %a =@ %a@]" o#ident i1 o#ident
                             i2
+                      | Ast.WcTyS (_, t1, t2) ->
+                          pp f "@[<2>type@ %a :=@ %a@]" o#ctyp t1 o#ctyp t2
+                      | Ast.WcMoS (_, i1, i2) ->
+                          pp f "@[<2>module@ %a :=@ %a@]" o#ident i1 
+                            o#ident i2
                       | Ast.WcAnd (_, wc1, wc2) ->
                           (o#with_constraint f wc1;
-                           pp f andsep;
+                           pp f o#andsep;
                            o#with_constraint f wc2)
                       | Ast.WcAnt (_, s) -> o#anti f s
                   
@@ -19020,6 +19972,12 @@ module Printers =
                       | Ast.MeTyc (_, me, mt) ->
                           pp f "@[<1>(%a :@ %a)@]" o#module_expr me
                             o#module_type mt
+                      | Ast.MePkg (_,
+                          (Ast.ExTyc (_, e, (Ast.TyPkg (_, mt))))) ->
+                          pp f "@[<1>(%s %a :@ %a)@]" o#value_val o#expr e
+                            o#module_type mt
+                      | Ast.MePkg (_, e) ->
+                          pp f "@[<1>(%s %a)@]" o#value_val o#expr e
                   
                 method class_expr =
                   fun f ce ->
@@ -19028,14 +19986,15 @@ module Printers =
                       match ce with
                       | Ast.CeApp (_, ce, e) ->
                           pp f "@[<2>%a@ %a@]" o#class_expr ce o#expr e
-                      | Ast.CeCon (_, Ast.BFalse, i, (Ast.TyNil _)) ->
+                      | Ast.CeCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
                           pp f "@[<2>%a@]" o#ident i
-                      | Ast.CeCon (_, Ast.BFalse, i, t) ->
+                      | Ast.CeCon (_, Ast.ViNil, i, t) ->
                           pp f "@[<2>@[<1>[%a]@]@ %a@]" o#class_params t
                             o#ident i
-                      | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)),
+                      | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
                           (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
-                      | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) ->
+                      | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
+                          ->
                           pp f "@[<2>virtual@ @[<1>[%a]@]@ %a@]"
                             o#class_params t o#var i
                       | Ast.CeFun (_, p, ce) ->
@@ -19057,7 +20016,7 @@ module Printers =
                       | Ast.CeAnt (_, s) -> o#anti f s
                       | Ast.CeAnd (_, ce1, ce2) ->
                           (o#class_expr f ce1;
-                           pp f andsep;
+                           pp f o#andsep;
                            o#class_expr f ce2)
                       | Ast.CeEq (_, ce1, (Ast.CeFun (_, p, ce2))) when
                           is_irrefut_patt p ->
@@ -19073,14 +20032,15 @@ module Printers =
                     let () = o#node f ct Ast.loc_of_class_type
                     in
                       match ct with
-                      | Ast.CtCon (_, Ast.BFalse, i, (Ast.TyNil _)) ->
+                      | Ast.CtCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
                           pp f "@[<2>%a@]" o#ident i
-                      | Ast.CtCon (_, Ast.BFalse, i, t) ->
+                      | Ast.CtCon (_, Ast.ViNil, i, t) ->
                           pp f "@[<2>[@,%a@]@,]@ %a" o#class_params t 
                             o#ident i
-                      | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)),
+                      | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
                           (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
-                      | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) ->
+                      | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
+                          ->
                           pp f "@[<2>virtual@ [@,%a@]@,]@ %a" o#class_params
                             t o#var i
                       | Ast.CtFun (_, t, ct) ->
@@ -19096,7 +20056,7 @@ module Printers =
                       | Ast.CtAnt (_, s) -> o#anti f s
                       | Ast.CtAnd (_, ct1, ct2) ->
                           (o#class_type f ct1;
-                           pp f andsep;
+                           pp f o#andsep;
                            o#class_type f ct2)
                       | Ast.CtCol (_, ct1, ct2) ->
                           pp f "%a :@ %a" o#class_type ct1 o#class_type ct2
@@ -19130,7 +20090,7 @@ module Printers =
                           pp f "@[<2>method virtual %a%a :@ %a%(%)@]"
                             o#private_flag pr o#var s o#ctyp t semisep
                       | Ast.CgVal (_, s, mu, vi, t) ->
-                          pp f "@[<2>%s %a%a%a :@ %a%(%)@]" value_val
+                          pp f "@[<2>%s %a%a%a :@ %a%(%)@]" o#value_val
                             o#mutable_flag mu o#virtual_flag vi o#var s
                             o#ctyp t semisep
                       | Ast.CgAnt (_, s) -> pp f "%a%(%)" o#anti s semisep
@@ -19151,30 +20111,33 @@ module Printers =
                       | Ast.CrCtr (_, t1, t2) ->
                           pp f "@[<2>constraint %a =@ %a%(%)@]" o#ctyp t1
                             o#ctyp t2 semisep
-                      | Ast.CrInh (_, ce, "") ->
-                          pp f "@[<2>inherit@ %a%(%)@]" o#class_expr ce
+                      | Ast.CrInh (_, ov, ce, "") ->
+                          pp f "@[<2>inherit%a@ %a%(%)@]" o#override_flag ov
+                            o#class_expr ce semisep
+                      | Ast.CrInh (_, ov, ce, s) ->
+                          pp f "@[<2>inherit%a@ %a as@ %a%(%)@]"
+                            o#override_flag ov o#class_expr ce o#var s
                             semisep
-                      | Ast.CrInh (_, ce, s) ->
-                          pp f "@[<2>inherit@ %a as@ %a%(%)@]" o#class_expr
-                            ce o#var s semisep
                       | Ast.CrIni (_, e) ->
                           pp f "@[<2>initializer@ %a%(%)@]" o#expr e semisep
-                      | Ast.CrMth (_, s, pr, e, (Ast.TyNil _)) ->
-                          pp f "@[<2>method %a%a =@ %a%(%)@]" o#private_flag
-                            pr o#var s o#expr e semisep
-                      | Ast.CrMth (_, s, pr, e, t) ->
-                          pp f "@[<2>method %a%a :@ %a =@ %a%(%)@]"
-                            o#private_flag pr o#var s o#ctyp t o#expr e
-                            semisep
+                      | Ast.CrMth (_, s, ov, pr, e, (Ast.TyNil _)) ->
+                          pp f "@[<2>method%a %a%a =@ %a%(%)@]"
+                            o#override_flag ov o#private_flag pr o#var s
+                            o#expr e semisep
+                      | Ast.CrMth (_, s, ov, pr, e, t) ->
+                          pp f "@[<2>method%a %a%a :@ %a =@ %a%(%)@]"
+                            o#override_flag ov o#private_flag pr o#var s
+                            o#ctyp t o#expr e semisep
                       | Ast.CrVir (_, s, pr, t) ->
                           pp f "@[<2>method virtual@ %a%a :@ %a%(%)@]"
                             o#private_flag pr o#var s o#ctyp t semisep
                       | Ast.CrVvr (_, s, mu, t) ->
-                          pp f "@[<2>%s virtual %a%a :@ %a%(%)@]" value_val
+                          pp f "@[<2>%s virtual %a%a :@ %a%(%)@]" o#value_val
                             o#mutable_flag mu o#var s o#ctyp t semisep
-                      | Ast.CrVal (_, s, mu, e) ->
-                          pp f "@[<2>%s %a%a =@ %a%(%)@]" value_val
-                            o#mutable_flag mu o#var s o#expr e semisep
+                      | Ast.CrVal (_, s, ov, mu, e) ->
+                          pp f "@[<2>%s%a %a%a =@ %a%(%)@]" o#value_val
+                            o#override_flag ov o#mutable_flag mu o#var s
+                            o#expr e semisep
                       | Ast.CrAnt (_, s) -> pp f "%a%(%)" o#anti s semisep
                   
                 method implem =
@@ -19351,13 +20314,7 @@ module Printers =
                   PP_o.printer ~curry_constr: init_curry_constr ~comments () as
                   super
                   
-                val semisep = (";" : sep)
-                  
-                val andsep = ("@]@ @[<2>and@ " : sep)
-                  
-                val value_val = "value"
-                  
-                val value_let = "value"
+                val! semisep = (";" : sep)
                   
                 val mode = if comments then `comments else `no_comments
                   
@@ -19365,6 +20322,12 @@ module Printers =
                   
                 val first_match_case = true
                   
+                method andsep : sep = "@]@ @[<2>and@ "
+                  
+                method value_val = "value"
+                  
+                method value_let = "value"
+                  
                 method under_pipe = o
                   
                 method under_semi = o
@@ -19520,7 +20483,11 @@ module Printers =
                           pp f "@[<2>%a@ :=@ %a@]" o#dot_expr e1 o#expr e2
                       | Ast.ExFun (_, (Ast.McArr (_, p, (Ast.ExNil _), e)))
                           when Ast.is_irrefut_patt p ->
-                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (p, e)
+                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args
+                            ((`patt p), e)
+                      | Ast.ExFUN (_, i, e) ->
+                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args
+                            ((`newtype i), e)
                       | Ast.ExFun (_, a) ->
                           pp f "@[<hv0>fun%a@]" o#match_case a
                       | Ast.ExAsf _ -> pp f "@[<2>assert@ False@]"
@@ -19636,14 +20603,15 @@ module Printers =
                       | Ast.CtFun (_, t, ct) ->
                           pp f "@[<2>[ %a ] ->@ %a@]" o#simple_ctyp t
                             o#class_type ct
-                      | Ast.CtCon (_, Ast.BFalse, i, (Ast.TyNil _)) ->
+                      | Ast.CtCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
                           pp f "@[<2>%a@]" o#ident i
-                      | Ast.CtCon (_, Ast.BFalse, i, t) ->
+                      | Ast.CtCon (_, Ast.ViNil, i, t) ->
                           pp f "@[<2>%a [@,%a@]@,]" o#ident i o#class_params
                             t
-                      | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)),
+                      | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
                           (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
-                      | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) ->
+                      | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
+                          ->
                           pp f "@[<2>virtual@ %a@ [@,%a@]@,]" o#var i
                             o#class_params t
                       | ct -> super#class_type f ct
@@ -19653,14 +20621,15 @@ module Printers =
                     let () = o#node f ce Ast.loc_of_class_expr
                     in
                       match ce with
-                      | Ast.CeCon (_, Ast.BFalse, i, (Ast.TyNil _)) ->
+                      | Ast.CeCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
                           pp f "@[<2>%a@]" o#ident i
-                      | Ast.CeCon (_, Ast.BFalse, i, t) ->
+                      | Ast.CeCon (_, Ast.ViNil, i, t) ->
                           pp f "@[<2>%a@ @[<1>[%a]@]@]" o#ident i
                             o#class_params t
-                      | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)),
+                      | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
                           (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
-                      | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) ->
+                      | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
+                          ->
                           pp f "@[<2>virtual@ %a@ @[<1>[%a]@]@]" o#var i
                             o#ctyp t
                       | ce -> super#class_expr f ce
@@ -19669,11 +20638,14 @@ module Printers =
               
             let with_outfile = with_outfile
               
-            let print = print
+            let print output_file fct =
+              let o = new printer () in with_outfile output_file (fct o)
               
-            let print_interf = print_interf
+            let print_interf ?input_file:(_) ?output_file sg =
+              print output_file (fun o -> o#interf) sg
               
-            let print_implem = print_implem
+            let print_implem ?input_file:(_) ?output_file st =
+              print output_file (fun o -> o#implem) st
               
           end
           
@@ -19857,6 +20829,8 @@ module OCamlInitSyntax =
           
         let direction_flag = Gram.Entry.mk "direction_flag"
           
+        let direction_flag_quot = Gram.Entry.mk "direction_flag_quot"
+          
         let dummy = Gram.Entry.mk "dummy"
           
         let entry_eoi = Gram.Entry.mk "entry_eoi"
@@ -19930,6 +20904,8 @@ module OCamlInitSyntax =
           
         let module_type = Gram.Entry.mk "module_type"
           
+        let package_type = Gram.Entry.mk "package_type"
+          
         let more_ctyp = Gram.Entry.mk "more_ctyp"
           
         let name_tags = Gram.Entry.mk "name_tags"
@@ -19948,6 +20924,8 @@ module OCamlInitSyntax =
           
         let opt_dot_dot = Gram.Entry.mk "opt_dot_dot"
           
+        let row_var_flag_quot = Gram.Entry.mk "row_var_flag_quot"
+          
         let opt_eq_ctyp = Gram.Entry.mk "opt_eq_ctyp"
           
         let opt_expr = Gram.Entry.mk "opt_expr"
@@ -19956,18 +20934,30 @@ module OCamlInitSyntax =
           
         let opt_mutable = Gram.Entry.mk "opt_mutable"
           
+        let mutable_flag_quot = Gram.Entry.mk "mutable_flag_quot"
+          
         let opt_polyt = Gram.Entry.mk "opt_polyt"
           
         let opt_private = Gram.Entry.mk "opt_private"
           
+        let private_flag_quot = Gram.Entry.mk "private_flag_quot"
+          
         let opt_rec = Gram.Entry.mk "opt_rec"
           
+        let rec_flag_quot = Gram.Entry.mk "rec_flag_quot"
+          
         let opt_sig_items = Gram.Entry.mk "opt_sig_items"
           
         let opt_str_items = Gram.Entry.mk "opt_str_items"
           
         let opt_virtual = Gram.Entry.mk "opt_virtual"
           
+        let virtual_flag_quot = Gram.Entry.mk "virtual_flag_quot"
+          
+        let opt_override = Gram.Entry.mk "opt_override"
+          
+        let override_flag_quot = Gram.Entry.mk "override_flag_quot"
+          
         let opt_when_expr = Gram.Entry.mk "opt_when_expr"
           
         let patt = Gram.Entry.mk "patt"
index d3ea1c7a0305d116cc097b88c716fef77d477362..3eb7978ac8e49b486187b7a05983de6e4e83d112 100644 (file)
@@ -35,7 +35,6 @@ module Struct = struct
     sig INCLUDE "camlp4/Camlp4/Struct/FreeVars.mli"; end =
     struct INCLUDE "camlp4/Camlp4/Struct/FreeVars.ml"; end;
   module Grammar = struct
-    module Context = struct INCLUDE "camlp4/Camlp4/Struct/Grammar/Context.ml"; end;
     module Structure = struct INCLUDE "camlp4/Camlp4/Struct/Grammar/Structure.ml"; end;
     module Search = struct INCLUDE "camlp4/Camlp4/Struct/Grammar/Search.ml"; end;
     (* module Find = struct INCLUDE "camlp4/Camlp4/Struct/Grammar/Find.ml"; end; *)
index d7af05e7447755225b17046b8c4ee90acc8d165e..67d865b5b3a774ae9cb9c4b67f60c7e52e8d1007 100644 (file)
@@ -568,7 +568,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                        (Ast.IdUid _loc "CeLet")))
                                  (meta_loc _loc x0))
-                              (meta_meta_bool _loc x1))
+                              (meta_rec_flag _loc x1))
                            (meta_binding _loc x2))
                         (meta_class_expr _loc x3)
                   | Ast.CeFun x0 x1 x2 ->
@@ -590,7 +590,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                        (Ast.IdUid _loc "CeCon")))
                                  (meta_loc _loc x0))
-                              (meta_meta_bool _loc x1))
+                              (meta_virtual_flag _loc x1))
                            (meta_ident _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CeApp x0 x1 x2 ->
@@ -622,7 +622,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                        (Ast.IdUid _loc "CgVir")))
                                  (meta_loc _loc x0))
                               (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
+                           (meta_private_flag _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CgVal x0 x1 x2 x3 x4 ->
                       Ast.ExApp _loc
@@ -635,8 +635,8 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                           (Ast.IdUid _loc "CgVal")))
                                     (meta_loc _loc x0))
                                  (meta_string _loc x1))
-                              (meta_meta_bool _loc x2))
-                           (meta_meta_bool _loc x3))
+                              (meta_mutable_flag _loc x2))
+                           (meta_virtual_flag _loc x3))
                         (meta_ctyp _loc x4)
                   | Ast.CgMth x0 x1 x2 x3 ->
                       Ast.ExApp _loc
@@ -648,7 +648,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                        (Ast.IdUid _loc "CgMth")))
                                  (meta_loc _loc x0))
                               (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
+                           (meta_private_flag _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CgInh x0 x1 ->
                       Ast.ExApp _loc
@@ -697,7 +697,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                        (Ast.IdUid _loc "CrVvr")))
                                  (meta_loc _loc x0))
                               (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
+                           (meta_mutable_flag _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CrVir x0 x1 x2 x3 ->
                       Ast.ExApp _loc
@@ -709,21 +709,9 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                        (Ast.IdUid _loc "CrVir")))
                                  (meta_loc _loc x0))
                               (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
+                           (meta_private_flag _loc x2))
                         (meta_ctyp _loc x3)
-                  | Ast.CrVal x0 x1 x2 x3 ->
-                      Ast.ExApp _loc
-                        (Ast.ExApp _loc
-                           (Ast.ExApp _loc
-                              (Ast.ExApp _loc
-                                 (Ast.ExId _loc
-                                    (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
-                                       (Ast.IdUid _loc "CrVal")))
-                                 (meta_loc _loc x0))
-                              (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
-                        (meta_expr _loc x3)
-                  | Ast.CrMth x0 x1 x2 x3 x4 ->
+                  | Ast.CrVal x0 x1 x2 x3 x4 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
                            (Ast.ExApp _loc
@@ -731,12 +719,29 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                  (Ast.ExApp _loc
                                     (Ast.ExId _loc
                                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
-                                          (Ast.IdUid _loc "CrMth")))
+                                          (Ast.IdUid _loc "CrVal")))
                                     (meta_loc _loc x0))
                                  (meta_string _loc x1))
-                              (meta_meta_bool _loc x2))
-                           (meta_expr _loc x3))
-                        (meta_ctyp _loc x4)
+                              (meta_override_flag _loc x2))
+                           (meta_mutable_flag _loc x3))
+                        (meta_expr _loc x4)
+                  | Ast.CrMth x0 x1 x2 x3 x4 x5 ->
+                      Ast.ExApp _loc
+                        (Ast.ExApp _loc
+                           (Ast.ExApp _loc
+                              (Ast.ExApp _loc
+                                 (Ast.ExApp _loc
+                                    (Ast.ExApp _loc
+                                       (Ast.ExId _loc
+                                          (Ast.IdAcc _loc
+                                             (Ast.IdUid _loc "Ast")
+                                             (Ast.IdUid _loc "CrMth")))
+                                       (meta_loc _loc x0))
+                                    (meta_string _loc x1))
+                                 (meta_override_flag _loc x2))
+                              (meta_private_flag _loc x3))
+                           (meta_expr _loc x4))
+                        (meta_ctyp _loc x5)
                   | Ast.CrIni x0 x1 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
@@ -745,16 +750,18 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                  (Ast.IdUid _loc "CrIni")))
                            (meta_loc _loc x0))
                         (meta_expr _loc x1)
-                  | Ast.CrInh x0 x1 x2 ->
+                  | Ast.CrInh x0 x1 x2 x3 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
                            (Ast.ExApp _loc
-                              (Ast.ExId _loc
-                                 (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
-                                    (Ast.IdUid _loc "CrInh")))
-                              (meta_loc _loc x0))
-                           (meta_class_expr _loc x1))
-                        (meta_string _loc x2)
+                              (Ast.ExApp _loc
+                                 (Ast.ExId _loc
+                                    (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                       (Ast.IdUid _loc "CrInh")))
+                                 (meta_loc _loc x0))
+                              (meta_override_flag _loc x1))
+                           (meta_class_expr _loc x2))
+                        (meta_string _loc x3)
                   | Ast.CrCtr x0 x1 x2 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
@@ -843,7 +850,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                        (Ast.IdUid _loc "CtCon")))
                                  (meta_loc _loc x0))
-                              (meta_meta_bool _loc x1))
+                              (meta_virtual_flag _loc x1))
                            (meta_ident _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CtNil x0 ->
@@ -855,6 +862,14 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                 and meta_ctyp _loc =
                   fun
                   [ Ast.TyAnt x0 x1 -> Ast.ExAnt x0 x1
+                  | Ast.TyPkg x0 x1 ->
+                      Ast.ExApp _loc
+                        (Ast.ExApp _loc
+                           (Ast.ExId _loc
+                              (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                 (Ast.IdUid _loc "TyPkg")))
+                           (meta_loc _loc x0))
+                        (meta_module_type _loc x1)
                   | Ast.TyOfAmp x0 x1 x2 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
@@ -1080,7 +1095,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdUid _loc "TyObj")))
                               (meta_loc _loc x0))
                            (meta_ctyp _loc x1))
-                        (meta_meta_bool _loc x2)
+                        (meta_row_var_flag _loc x2)
                   | Ast.TyDcl x0 x1 x2 x3 x4 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
@@ -1178,9 +1193,38 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "TyNil")))
                         (meta_loc _loc x0) ]
+                and meta_direction_flag _loc =
+                  fun
+                  [ Ast.DiAnt x0 -> Ast.ExAnt _loc x0
+                  | Ast.DiDownto ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "DiDownto"))
+                  | Ast.DiTo ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "DiTo")) ]
                 and meta_expr _loc =
                   fun
-                  [ Ast.ExOpI x0 x1 x2 ->
+                  [ Ast.ExPkg x0 x1 ->
+                      Ast.ExApp _loc
+                        (Ast.ExApp _loc
+                           (Ast.ExId _loc
+                              (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                 (Ast.IdUid _loc "ExPkg")))
+                           (meta_loc _loc x0))
+                        (meta_module_expr _loc x1)
+                  | Ast.ExFUN x0 x1 x2 ->
+                      Ast.ExApp _loc
+                        (Ast.ExApp _loc
+                           (Ast.ExApp _loc
+                              (Ast.ExId _loc
+                                 (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                    (Ast.IdUid _loc "ExFUN")))
+                              (meta_loc _loc x0))
+                           (meta_string _loc x1))
+                        (meta_expr _loc x2)
+                  | Ast.ExOpI x0 x1 x2 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
                            (Ast.ExApp _loc
@@ -1359,7 +1403,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                        (Ast.IdUid _loc "ExLet")))
                                  (meta_loc _loc x0))
-                              (meta_meta_bool _loc x1))
+                              (meta_rec_flag _loc x1))
                            (meta_binding _loc x2))
                         (meta_expr _loc x3)
                   | Ast.ExLaz x0 x1 ->
@@ -1447,7 +1491,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (meta_string _loc x1))
                                  (meta_expr _loc x2))
                               (meta_expr _loc x3))
-                           (meta_meta_bool _loc x4))
+                           (meta_direction_flag _loc x4))
                         (meta_expr _loc x5)
                   | Ast.ExFlo x0 x1 ->
                       Ast.ExApp _loc
@@ -1717,6 +1761,14 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                 and meta_module_expr _loc =
                   fun
                   [ Ast.MeAnt x0 x1 -> Ast.ExAnt x0 x1
+                  | Ast.MePkg x0 x1 ->
+                      Ast.ExApp _loc
+                        (Ast.ExApp _loc
+                           (Ast.ExId _loc
+                              (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                 (Ast.IdUid _loc "MePkg")))
+                           (meta_loc _loc x0))
+                        (meta_expr _loc x1)
                   | Ast.MeTyc x0 x1 x2 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
@@ -1826,6 +1878,28 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "MtNil")))
                         (meta_loc _loc x0) ]
+                and meta_mutable_flag _loc =
+                  fun
+                  [ Ast.MuAnt x0 -> Ast.ExAnt _loc x0
+                  | Ast.MuNil ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "MuNil"))
+                  | Ast.MuMutable ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "MuMutable")) ]
+                and meta_override_flag _loc =
+                  fun
+                  [ Ast.OvAnt x0 -> Ast.ExAnt _loc x0
+                  | Ast.OvNil ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "OvNil"))
+                  | Ast.OvOverride ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "OvOverride")) ]
                 and meta_patt _loc =
                   fun
                   [ Ast.PaLaz x0 x1 ->
@@ -2065,6 +2139,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "PaNil")))
                         (meta_loc _loc x0) ]
+                and meta_private_flag _loc =
+                  fun
+                  [ Ast.PrAnt x0 -> Ast.ExAnt _loc x0
+                  | Ast.PrNil ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "PrNil"))
+                  | Ast.PrPrivate ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "PrPrivate")) ]
                 and meta_rec_binding _loc =
                   fun
                   [ Ast.RbAnt x0 x1 -> Ast.ExAnt x0 x1
@@ -2094,6 +2179,28 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "RbNil")))
                         (meta_loc _loc x0) ]
+                and meta_rec_flag _loc =
+                  fun
+                  [ Ast.ReAnt x0 -> Ast.ExAnt _loc x0
+                  | Ast.ReNil ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "ReNil"))
+                  | Ast.ReRecursive ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "ReRecursive")) ]
+                and meta_row_var_flag _loc =
+                  fun
+                  [ Ast.RvAnt x0 -> Ast.ExAnt _loc x0
+                  | Ast.RvNil ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "RvNil"))
+                  | Ast.RvRowVar ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "RvRowVar")) ]
                 and meta_sig_item _loc =
                   fun
                   [ Ast.SgAnt x0 x1 -> Ast.ExAnt x0 x1
@@ -2232,7 +2339,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                  (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                     (Ast.IdUid _loc "StVal")))
                               (meta_loc _loc x0))
-                           (meta_meta_bool _loc x1))
+                           (meta_rec_flag _loc x1))
                         (meta_binding _loc x2)
                   | Ast.StTyp x0 x1 ->
                       Ast.ExApp _loc
@@ -2358,6 +2465,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "StNil")))
                         (meta_loc _loc x0) ]
+                and meta_virtual_flag _loc =
+                  fun
+                  [ Ast.ViAnt x0 -> Ast.ExAnt _loc x0
+                  | Ast.ViNil ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "ViNil"))
+                  | Ast.ViVirtual ->
+                      Ast.ExId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "ViVirtual")) ]
                 and meta_with_constr _loc =
                   fun
                   [ Ast.WcAnt x0 x1 -> Ast.ExAnt x0 x1
@@ -2371,6 +2489,26 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                               (meta_loc _loc x0))
                            (meta_with_constr _loc x1))
                         (meta_with_constr _loc x2)
+                  | Ast.WcMoS x0 x1 x2 ->
+                      Ast.ExApp _loc
+                        (Ast.ExApp _loc
+                           (Ast.ExApp _loc
+                              (Ast.ExId _loc
+                                 (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                    (Ast.IdUid _loc "WcMoS")))
+                              (meta_loc _loc x0))
+                           (meta_ident _loc x1))
+                        (meta_ident _loc x2)
+                  | Ast.WcTyS x0 x1 x2 ->
+                      Ast.ExApp _loc
+                        (Ast.ExApp _loc
+                           (Ast.ExApp _loc
+                              (Ast.ExId _loc
+                                 (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                    (Ast.IdUid _loc "WcTyS")))
+                              (meta_loc _loc x0))
+                           (meta_ctyp _loc x1))
+                        (meta_ctyp _loc x2)
                   | Ast.WcMod x0 x1 x2 ->
                       Ast.ExApp _loc
                         (Ast.ExApp _loc
@@ -2498,7 +2636,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                        (Ast.IdUid _loc "CeLet")))
                                  (meta_loc _loc x0))
-                              (meta_meta_bool _loc x1))
+                              (meta_rec_flag _loc x1))
                            (meta_binding _loc x2))
                         (meta_class_expr _loc x3)
                   | Ast.CeFun x0 x1 x2 ->
@@ -2520,7 +2658,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                        (Ast.IdUid _loc "CeCon")))
                                  (meta_loc _loc x0))
-                              (meta_meta_bool _loc x1))
+                              (meta_virtual_flag _loc x1))
                            (meta_ident _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CeApp x0 x1 x2 ->
@@ -2552,7 +2690,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                        (Ast.IdUid _loc "CgVir")))
                                  (meta_loc _loc x0))
                               (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
+                           (meta_private_flag _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CgVal x0 x1 x2 x3 x4 ->
                       Ast.PaApp _loc
@@ -2565,8 +2703,8 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                           (Ast.IdUid _loc "CgVal")))
                                     (meta_loc _loc x0))
                                  (meta_string _loc x1))
-                              (meta_meta_bool _loc x2))
-                           (meta_meta_bool _loc x3))
+                              (meta_mutable_flag _loc x2))
+                           (meta_virtual_flag _loc x3))
                         (meta_ctyp _loc x4)
                   | Ast.CgMth x0 x1 x2 x3 ->
                       Ast.PaApp _loc
@@ -2578,7 +2716,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                        (Ast.IdUid _loc "CgMth")))
                                  (meta_loc _loc x0))
                               (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
+                           (meta_private_flag _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CgInh x0 x1 ->
                       Ast.PaApp _loc
@@ -2627,7 +2765,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                        (Ast.IdUid _loc "CrVvr")))
                                  (meta_loc _loc x0))
                               (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
+                           (meta_mutable_flag _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CrVir x0 x1 x2 x3 ->
                       Ast.PaApp _loc
@@ -2639,21 +2777,9 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                        (Ast.IdUid _loc "CrVir")))
                                  (meta_loc _loc x0))
                               (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
+                           (meta_private_flag _loc x2))
                         (meta_ctyp _loc x3)
-                  | Ast.CrVal x0 x1 x2 x3 ->
-                      Ast.PaApp _loc
-                        (Ast.PaApp _loc
-                           (Ast.PaApp _loc
-                              (Ast.PaApp _loc
-                                 (Ast.PaId _loc
-                                    (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
-                                       (Ast.IdUid _loc "CrVal")))
-                                 (meta_loc _loc x0))
-                              (meta_string _loc x1))
-                           (meta_meta_bool _loc x2))
-                        (meta_expr _loc x3)
-                  | Ast.CrMth x0 x1 x2 x3 x4 ->
+                  | Ast.CrVal x0 x1 x2 x3 x4 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
                            (Ast.PaApp _loc
@@ -2661,12 +2787,29 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                  (Ast.PaApp _loc
                                     (Ast.PaId _loc
                                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
-                                          (Ast.IdUid _loc "CrMth")))
+                                          (Ast.IdUid _loc "CrVal")))
                                     (meta_loc _loc x0))
                                  (meta_string _loc x1))
-                              (meta_meta_bool _loc x2))
-                           (meta_expr _loc x3))
-                        (meta_ctyp _loc x4)
+                              (meta_override_flag _loc x2))
+                           (meta_mutable_flag _loc x3))
+                        (meta_expr _loc x4)
+                  | Ast.CrMth x0 x1 x2 x3 x4 x5 ->
+                      Ast.PaApp _loc
+                        (Ast.PaApp _loc
+                           (Ast.PaApp _loc
+                              (Ast.PaApp _loc
+                                 (Ast.PaApp _loc
+                                    (Ast.PaApp _loc
+                                       (Ast.PaId _loc
+                                          (Ast.IdAcc _loc
+                                             (Ast.IdUid _loc "Ast")
+                                             (Ast.IdUid _loc "CrMth")))
+                                       (meta_loc _loc x0))
+                                    (meta_string _loc x1))
+                                 (meta_override_flag _loc x2))
+                              (meta_private_flag _loc x3))
+                           (meta_expr _loc x4))
+                        (meta_ctyp _loc x5)
                   | Ast.CrIni x0 x1 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
@@ -2675,16 +2818,18 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                  (Ast.IdUid _loc "CrIni")))
                            (meta_loc _loc x0))
                         (meta_expr _loc x1)
-                  | Ast.CrInh x0 x1 x2 ->
+                  | Ast.CrInh x0 x1 x2 x3 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
                            (Ast.PaApp _loc
-                              (Ast.PaId _loc
-                                 (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
-                                    (Ast.IdUid _loc "CrInh")))
-                              (meta_loc _loc x0))
-                           (meta_class_expr _loc x1))
-                        (meta_string _loc x2)
+                              (Ast.PaApp _loc
+                                 (Ast.PaId _loc
+                                    (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                       (Ast.IdUid _loc "CrInh")))
+                                 (meta_loc _loc x0))
+                              (meta_override_flag _loc x1))
+                           (meta_class_expr _loc x2))
+                        (meta_string _loc x3)
                   | Ast.CrCtr x0 x1 x2 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
@@ -2773,7 +2918,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                        (Ast.IdUid _loc "CtCon")))
                                  (meta_loc _loc x0))
-                              (meta_meta_bool _loc x1))
+                              (meta_virtual_flag _loc x1))
                            (meta_ident _loc x2))
                         (meta_ctyp _loc x3)
                   | Ast.CtNil x0 ->
@@ -2785,6 +2930,14 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                 and meta_ctyp _loc =
                   fun
                   [ Ast.TyAnt x0 x1 -> Ast.PaAnt x0 x1
+                  | Ast.TyPkg x0 x1 ->
+                      Ast.PaApp _loc
+                        (Ast.PaApp _loc
+                           (Ast.PaId _loc
+                              (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                 (Ast.IdUid _loc "TyPkg")))
+                           (meta_loc _loc x0))
+                        (meta_module_type _loc x1)
                   | Ast.TyOfAmp x0 x1 x2 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
@@ -3010,7 +3163,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdUid _loc "TyObj")))
                               (meta_loc _loc x0))
                            (meta_ctyp _loc x1))
-                        (meta_meta_bool _loc x2)
+                        (meta_row_var_flag _loc x2)
                   | Ast.TyDcl x0 x1 x2 x3 x4 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
@@ -3108,9 +3261,38 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "TyNil")))
                         (meta_loc _loc x0) ]
+                and meta_direction_flag _loc =
+                  fun
+                  [ Ast.DiAnt x0 -> Ast.PaAnt _loc x0
+                  | Ast.DiDownto ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "DiDownto"))
+                  | Ast.DiTo ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "DiTo")) ]
                 and meta_expr _loc =
                   fun
-                  [ Ast.ExOpI x0 x1 x2 ->
+                  [ Ast.ExPkg x0 x1 ->
+                      Ast.PaApp _loc
+                        (Ast.PaApp _loc
+                           (Ast.PaId _loc
+                              (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                 (Ast.IdUid _loc "ExPkg")))
+                           (meta_loc _loc x0))
+                        (meta_module_expr _loc x1)
+                  | Ast.ExFUN x0 x1 x2 ->
+                      Ast.PaApp _loc
+                        (Ast.PaApp _loc
+                           (Ast.PaApp _loc
+                              (Ast.PaId _loc
+                                 (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                    (Ast.IdUid _loc "ExFUN")))
+                              (meta_loc _loc x0))
+                           (meta_string _loc x1))
+                        (meta_expr _loc x2)
+                  | Ast.ExOpI x0 x1 x2 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
                            (Ast.PaApp _loc
@@ -3289,7 +3471,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                        (Ast.IdUid _loc "ExLet")))
                                  (meta_loc _loc x0))
-                              (meta_meta_bool _loc x1))
+                              (meta_rec_flag _loc x1))
                            (meta_binding _loc x2))
                         (meta_expr _loc x3)
                   | Ast.ExLaz x0 x1 ->
@@ -3377,7 +3559,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                     (meta_string _loc x1))
                                  (meta_expr _loc x2))
                               (meta_expr _loc x3))
-                           (meta_meta_bool _loc x4))
+                           (meta_direction_flag _loc x4))
                         (meta_expr _loc x5)
                   | Ast.ExFlo x0 x1 ->
                       Ast.PaApp _loc
@@ -3647,6 +3829,14 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                 and meta_module_expr _loc =
                   fun
                   [ Ast.MeAnt x0 x1 -> Ast.PaAnt x0 x1
+                  | Ast.MePkg x0 x1 ->
+                      Ast.PaApp _loc
+                        (Ast.PaApp _loc
+                           (Ast.PaId _loc
+                              (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                 (Ast.IdUid _loc "MePkg")))
+                           (meta_loc _loc x0))
+                        (meta_expr _loc x1)
                   | Ast.MeTyc x0 x1 x2 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
@@ -3756,6 +3946,28 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "MtNil")))
                         (meta_loc _loc x0) ]
+                and meta_mutable_flag _loc =
+                  fun
+                  [ Ast.MuAnt x0 -> Ast.PaAnt _loc x0
+                  | Ast.MuNil ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "MuNil"))
+                  | Ast.MuMutable ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "MuMutable")) ]
+                and meta_override_flag _loc =
+                  fun
+                  [ Ast.OvAnt x0 -> Ast.PaAnt _loc x0
+                  | Ast.OvNil ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "OvNil"))
+                  | Ast.OvOverride ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "OvOverride")) ]
                 and meta_patt _loc =
                   fun
                   [ Ast.PaLaz x0 x1 ->
@@ -3995,6 +4207,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "PaNil")))
                         (meta_loc _loc x0) ]
+                and meta_private_flag _loc =
+                  fun
+                  [ Ast.PrAnt x0 -> Ast.PaAnt _loc x0
+                  | Ast.PrNil ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "PrNil"))
+                  | Ast.PrPrivate ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "PrPrivate")) ]
                 and meta_rec_binding _loc =
                   fun
                   [ Ast.RbAnt x0 x1 -> Ast.PaAnt x0 x1
@@ -4024,6 +4247,28 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "RbNil")))
                         (meta_loc _loc x0) ]
+                and meta_rec_flag _loc =
+                  fun
+                  [ Ast.ReAnt x0 -> Ast.PaAnt _loc x0
+                  | Ast.ReNil ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "ReNil"))
+                  | Ast.ReRecursive ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "ReRecursive")) ]
+                and meta_row_var_flag _loc =
+                  fun
+                  [ Ast.RvAnt x0 -> Ast.PaAnt _loc x0
+                  | Ast.RvNil ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "RvNil"))
+                  | Ast.RvRowVar ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "RvRowVar")) ]
                 and meta_sig_item _loc =
                   fun
                   [ Ast.SgAnt x0 x1 -> Ast.PaAnt x0 x1
@@ -4162,7 +4407,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                                  (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                                     (Ast.IdUid _loc "StVal")))
                               (meta_loc _loc x0))
-                           (meta_meta_bool _loc x1))
+                           (meta_rec_flag _loc x1))
                         (meta_binding _loc x2)
                   | Ast.StTyp x0 x1 ->
                       Ast.PaApp _loc
@@ -4288,6 +4533,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                            (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
                               (Ast.IdUid _loc "StNil")))
                         (meta_loc _loc x0) ]
+                and meta_virtual_flag _loc =
+                  fun
+                  [ Ast.ViAnt x0 -> Ast.PaAnt _loc x0
+                  | Ast.ViNil ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "ViNil"))
+                  | Ast.ViVirtual ->
+                      Ast.PaId _loc
+                        (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                           (Ast.IdUid _loc "ViVirtual")) ]
                 and meta_with_constr _loc =
                   fun
                   [ Ast.WcAnt x0 x1 -> Ast.PaAnt x0 x1
@@ -4301,6 +4557,26 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
                               (meta_loc _loc x0))
                            (meta_with_constr _loc x1))
                         (meta_with_constr _loc x2)
+                  | Ast.WcMoS x0 x1 x2 ->
+                      Ast.PaApp _loc
+                        (Ast.PaApp _loc
+                           (Ast.PaApp _loc
+                              (Ast.PaId _loc
+                                 (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                    (Ast.IdUid _loc "WcMoS")))
+                              (meta_loc _loc x0))
+                           (meta_ident _loc x1))
+                        (meta_ident _loc x2)
+                  | Ast.WcTyS x0 x1 x2 ->
+                      Ast.PaApp _loc
+                        (Ast.PaApp _loc
+                           (Ast.PaApp _loc
+                              (Ast.PaId _loc
+                                 (Ast.IdAcc _loc (Ast.IdUid _loc "Ast")
+                                    (Ast.IdUid _loc "WcTyS")))
+                              (meta_loc _loc x0))
+                           (meta_ctyp _loc x1))
+                        (meta_ctyp _loc x2)
                   | Ast.WcMod x0 x1 x2 ->
                       Ast.PaApp _loc
                         (Ast.PaApp _loc
@@ -4352,6 +4628,14 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x = o#loc _x in
               let _x_i1 = o#ident _x_i1 in
               let _x_i2 = o#ident _x_i2 in WcMod _x _x_i1 _x_i2
+          | WcTyS _x _x_i1 _x_i2 ->
+              let _x = o#loc _x in
+              let _x_i1 = o#ctyp _x_i1 in
+              let _x_i2 = o#ctyp _x_i2 in WcTyS _x _x_i1 _x_i2
+          | WcMoS _x _x_i1 _x_i2 ->
+              let _x = o#loc _x in
+              let _x_i1 = o#ident _x_i1 in
+              let _x_i2 = o#ident _x_i2 in WcMoS _x _x_i1 _x_i2
           | WcAnd _x _x_i1 _x_i2 ->
               let _x = o#loc _x in
               let _x_i1 = o#with_constr _x_i1 in
@@ -4359,6 +4643,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | WcAnt _x _x_i1 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in WcAnt _x _x_i1 ];
+        method virtual_flag : virtual_flag -> virtual_flag =
+          fun
+          [ ViVirtual -> ViVirtual
+          | ViNil -> ViNil
+          | ViAnt _x -> let _x = o#string _x in ViAnt _x ];
         method str_item : str_item -> str_item =
           fun
           [ StNil _x -> let _x = o#loc _x in StNil _x
@@ -4410,7 +4699,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x = o#loc _x in let _x_i1 = o#ctyp _x_i1 in StTyp _x _x_i1
           | StVal _x _x_i1 _x_i2 ->
               let _x = o#loc _x in
-              let _x_i1 = o#meta_bool _x_i1 in
+              let _x_i1 = o#rec_flag _x_i1 in
               let _x_i2 = o#binding _x_i2 in StVal _x _x_i1 _x_i2
           | StAnt _x _x_i1 ->
               let _x = o#loc _x in
@@ -4466,6 +4755,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | SgAnt _x _x_i1 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in SgAnt _x _x_i1 ];
+        method row_var_flag : row_var_flag -> row_var_flag =
+          fun
+          [ RvRowVar -> RvRowVar
+          | RvNil -> RvNil
+          | RvAnt _x -> let _x = o#string _x in RvAnt _x ];
+        method rec_flag : rec_flag -> rec_flag =
+          fun
+          [ ReRecursive -> ReRecursive
+          | ReNil -> ReNil
+          | ReAnt _x -> let _x = o#string _x in ReAnt _x ];
         method rec_binding : rec_binding -> rec_binding =
           fun
           [ RbNil _x -> let _x = o#loc _x in RbNil _x
@@ -4480,6 +4779,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | RbAnt _x _x_i1 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in RbAnt _x _x_i1 ];
+        method private_flag : private_flag -> private_flag =
+          fun
+          [ PrPrivate -> PrPrivate
+          | PrNil -> PrNil
+          | PrAnt _x -> let _x = o#string _x in PrAnt _x ];
         method patt : patt -> patt =
           fun
           [ PaNil _x -> let _x = o#loc _x in PaNil _x
@@ -4569,6 +4873,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x_i1 = o#string _x_i1 in PaVrn _x _x_i1
           | PaLaz _x _x_i1 ->
               let _x = o#loc _x in let _x_i1 = o#patt _x_i1 in PaLaz _x _x_i1 ];
+        method override_flag : override_flag -> override_flag =
+          fun
+          [ OvOverride -> OvOverride
+          | OvNil -> OvNil
+          | OvAnt _x -> let _x = o#string _x in OvAnt _x ];
+        method mutable_flag : mutable_flag -> mutable_flag =
+          fun
+          [ MuMutable -> MuMutable
+          | MuNil -> MuNil
+          | MuAnt _x -> let _x = o#string _x in MuAnt _x ];
         method module_type : module_type -> module_type =
           fun
           [ MtNil _x -> let _x = o#loc _x in MtNil _x
@@ -4613,6 +4927,8 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x = o#loc _x in
               let _x_i1 = o#module_expr _x_i1 in
               let _x_i2 = o#module_type _x_i2 in MeTyc _x _x_i1 _x_i2
+          | MePkg _x _x_i1 ->
+              let _x = o#loc _x in let _x_i1 = o#expr _x_i1 in MePkg _x _x_i1
           | MeAnt _x _x_i1 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in MeAnt _x _x_i1 ];
@@ -4743,7 +5059,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x_i1 = o#string _x_i1 in
               let _x_i2 = o#expr _x_i2 in
               let _x_i3 = o#expr _x_i3 in
-              let _x_i4 = o#meta_bool _x_i4 in
+              let _x_i4 = o#direction_flag _x_i4 in
               let _x_i5 = o#expr _x_i5
               in ExFor _x _x_i1 _x_i2 _x_i3 _x_i4 _x_i5
           | ExFun _x _x_i1 ->
@@ -4774,7 +5090,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x = o#loc _x in let _x_i1 = o#expr _x_i1 in ExLaz _x _x_i1
           | ExLet _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
-              let _x_i1 = o#meta_bool _x_i1 in
+              let _x_i1 = o#rec_flag _x_i1 in
               let _x_i2 = o#binding _x_i2 in
               let _x_i3 = o#expr _x_i3 in ExLet _x _x_i1 _x_i2 _x_i3
           | ExLmd _x _x_i1 _x_i2 _x_i3 ->
@@ -4841,7 +5157,19 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | ExOpI _x _x_i1 _x_i2 ->
               let _x = o#loc _x in
               let _x_i1 = o#ident _x_i1 in
-              let _x_i2 = o#expr _x_i2 in ExOpI _x _x_i1 _x_i2 ];
+              let _x_i2 = o#expr _x_i2 in ExOpI _x _x_i1 _x_i2
+          | ExFUN _x _x_i1 _x_i2 ->
+              let _x = o#loc _x in
+              let _x_i1 = o#string _x_i1 in
+              let _x_i2 = o#expr _x_i2 in ExFUN _x _x_i1 _x_i2
+          | ExPkg _x _x_i1 ->
+              let _x = o#loc _x in
+              let _x_i1 = o#module_expr _x_i1 in ExPkg _x _x_i1 ];
+        method direction_flag : direction_flag -> direction_flag =
+          fun
+          [ DiTo -> DiTo
+          | DiDownto -> DiDownto
+          | DiAnt _x -> let _x = o#string _x in DiAnt _x ];
         method ctyp : ctyp -> ctyp =
           fun
           [ TyNil _x -> let _x = o#loc _x in TyNil _x
@@ -4886,7 +5214,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | TyObj _x _x_i1 _x_i2 ->
               let _x = o#loc _x in
               let _x_i1 = o#ctyp _x_i1 in
-              let _x_i2 = o#meta_bool _x_i2 in TyObj _x _x_i1 _x_i2
+              let _x_i2 = o#row_var_flag _x_i2 in TyObj _x _x_i1 _x_i2
           | TyOlb _x _x_i1 _x_i2 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in
@@ -4966,6 +5294,9 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x = o#loc _x in
               let _x_i1 = o#ctyp _x_i1 in
               let _x_i2 = o#ctyp _x_i2 in TyOfAmp _x _x_i1 _x_i2
+          | TyPkg _x _x_i1 ->
+              let _x = o#loc _x in
+              let _x_i1 = o#module_type _x_i1 in TyPkg _x _x_i1
           | TyAnt _x _x_i1 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in TyAnt _x _x_i1 ];
@@ -4974,7 +5305,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           [ CtNil _x -> let _x = o#loc _x in CtNil _x
           | CtCon _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
-              let _x_i1 = o#meta_bool _x_i1 in
+              let _x_i1 = o#virtual_flag _x_i1 in
               let _x_i2 = o#ident _x_i2 in
               let _x_i3 = o#ctyp _x_i3 in CtCon _x _x_i1 _x_i2 _x_i3
           | CtFun _x _x_i1 _x_i2 ->
@@ -5011,32 +5342,36 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x = o#loc _x in
               let _x_i1 = o#ctyp _x_i1 in
               let _x_i2 = o#ctyp _x_i2 in CrCtr _x _x_i1 _x_i2
-          | CrInh _x _x_i1 _x_i2 ->
+          | CrInh _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
-              let _x_i1 = o#class_expr _x_i1 in
-              let _x_i2 = o#string _x_i2 in CrInh _x _x_i1 _x_i2
+              let _x_i1 = o#override_flag _x_i1 in
+              let _x_i2 = o#class_expr _x_i2 in
+              let _x_i3 = o#string _x_i3 in CrInh _x _x_i1 _x_i2 _x_i3
           | CrIni _x _x_i1 ->
               let _x = o#loc _x in let _x_i1 = o#expr _x_i1 in CrIni _x _x_i1
-          | CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 ->
+          | CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 _x_i5 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in
-              let _x_i2 = o#meta_bool _x_i2 in
-              let _x_i3 = o#expr _x_i3 in
-              let _x_i4 = o#ctyp _x_i4 in CrMth _x _x_i1 _x_i2 _x_i3 _x_i4
-          | CrVal _x _x_i1 _x_i2 _x_i3 ->
+              let _x_i2 = o#override_flag _x_i2 in
+              let _x_i3 = o#private_flag _x_i3 in
+              let _x_i4 = o#expr _x_i4 in
+              let _x_i5 = o#ctyp _x_i5
+              in CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 _x_i5
+          | CrVal _x _x_i1 _x_i2 _x_i3 _x_i4 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in
-              let _x_i2 = o#meta_bool _x_i2 in
-              let _x_i3 = o#expr _x_i3 in CrVal _x _x_i1 _x_i2 _x_i3
+              let _x_i2 = o#override_flag _x_i2 in
+              let _x_i3 = o#mutable_flag _x_i3 in
+              let _x_i4 = o#expr _x_i4 in CrVal _x _x_i1 _x_i2 _x_i3 _x_i4
           | CrVir _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in
-              let _x_i2 = o#meta_bool _x_i2 in
+              let _x_i2 = o#private_flag _x_i2 in
               let _x_i3 = o#ctyp _x_i3 in CrVir _x _x_i1 _x_i2 _x_i3
           | CrVvr _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in
-              let _x_i2 = o#meta_bool _x_i2 in
+              let _x_i2 = o#mutable_flag _x_i2 in
               let _x_i3 = o#ctyp _x_i3 in CrVvr _x _x_i1 _x_i2 _x_i3
           | CrAnt _x _x_i1 ->
               let _x = o#loc _x in
@@ -5058,18 +5393,18 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | CgMth _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in
-              let _x_i2 = o#meta_bool _x_i2 in
+              let _x_i2 = o#private_flag _x_i2 in
               let _x_i3 = o#ctyp _x_i3 in CgMth _x _x_i1 _x_i2 _x_i3
           | CgVal _x _x_i1 _x_i2 _x_i3 _x_i4 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in
-              let _x_i2 = o#meta_bool _x_i2 in
-              let _x_i3 = o#meta_bool _x_i3 in
+              let _x_i2 = o#mutable_flag _x_i2 in
+              let _x_i3 = o#virtual_flag _x_i3 in
               let _x_i4 = o#ctyp _x_i4 in CgVal _x _x_i1 _x_i2 _x_i3 _x_i4
           | CgVir _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
               let _x_i1 = o#string _x_i1 in
-              let _x_i2 = o#meta_bool _x_i2 in
+              let _x_i2 = o#private_flag _x_i2 in
               let _x_i3 = o#ctyp _x_i3 in CgVir _x _x_i1 _x_i2 _x_i3
           | CgAnt _x _x_i1 ->
               let _x = o#loc _x in
@@ -5083,7 +5418,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x_i2 = o#expr _x_i2 in CeApp _x _x_i1 _x_i2
           | CeCon _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
-              let _x_i1 = o#meta_bool _x_i1 in
+              let _x_i1 = o#virtual_flag _x_i1 in
               let _x_i2 = o#ident _x_i2 in
               let _x_i3 = o#ctyp _x_i3 in CeCon _x _x_i1 _x_i2 _x_i3
           | CeFun _x _x_i1 _x_i2 ->
@@ -5092,7 +5427,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let _x_i2 = o#class_expr _x_i2 in CeFun _x _x_i1 _x_i2
           | CeLet _x _x_i1 _x_i2 _x_i3 ->
               let _x = o#loc _x in
-              let _x_i1 = o#meta_bool _x_i1 in
+              let _x_i1 = o#rec_flag _x_i1 in
               let _x_i2 = o#binding _x_i2 in
               let _x_i3 = o#class_expr _x_i3 in CeLet _x _x_i1 _x_i2 _x_i3
           | CeStr _x _x_i1 _x_i2 ->
@@ -5149,10 +5484,21 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | WcMod _x _x_i1 _x_i2 ->
               let o = o#loc _x in
               let o = o#ident _x_i1 in let o = o#ident _x_i2 in o
+          | WcTyS _x _x_i1 _x_i2 ->
+              let o = o#loc _x in
+              let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
+          | WcMoS _x _x_i1 _x_i2 ->
+              let o = o#loc _x in
+              let o = o#ident _x_i1 in let o = o#ident _x_i2 in o
           | WcAnd _x _x_i1 _x_i2 ->
               let o = o#loc _x in
               let o = o#with_constr _x_i1 in let o = o#with_constr _x_i2 in o
           | WcAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ];
+        method virtual_flag : virtual_flag -> 'self_type =
+          fun
+          [ ViVirtual -> o
+          | ViNil -> o
+          | ViAnt _x -> let o = o#string _x in o ];
         method str_item : str_item -> 'self_type =
           fun
           [ StNil _x -> let o = o#loc _x in o
@@ -5190,7 +5536,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | StTyp _x _x_i1 -> let o = o#loc _x in let o = o#ctyp _x_i1 in o
           | StVal _x _x_i1 _x_i2 ->
               let o = o#loc _x in
-              let o = o#meta_bool _x_i1 in let o = o#binding _x_i2 in o
+              let o = o#rec_flag _x_i1 in let o = o#binding _x_i2 in o
           | StAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ];
         method sig_item : sig_item -> 'self_type =
           fun
@@ -5227,6 +5573,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let o = o#loc _x in
               let o = o#string _x_i1 in let o = o#ctyp _x_i2 in o
           | SgAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ];
+        method row_var_flag : row_var_flag -> 'self_type =
+          fun
+          [ RvRowVar -> o
+          | RvNil -> o
+          | RvAnt _x -> let o = o#string _x in o ];
+        method rec_flag : rec_flag -> 'self_type =
+          fun
+          [ ReRecursive -> o
+          | ReNil -> o
+          | ReAnt _x -> let o = o#string _x in o ];
         method rec_binding : rec_binding -> 'self_type =
           fun
           [ RbNil _x -> let o = o#loc _x in o
@@ -5237,6 +5593,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let o = o#loc _x in
               let o = o#ident _x_i1 in let o = o#expr _x_i2 in o
           | RbAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ];
+        method private_flag : private_flag -> 'self_type =
+          fun
+          [ PrPrivate -> o
+          | PrNil -> o
+          | PrAnt _x -> let o = o#string _x in o ];
         method patt : patt -> 'self_type =
           fun
           [ PaNil _x -> let o = o#loc _x in o
@@ -5293,6 +5654,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | PaTyp _x _x_i1 -> let o = o#loc _x in let o = o#ident _x_i1 in o
           | PaVrn _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o
           | PaLaz _x _x_i1 -> let o = o#loc _x in let o = o#patt _x_i1 in o ];
+        method override_flag : override_flag -> 'self_type =
+          fun
+          [ OvOverride -> o
+          | OvNil -> o
+          | OvAnt _x -> let o = o#string _x in o ];
+        method mutable_flag : mutable_flag -> 'self_type =
+          fun
+          [ MuMutable -> o
+          | MuNil -> o
+          | MuAnt _x -> let o = o#string _x in o ];
         method module_type : module_type -> 'self_type =
           fun
           [ MtNil _x -> let o = o#loc _x in o
@@ -5324,6 +5695,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | MeTyc _x _x_i1 _x_i2 ->
               let o = o#loc _x in
               let o = o#module_expr _x_i1 in let o = o#module_type _x_i2 in o
+          | MePkg _x _x_i1 -> let o = o#loc _x in let o = o#expr _x_i1 in o
           | MeAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ];
         method module_binding : module_binding -> 'self_type =
           fun
@@ -5419,7 +5791,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let o = o#string _x_i1 in
               let o = o#expr _x_i2 in
               let o = o#expr _x_i3 in
-              let o = o#meta_bool _x_i4 in let o = o#expr _x_i5 in o
+              let o = o#direction_flag _x_i4 in let o = o#expr _x_i5 in o
           | ExFun _x _x_i1 ->
               let o = o#loc _x in let o = o#match_case _x_i1 in o
           | ExIfe _x _x_i1 _x_i2 _x_i3 ->
@@ -5439,7 +5811,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | ExLaz _x _x_i1 -> let o = o#loc _x in let o = o#expr _x_i1 in o
           | ExLet _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
-              let o = o#meta_bool _x_i1 in
+              let o = o#rec_flag _x_i1 in
               let o = o#binding _x_i2 in let o = o#expr _x_i3 in o
           | ExLmd _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
@@ -5484,7 +5856,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let o = o#expr _x_i1 in let o = o#expr _x_i2 in o
           | ExOpI _x _x_i1 _x_i2 ->
               let o = o#loc _x in
-              let o = o#ident _x_i1 in let o = o#expr _x_i2 in o ];
+              let o = o#ident _x_i1 in let o = o#expr _x_i2 in o
+          | ExFUN _x _x_i1 _x_i2 ->
+              let o = o#loc _x in
+              let o = o#string _x_i1 in let o = o#expr _x_i2 in o
+          | ExPkg _x _x_i1 ->
+              let o = o#loc _x in let o = o#module_expr _x_i1 in o ];
+        method direction_flag : direction_flag -> 'self_type =
+          fun
+          [ DiTo -> o
+          | DiDownto -> o
+          | DiAnt _x -> let o = o#string _x in o ];
         method ctyp : ctyp -> 'self_type =
           fun
           [ TyNil _x -> let o = o#loc _x in o
@@ -5519,7 +5901,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               in o
           | TyObj _x _x_i1 _x_i2 ->
               let o = o#loc _x in
-              let o = o#ctyp _x_i1 in let o = o#meta_bool _x_i2 in o
+              let o = o#ctyp _x_i1 in let o = o#row_var_flag _x_i2 in o
           | TyOlb _x _x_i1 _x_i2 ->
               let o = o#loc _x in
               let o = o#string _x_i1 in let o = o#ctyp _x_i2 in o
@@ -5570,13 +5952,15 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | TyOfAmp _x _x_i1 _x_i2 ->
               let o = o#loc _x in
               let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
+          | TyPkg _x _x_i1 ->
+              let o = o#loc _x in let o = o#module_type _x_i1 in o
           | TyAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ];
         method class_type : class_type -> 'self_type =
           fun
           [ CtNil _x -> let o = o#loc _x in o
           | CtCon _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
-              let o = o#meta_bool _x_i1 in
+              let o = o#virtual_flag _x_i1 in
               let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o
           | CtFun _x _x_i1 _x_i2 ->
               let o = o#loc _x in
@@ -5604,27 +5988,30 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | CrCtr _x _x_i1 _x_i2 ->
               let o = o#loc _x in
               let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
-          | CrInh _x _x_i1 _x_i2 ->
+          | CrInh _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
-              let o = o#class_expr _x_i1 in let o = o#string _x_i2 in o
+              let o = o#override_flag _x_i1 in
+              let o = o#class_expr _x_i2 in let o = o#string _x_i3 in o
           | CrIni _x _x_i1 -> let o = o#loc _x in let o = o#expr _x_i1 in o
-          | CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 ->
+          | CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 _x_i5 ->
               let o = o#loc _x in
               let o = o#string _x_i1 in
-              let o = o#meta_bool _x_i2 in
-              let o = o#expr _x_i3 in let o = o#ctyp _x_i4 in o
-          | CrVal _x _x_i1 _x_i2 _x_i3 ->
+              let o = o#override_flag _x_i2 in
+              let o = o#private_flag _x_i3 in
+              let o = o#expr _x_i4 in let o = o#ctyp _x_i5 in o
+          | CrVal _x _x_i1 _x_i2 _x_i3 _x_i4 ->
               let o = o#loc _x in
               let o = o#string _x_i1 in
-              let o = o#meta_bool _x_i2 in let o = o#expr _x_i3 in o
+              let o = o#override_flag _x_i2 in
+              let o = o#mutable_flag _x_i3 in let o = o#expr _x_i4 in o
           | CrVir _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
               let o = o#string _x_i1 in
-              let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
+              let o = o#private_flag _x_i2 in let o = o#ctyp _x_i3 in o
           | CrVvr _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
               let o = o#string _x_i1 in
-              let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
+              let o = o#mutable_flag _x_i2 in let o = o#ctyp _x_i3 in o
           | CrAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ];
         method class_sig_item : class_sig_item -> 'self_type =
           fun
@@ -5641,16 +6028,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
           | CgMth _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
               let o = o#string _x_i1 in
-              let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
+              let o = o#private_flag _x_i2 in let o = o#ctyp _x_i3 in o
           | CgVal _x _x_i1 _x_i2 _x_i3 _x_i4 ->
               let o = o#loc _x in
               let o = o#string _x_i1 in
-              let o = o#meta_bool _x_i2 in
-              let o = o#meta_bool _x_i3 in let o = o#ctyp _x_i4 in o
+              let o = o#mutable_flag _x_i2 in
+              let o = o#virtual_flag _x_i3 in let o = o#ctyp _x_i4 in o
           | CgVir _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
               let o = o#string _x_i1 in
-              let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
+              let o = o#private_flag _x_i2 in let o = o#ctyp _x_i3 in o
           | CgAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ];
         method class_expr : class_expr -> 'self_type =
           fun
@@ -5660,14 +6047,14 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc =
               let o = o#class_expr _x_i1 in let o = o#expr _x_i2 in o
           | CeCon _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
-              let o = o#meta_bool _x_i1 in
+              let o = o#virtual_flag _x_i1 in
               let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o
           | CeFun _x _x_i1 _x_i2 ->
               let o = o#loc _x in
               let o = o#patt _x_i1 in let o = o#class_expr _x_i2 in o
           | CeLet _x _x_i1 _x_i2 _x_i3 ->
               let o = o#loc _x in
-              let o = o#meta_bool _x_i1 in
+              let o = o#rec_flag _x_i1 in
               let o = o#binding _x_i2 in let o = o#class_expr _x_i3 in o
           | CeStr _x _x_i1 _x_i2 ->
               let o = o#loc _x in
diff --git a/camlp4/boot/Makefile b/camlp4/boot/Makefile
deleted file mode 100644 (file)
index b6a1463..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-MAX_SAVE = 10
-
-backup:
-       cp camlp4boot camlp4boot.save.0
-       set -e; for i in camlp4boot.save.*; do \
-         mv $$i camlp4boot.evas.$$((`echo $$i | sed -e 's/.*\.save\.\([0-9][0-9]*\)/\1/'` + 1)); \
-       done
-       set -e; for i in camlp4boot.evas.*; do mv $$i $${i/.evas./.save.}; done
-       rm -f camlp4boot.save.$(MAX_SAVE)
-
-restore:
-       set -e; for i in camlp4boot.save.*; do \
-         mv $$i camlp4boot.evas.$$((`echo $$i | sed -e 's/.*\.save\.\([0-9][0-9]*\)/\1/'` - 1)); \
-       done
-       set -e; for i in camlp4boot.evas.*; do mv $$i $${i/.evas./.save.}; done
-       mv camlp4boot.save.0 camlp4boot
-
-boot-clean:
-       rm -f camlp4boot.save.* camlp4boot.evas.*
-
-maintainer-clean:
-       rm -f camlp4boot
index d84dc53bc361e86a44ca5ae93c16bb11d8014cd9..618693ed88705ad92bd3300db9602144d4a6a2ad 100644 (file)
@@ -367,14 +367,14 @@ Very old (no more supported) syntax:\n\
           
         let mkumin _loc f arg =
           match arg with
-          | Ast.ExInt (_, n) -> Ast.ExInt (_loc, neg_string n)
-          | Ast.ExInt32 (_, n) -> Ast.ExInt32 (_loc, neg_string n)
-          | Ast.ExInt64 (_, n) -> Ast.ExInt64 (_loc, neg_string n)
-          | Ast.ExNativeInt (_, n) -> Ast.ExNativeInt (_loc, neg_string n)
-          | Ast.ExFlo (_, n) -> Ast.ExFlo (_loc, neg_string n)
+          | Ast.ExInt (_, n) -> Ast.ExInt (_loc, (neg_string n))
+          | Ast.ExInt32 (_, n) -> Ast.ExInt32 (_loc, (neg_string n))
+          | Ast.ExInt64 (_, n) -> Ast.ExInt64 (_loc, (neg_string n))
+          | Ast.ExNativeInt (_, n) -> Ast.ExNativeInt (_loc, (neg_string n))
+          | Ast.ExFlo (_, n) -> Ast.ExFlo (_loc, (neg_string n))
           | _ ->
-              Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdLid (_loc, "~" ^ f)),
-                arg)
+              Ast.ExApp (_loc,
+                (Ast.ExId (_loc, (Ast.IdLid (_loc, ("~" ^ f))))), arg)
           
         let mklistexp _loc last =
           let rec loop top =
@@ -382,15 +382,15 @@ Very old (no more supported) syntax:\n\
             | [] ->
                 (match last with
                  | Some e -> e
-                 | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "[]")))
+                 | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))
             | e1 :: el ->
                 let _loc =
                   if top then _loc else Loc.merge (Ast.loc_of_expr e1) _loc
                 in
                   Ast.ExApp (_loc,
-                    Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                      e1),
-                    loop false el)
+                    (Ast.ExApp (_loc,
+                       (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), e1)),
+                    (loop false el))
           in loop true
           
         let mkassert _loc =
@@ -424,13 +424,13 @@ Very old (no more supported) syntax:\n\
         let module_type_app mt1 mt2 =
           match (mt1, mt2) with
           | (Ast.MtId (_loc, i1), Ast.MtId (_, i2)) ->
-              Ast.MtId (_loc, Ast.IdApp (_loc, i1, i2))
+              Ast.MtId (_loc, (Ast.IdApp (_loc, i1, i2)))
           | _ -> raise Stream.Failure
           
         let module_type_acc mt1 mt2 =
           match (mt1, mt2) with
           | (Ast.MtId (_loc, i1), Ast.MtId (_, i2)) ->
-              Ast.MtId (_loc, Ast.IdAcc (_loc, i1, i2))
+              Ast.MtId (_loc, (Ast.IdAcc (_loc, i1, i2)))
           | _ -> raise Stream.Failure
           
         let bigarray_get _loc arr arg =
@@ -443,47 +443,49 @@ Very old (no more supported) syntax:\n\
             match coords with
             | [ c1 ] ->
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExId (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"),
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array1"),
-                          Ast.IdLid (_loc, "get")))),
-                    arr),
+                  (Ast.ExApp (_loc,
+                     (Ast.ExId (_loc,
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")),
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Array1")),
+                              (Ast.IdLid (_loc, "get")))))))),
+                     arr)),
                   c1)
             | [ c1; c2 ] ->
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExApp (_loc,
-                      Ast.ExId (_loc,
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"),
-                          Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array2"),
-                            Ast.IdLid (_loc, "get")))),
-                      arr),
-                    c1),
+                  (Ast.ExApp (_loc,
+                     (Ast.ExApp (_loc,
+                        (Ast.ExId (_loc,
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")),
+                              (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Array2")),
+                                 (Ast.IdLid (_loc, "get")))))))),
+                        arr)),
+                     c1)),
                   c2)
             | [ c1; c2; c3 ] ->
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExApp (_loc,
-                      Ast.ExApp (_loc,
-                        Ast.ExId (_loc,
-                          Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"),
-                            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array3"),
-                              Ast.IdLid (_loc, "get")))),
-                        arr),
-                      c1),
-                    c2),
+                  (Ast.ExApp (_loc,
+                     (Ast.ExApp (_loc,
+                        (Ast.ExApp (_loc,
+                           (Ast.ExId (_loc,
+                              (Ast.IdAcc (_loc,
+                                 (Ast.IdUid (_loc, "Bigarray")),
+                                 (Ast.IdAcc (_loc,
+                                    (Ast.IdUid (_loc, "Array3")),
+                                    (Ast.IdLid (_loc, "get")))))))),
+                           arr)),
+                        c1)),
+                     c2)),
                   c3)
             | (* | coords -> <:expr< Bigarray.Genarray.get $arr$ [| $list:coords$ |] >> ] *)
                 coords ->
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExId (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"),
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Genarray"),
-                          Ast.IdLid (_loc, "get")))),
-                    arr),
-                  Ast.ExArr (_loc, Ast.exSem_of_list coords))
+                  (Ast.ExApp (_loc,
+                     (Ast.ExId (_loc,
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")),
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Genarray")),
+                              (Ast.IdLid (_loc, "get")))))))),
+                     arr)),
+                  (Ast.ExArr (_loc, (Ast.exSem_of_list coords))))
           
         let bigarray_set _loc var newval =
           match var with
@@ -497,14 +499,15 @@ Very old (no more supported) syntax:\n\
               c1) ->
               Some
                 (Ast.ExApp (_loc,
-                   Ast.ExApp (_loc,
-                     Ast.ExApp (_loc,
-                       Ast.ExId (_loc,
-                         Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"),
-                           Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array1"),
-                             Ast.IdLid (_loc, "set")))),
-                       arr),
-                     c1),
+                   (Ast.ExApp (_loc,
+                      (Ast.ExApp (_loc,
+                         (Ast.ExId (_loc,
+                            (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")),
+                               (Ast.IdAcc (_loc,
+                                  (Ast.IdUid (_loc, "Array1")),
+                                  (Ast.IdLid (_loc, "set")))))))),
+                         arr)),
+                      c1)),
                    newval))
           | Ast.ExApp (_,
               (Ast.ExApp (_,
@@ -518,16 +521,18 @@ Very old (no more supported) syntax:\n\
               c2) ->
               Some
                 (Ast.ExApp (_loc,
-                   Ast.ExApp (_loc,
-                     Ast.ExApp (_loc,
-                       Ast.ExApp (_loc,
-                         Ast.ExId (_loc,
-                           Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"),
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array2"),
-                               Ast.IdLid (_loc, "set")))),
-                         arr),
-                       c1),
-                     c2),
+                   (Ast.ExApp (_loc,
+                      (Ast.ExApp (_loc,
+                         (Ast.ExApp (_loc,
+                            (Ast.ExId (_loc,
+                               (Ast.IdAcc (_loc,
+                                  (Ast.IdUid (_loc, "Bigarray")),
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Array2")),
+                                     (Ast.IdLid (_loc, "set")))))))),
+                            arr)),
+                         c1)),
+                      c2)),
                    newval))
           | Ast.ExApp (_,
               (Ast.ExApp (_,
@@ -543,18 +548,20 @@ Very old (no more supported) syntax:\n\
               c3) ->
               Some
                 (Ast.ExApp (_loc,
-                   Ast.ExApp (_loc,
-                     Ast.ExApp (_loc,
-                       Ast.ExApp (_loc,
-                         Ast.ExApp (_loc,
-                           Ast.ExId (_loc,
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"),
-                               Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array3"),
-                                 Ast.IdLid (_loc, "set")))),
-                           arr),
-                         c1),
-                       c2),
-                     c3),
+                   (Ast.ExApp (_loc,
+                      (Ast.ExApp (_loc,
+                         (Ast.ExApp (_loc,
+                            (Ast.ExApp (_loc,
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Bigarray")),
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Array3")),
+                                        (Ast.IdLid (_loc, "set")))))))),
+                               arr)),
+                            c1)),
+                         c2)),
+                      c3)),
                    newval))
           | Ast.ExApp (_,
               (Ast.ExApp (_,
@@ -566,25 +573,18 @@ Very old (no more supported) syntax:\n\
               (Ast.ExArr (_, coords))) ->
               Some
                 (Ast.ExApp (_loc,
-                   Ast.ExApp (_loc,
-                     Ast.ExApp (_loc,
-                       Ast.ExId (_loc,
-                         Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"),
-                           Ast.IdAcc (_loc, Ast.IdUid (_loc, "Genarray"),
-                             Ast.IdLid (_loc, "set")))),
-                       arr),
-                     Ast.ExArr (_loc, coords)),
+                   (Ast.ExApp (_loc,
+                      (Ast.ExApp (_loc,
+                         (Ast.ExId (_loc,
+                            (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")),
+                               (Ast.IdAcc (_loc,
+                                  (Ast.IdUid (_loc, "Genarray")),
+                                  (Ast.IdLid (_loc, "set")))))))),
+                         arr)),
+                      (Ast.ExArr (_loc, coords)))),
                    newval))
           | _ -> None
           
-        let test_not_left_brace_nor_do =
-          Gram.Entry.of_parser "test_not_left_brace_nor_do"
-            (fun strm ->
-               match Stream.peek strm with
-               | Some (((KEYWORD "{" | KEYWORD "do"), _)) ->
-                   raise Stream.Failure
-               | _ -> ())
-          
         let stopped_at _loc = Some (Loc.move_line 1 _loc)
           
         (* FIXME be more precise *)
@@ -598,21 +598,25 @@ Very old (no more supported) syntax:\n\
             else if List.mem s.[i] list then loop s (i + 1) else false
           in loop
           
+        let setup_op_parser entry p =
+          Gram.Entry.setup_parser entry
+            (fun (__strm : _ Stream.t) ->
+               match Stream.peek __strm with
+               | Some (((KEYWORD x | SYMBOL x), ti)) when p x ->
+                   (Stream.junk __strm;
+                    let _loc = Gram.token_location ti
+                    in Ast.ExId (_loc, (Ast.IdLid (_loc, x))))
+               | _ -> raise Stream.Failure)
+          
         let _ =
           let list = [ '!'; '?'; '~' ] in
           let excl = [ "!="; "??" ]
           in
-            Gram.Entry.setup_parser prefixop
-              (fun (__strm : _ Stream.t) ->
-                 match Stream.peek __strm with
-                 | Some (((KEYWORD x | SYMBOL x), _loc)) when
-                     (not (List.mem x excl)) &&
-                       (((String.length x) >= 2) &&
-                          ((List.mem x.[0] list) && (symbolchar x 1)))
-                     ->
-                     (Stream.junk __strm;
-                      Ast.ExId (_loc, Ast.IdLid (_loc, x)))
-                 | _ -> raise Stream.Failure)
+            setup_op_parser prefixop
+              (fun x ->
+                 (not (List.mem x excl)) &&
+                   (((String.length x) >= 2) &&
+                      ((List.mem x.[0] list) && (symbolchar x 1))))
           
         let _ =
           let list_ok =
@@ -620,76 +624,47 @@ Very old (no more supported) syntax:\n\
           let list_first_char_ok = [ '='; '<'; '>'; '|'; '&'; '$'; '!' ] in
           let excl = [ "<-"; "||"; "&&" ]
           in
-            Gram.Entry.setup_parser infixop0
-              (fun (__strm : _ Stream.t) ->
-                 match Stream.peek __strm with
-                 | Some (((KEYWORD x | SYMBOL x), _loc)) when
-                     (List.mem x list_ok) ||
-                       ((not (List.mem x excl)) &&
-                          (((String.length x) >= 2) &&
-                             ((List.mem x.[0] list_first_char_ok) &&
-                                (symbolchar x 1))))
-                     ->
-                     (Stream.junk __strm;
-                      Ast.ExId (_loc, Ast.IdLid (_loc, x)))
-                 | _ -> raise Stream.Failure)
+            setup_op_parser infixop0
+              (fun x ->
+                 (List.mem x list_ok) ||
+                   ((not (List.mem x excl)) &&
+                      (((String.length x) >= 2) &&
+                         ((List.mem x.[0] list_first_char_ok) &&
+                            (symbolchar x 1)))))
           
         let _ =
           let list = [ '@'; '^' ]
           in
-            Gram.Entry.setup_parser infixop1
-              (fun (__strm : _ Stream.t) ->
-                 match Stream.peek __strm with
-                 | Some (((KEYWORD x | SYMBOL x), _loc)) when
-                     ((String.length x) >= 1) &&
-                       ((List.mem x.[0] list) && (symbolchar x 1))
-                     ->
-                     (Stream.junk __strm;
-                      Ast.ExId (_loc, Ast.IdLid (_loc, x)))
-                 | _ -> raise Stream.Failure)
+            setup_op_parser infixop1
+              (fun x ->
+                 ((String.length x) >= 1) &&
+                   ((List.mem x.[0] list) && (symbolchar x 1)))
           
         let _ =
           let list = [ '+'; '-' ]
           in
-            Gram.Entry.setup_parser infixop2
-              (fun (__strm : _ Stream.t) ->
-                 match Stream.peek __strm with
-                 | Some (((KEYWORD x | SYMBOL x), _loc)) when
-                     (x <> "->") &&
-                       (((String.length x) >= 1) &&
-                          ((List.mem x.[0] list) && (symbolchar x 1)))
-                     ->
-                     (Stream.junk __strm;
-                      Ast.ExId (_loc, Ast.IdLid (_loc, x)))
-                 | _ -> raise Stream.Failure)
+            setup_op_parser infixop2
+              (fun x ->
+                 (x <> "->") &&
+                   (((String.length x) >= 1) &&
+                      ((List.mem x.[0] list) && (symbolchar x 1))))
           
         let _ =
           let list = [ '*'; '/'; '%'; '\\' ]
           in
-            Gram.Entry.setup_parser infixop3
-              (fun (__strm : _ Stream.t) ->
-                 match Stream.peek __strm with
-                 | Some (((KEYWORD x | SYMBOL x), _loc)) when
-                     ((String.length x) >= 1) &&
-                       ((List.mem x.[0] list) &&
-                          (((x.[0] <> '*') ||
-                              (((String.length x) < 2) || (x.[1] <> '*')))
-                             && (symbolchar x 1)))
-                     ->
-                     (Stream.junk __strm;
-                      Ast.ExId (_loc, Ast.IdLid (_loc, x)))
-                 | _ -> raise Stream.Failure)
+            setup_op_parser infixop3
+              (fun x ->
+                 ((String.length x) >= 1) &&
+                   ((List.mem x.[0] list) &&
+                      (((x.[0] <> '*') ||
+                          (((String.length x) < 2) || (x.[1] <> '*')))
+                         && (symbolchar x 1))))
           
         let _ =
-          Gram.Entry.setup_parser infixop4
-            (fun (__strm : _ Stream.t) ->
-               match Stream.peek __strm with
-               | Some (((KEYWORD x | SYMBOL x), _loc)) when
-                   ((String.length x) >= 2) &&
-                     ((x.[0] == '*') && ((x.[1] == '*') && (symbolchar x 2)))
-                   ->
-                   (Stream.junk __strm; Ast.ExId (_loc, Ast.IdLid (_loc, x)))
-               | _ -> raise Stream.Failure)
+          setup_op_parser infixop4
+            (fun x ->
+               ((String.length x) >= 2) &&
+                 ((x.[0] == '*') && ((x.[1] == '*') && (symbolchar x 2))))
           
         let rec infix_kwds_filter (__strm : _ Stream.t) =
           match Stream.peek __strm with
@@ -733,24 +708,27 @@ Very old (no more supported) syntax:\n\
           Token.Filter.define_filter (Gram.get_filter ())
             (fun f strm -> infix_kwds_filter (f strm))
           
-        (* transmit the context *)
         let _ =
           Gram.Entry.setup_parser sem_expr
             (let symb1 = Gram.parse_tokens_after_filter expr in
              let symb (__strm : _ Stream.t) =
                match Stream.peek __strm with
-               | Some ((ANTIQUOT ((("list" as n)), s), _loc)) ->
+               | Some ((ANTIQUOT ((("list" as n)), s), ti)) ->
                    (Stream.junk __strm;
-                    Ast.ExAnt (_loc, mk_anti ~c: "expr;" n s))
+                    let _loc = Gram.token_location ti
+                    in Ast.ExAnt (_loc, (mk_anti ~c: "expr;" n s)))
                | _ -> symb1 __strm in
              let rec kont al (__strm : _ Stream.t) =
                match Stream.peek __strm with
-               | Some ((KEYWORD ";", _loc)) ->
+               | Some ((KEYWORD ";", _)) ->
                    (Stream.junk __strm;
                     let a =
                       (try symb __strm
                        with | Stream.Failure -> raise (Stream.Error "")) in
-                    let s = __strm in kont (Ast.ExSem (_loc, al, a)) s)
+                    let s = __strm in
+                    let _loc =
+                      Loc.merge (Ast.loc_of_expr al) (Ast.loc_of_expr a)
+                    in kont (Ast.ExSem (_loc, al, a)) s)
                | _ -> al
              in
                fun (__strm : _ Stream.t) ->
@@ -758,6 +736,14 @@ Very old (no more supported) syntax:\n\
           
         let _ =
           let _ = (a_CHAR : 'a_CHAR Gram.Entry.t)
+          and _ = (override_flag_quot : 'override_flag_quot Gram.Entry.t)
+          and _ = (row_var_flag_quot : 'row_var_flag_quot Gram.Entry.t)
+          and _ = (virtual_flag_quot : 'virtual_flag_quot Gram.Entry.t)
+          and _ = (private_flag_quot : 'private_flag_quot Gram.Entry.t)
+          and _ = (mutable_flag_quot : 'mutable_flag_quot Gram.Entry.t)
+          and _ = (direction_flag_quot : 'direction_flag_quot Gram.Entry.t)
+          and _ = (rec_flag_quot : 'rec_flag_quot Gram.Entry.t)
+          and _ = (package_type : 'package_type Gram.Entry.t)
           and _ = (do_sequence : 'do_sequence Gram.Entry.t)
           and _ = (infixop4 : 'infixop4 Gram.Entry.t)
           and _ = (infixop3 : 'infixop3 Gram.Entry.t)
@@ -944,6 +930,17 @@ Very old (no more supported) syntax:\n\
             <:patt< ? $i$ : ($p$ = $e$) >>                             *)
             string_list : 'string_list Gram.Entry.t =
             grammar_entry_create "string_list"
+          and opt_override : 'opt_override Gram.Entry.t =
+            grammar_entry_create "opt_override"
+          and value_val_opt_override : 'value_val_opt_override Gram.Entry.t =
+            grammar_entry_create "value_val_opt_override"
+          and method_opt_override : 'method_opt_override Gram.Entry.t =
+            grammar_entry_create "method_opt_override"
+          and module_longident_dot_lparen :
+            'module_longident_dot_lparen Gram.Entry.t =
+            grammar_entry_create "module_longident_dot_lparen"
+          and fun_def_cont_no_when : 'fun_def_cont_no_when Gram.Entry.t =
+            grammar_entry_create "fun_def_cont_no_when"
           and fun_def_cont : 'fun_def_cont Gram.Entry.t =
             grammar_entry_create "fun_def_cont"
           and sequence' : 'sequence' Gram.Entry.t =
@@ -983,7 +980,35 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.MeApp (_loc, me1, me2) : 'module_expr)))) ]);
                       ((Some "simple"), None,
-                       [ ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ")" ],
+                       [ ([ Gram.Skeyword "(";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (value_val : 'value_val Gram.Entry.t));
+                            Gram.Snterm
+                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t));
+                            Gram.Skeyword ":";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (package_type : 'package_type Gram.Entry.t));
+                            Gram.Skeyword ")" ],
+                          (Gram.Action.mk
+                             (fun _ (p : 'package_type) _ (e : 'expr) _ _
+                                (_loc : Gram.Loc.t) ->
+                                (Ast.MePkg (_loc,
+                                   (Ast.ExTyc (_loc, e,
+                                      (Ast.TyPkg (_loc, p))))) :
+                                  'module_expr))));
+                         ([ Gram.Skeyword "(";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (value_val : 'value_val Gram.Entry.t));
+                            Gram.Snterm
+                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t));
+                            Gram.Skeyword ")" ],
+                          (Gram.Action.mk
+                             (fun _ (e : 'expr) _ _ (_loc : Gram.Loc.t) ->
+                                (Ast.MePkg (_loc, e) : 'module_expr))));
+                         ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ")" ],
                           (Gram.Action.mk
                              (fun _ (me : 'module_expr) _ (_loc : Gram.Loc.t)
                                 -> (me : 'module_expr))));
@@ -1029,7 +1054,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "mexp" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.MeAnt (_loc,
-                                       mk_anti ~c: "module_expr" n s) :
+                                       (mk_anti ~c: "module_expr" n s)) :
                                       'module_expr)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -1068,7 +1093,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "stri" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.StAnt (_loc,
-                                       mk_anti ~c: "str_item" n s) :
+                                       (mk_anti ~c: "str_item" n s)) :
                                       'str_item)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "class"; Gram.Skeyword "type";
@@ -1189,7 +1214,7 @@ Very old (no more supported) syntax:\n\
                              (fun (i : 'type_longident) _
                                 (t : 'constructor_declaration) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.StExc (_loc, t, Ast.OSome i) :
+                                (Ast.StExc (_loc, t, (Ast.OSome i)) :
                                   'str_item))));
                          ([ Gram.Skeyword "exception";
                             Gram.Snterm
@@ -1291,7 +1316,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" as n)), m) ->
-                                    (Ast.MbColEq (_loc, mk_anti n m, mt, me) :
+                                    (Ast.MbColEq (_loc, (mk_anti n m), mt,
+                                       me) :
                                       'module_binding)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -1305,7 +1331,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" as n)), s) ->
                                     (Ast.MbAnt (_loc,
-                                       mk_anti ~c: "module_binding" n s) :
+                                       (mk_anti ~c: "module_binding" n s)) :
                                       'module_binding)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -1324,7 +1350,7 @@ Very old (no more supported) syntax:\n\
                                        n)),
                                     s) ->
                                     (Ast.MbAnt (_loc,
-                                       mk_anti ~c: "module_binding" n s) :
+                                       (mk_anti ~c: "module_binding" n s)) :
                                       'module_binding)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ],
@@ -1425,7 +1451,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "mtyp" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.MtAnt (_loc,
-                                       mk_anti ~c: "module_type" n s) :
+                                       (mk_anti ~c: "module_type" n s)) :
                                       'module_type)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -1488,7 +1514,7 @@ Very old (no more supported) syntax:\n\
                                  (a_UIDENT : 'a_UIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (i : 'a_UIDENT) _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.SgMty (_loc, i, Ast.MtNil _loc) :
+                                (Ast.SgMty (_loc, i, (Ast.MtNil _loc)) :
                                   'sig_item))));
                          ([ Gram.Skeyword "module"; Gram.Skeyword "type";
                             Gram.Snterm
@@ -1580,7 +1606,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "sigi" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.SgAnt (_loc,
-                                       mk_anti ~c: "sig_item" n s) :
+                                       (mk_anti ~c: "sig_item" n s)) :
                                       'sig_item)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -1660,7 +1686,7 @@ Very old (no more supported) syntax:\n\
                                        as n)),
                                     s) ->
                                     (Ast.MbAnt (_loc,
-                                       mk_anti ~c: "module_binding" n s) :
+                                       (mk_anti ~c: "module_binding" n s)) :
                                       'module_rec_declaration)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ],
@@ -1676,6 +1702,57 @@ Very old (no more supported) syntax:\n\
                    (None,
                     [ (None, (Some Camlp4.Sig.Grammar.LeftA),
                        [ ([ Gram.Skeyword "module";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (module_longident :
+                                   'module_longident Gram.Entry.t));
+                            Gram.Skeyword ":=";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (module_longident_with_app :
+                                   'module_longident_with_app Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (i2 : 'module_longident_with_app) _
+                                (i1 : 'module_longident) _
+                                (_loc : Gram.Loc.t) ->
+                                (Ast.WcMoS (_loc, i1, i2) : 'with_constr))));
+                         ([ Gram.Skeyword "type";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (type_longident_and_parameters :
+                                   'type_longident_and_parameters Gram.Entry.
+                                     t));
+                            Gram.Skeyword ":=";
+                            Gram.Snterm
+                              (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (t2 : 'ctyp) _
+                                (t1 : 'type_longident_and_parameters) _
+                                (_loc : Gram.Loc.t) ->
+                                (Ast.WcTyS (_loc, t1, t2) : 'with_constr))));
+                         ([ Gram.Skeyword "type";
+                            Gram.Stoken
+                              (((function
+                                 | ANTIQUOT (("" | "typ" | "anti"), _) ->
+                                     true
+                                 | _ -> false),
+                                "ANTIQUOT ((\"\" | \"typ\" | \"anti\"), _)"));
+                            Gram.Skeyword ":=";
+                            Gram.Snterm
+                              (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (t : 'ctyp) _ (__camlp4_0 : Gram.Token.t) _
+                                (_loc : Gram.Loc.t) ->
+                                match __camlp4_0 with
+                                | ANTIQUOT ((("" | "typ" | "anti" as n)), s)
+                                    ->
+                                    (Ast.WcTyS (_loc,
+                                       (Ast.TyAnt (_loc,
+                                          (mk_anti ~c: "ctyp" n s))),
+                                       t) :
+                                      'with_constr)
+                                | _ -> assert false)));
+                         ([ Gram.Skeyword "module";
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (module_longident :
@@ -1721,8 +1798,8 @@ Very old (no more supported) syntax:\n\
                                 | ANTIQUOT ((("" | "typ" | "anti" as n)), s)
                                     ->
                                     (Ast.WcTyp (_loc,
-                                       Ast.TyAnt (_loc,
-                                         mk_anti ~c: "ctyp" n s),
+                                       (Ast.TyAnt (_loc,
+                                          (mk_anti ~c: "ctyp" n s))),
                                        t) :
                                       'with_constr)
                                 | _ -> assert false)));
@@ -1754,7 +1831,7 @@ Very old (no more supported) syntax:\n\
                                        as n)),
                                     s) ->
                                     (Ast.WcAnt (_loc,
-                                       mk_anti ~c: "with_constr" n s) :
+                                       (mk_anti ~c: "with_constr" n s)) :
                                       'with_constr)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ],
@@ -1793,7 +1870,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (seq : 'do_sequence) _ (e : 'sequence) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExWhi (_loc, mksequence' _loc e, seq) :
+                                (Ast.ExWhi (_loc, (mksequence' _loc e), seq) :
                                   'expr))));
                          ([ Gram.Skeyword "for";
                             Gram.Snterm
@@ -1818,8 +1895,8 @@ Very old (no more supported) syntax:\n\
                              (fun (seq : 'do_sequence) _ (e2 : 'sequence)
                                 (df : 'direction_flag) (e1 : 'sequence) _
                                 (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExFor (_loc, i, mksequence' _loc e1,
-                                   mksequence' _loc e2, df, seq) :
+                                (Ast.ExFor (_loc, i, (mksequence' _loc e1),
+                                   (mksequence' _loc e2), df, seq) :
                                   'expr))));
                          ([ Gram.Skeyword "do";
                             Gram.Snterm
@@ -1846,7 +1923,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (a : 'match_case) _ (e : 'sequence) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExTry (_loc, mksequence' _loc e, a) :
+                                (Ast.ExTry (_loc, (mksequence' _loc e), a) :
                                   'expr))));
                          ([ Gram.Skeyword "match";
                             Gram.Snterm
@@ -1859,7 +1936,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (a : 'match_case) _ (e : 'sequence) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExMat (_loc, mksequence' _loc e, a) :
+                                (Ast.ExMat (_loc, (mksequence' _loc e), a) :
                                   'expr))));
                          ([ Gram.Skeyword "fun";
                             Gram.Snterm
@@ -1870,15 +1947,16 @@ Very old (no more supported) syntax:\n\
                                 (e : 'expr))));
                          ([ Gram.Skeyword "fun"; Gram.Skeyword "[";
                             Gram.Slist0sep
-                              (Gram.Snterm
-                                 (Gram.Entry.obj
-                                    (match_case0 : 'match_case0 Gram.Entry.t)),
-                              Gram.Skeyword "|");
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj
+                                     (match_case0 :
+                                       'match_case0 Gram.Entry.t))),
+                              (Gram.Skeyword "|"));
                             Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ (a : 'match_case0 list) _ _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExFun (_loc, Ast.mcOr_of_list a) :
+                                (Ast.ExFun (_loc, (Ast.mcOr_of_list a)) :
                                   'expr))));
                          ([ Gram.Skeyword "let"; Gram.Skeyword "open";
                             Gram.Snterm
@@ -1946,7 +2024,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e2 : 'expr) (op : 'infixop6) (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1),
+                                (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)),
                                    e2) :
                                   'expr)))) ]);
                       ((Some "&&"), (Some Camlp4.Sig.Grammar.RightA),
@@ -1958,7 +2036,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e2 : 'expr) (op : 'infixop5) (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1),
+                                (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)),
                                    e2) :
                                   'expr)))) ]);
                       ((Some "<"), (Some Camlp4.Sig.Grammar.LeftA),
@@ -1970,7 +2048,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e2 : 'expr) (op : 'infixop0) (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1),
+                                (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)),
                                    e2) :
                                   'expr)))) ]);
                       ((Some "^"), (Some Camlp4.Sig.Grammar.RightA),
@@ -1982,7 +2060,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e2 : 'expr) (op : 'infixop1) (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1),
+                                (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)),
                                    e2) :
                                   'expr)))) ]);
                       ((Some "+"), (Some Camlp4.Sig.Grammar.LeftA),
@@ -1994,7 +2072,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e2 : 'expr) (op : 'infixop2) (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1),
+                                (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)),
                                    e2) :
                                   'expr)))) ]);
                       ((Some "*"), (Some Camlp4.Sig.Grammar.LeftA),
@@ -2006,7 +2084,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e2 : 'expr) (op : 'infixop3) (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1),
+                                (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)),
                                    e2) :
                                   'expr))));
                          ([ Gram.Sself; Gram.Skeyword "mod"; Gram.Sself ],
@@ -2014,9 +2092,10 @@ Very old (no more supported) syntax:\n\
                              (fun (e2 : 'expr) _ (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc, Ast.IdLid (_loc, "mod")),
-                                     e1),
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdLid (_loc, "mod")))),
+                                      e1)),
                                    e2) :
                                   'expr))));
                          ([ Gram.Sself; Gram.Skeyword "lxor"; Gram.Sself ],
@@ -2024,10 +2103,10 @@ Very old (no more supported) syntax:\n\
                              (fun (e2 : 'expr) _ (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc,
-                                       Ast.IdLid (_loc, "lxor")),
-                                     e1),
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdLid (_loc, "lxor")))),
+                                      e1)),
                                    e2) :
                                   'expr))));
                          ([ Gram.Sself; Gram.Skeyword "lor"; Gram.Sself ],
@@ -2035,9 +2114,10 @@ Very old (no more supported) syntax:\n\
                              (fun (e2 : 'expr) _ (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc, Ast.IdLid (_loc, "lor")),
-                                     e1),
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdLid (_loc, "lor")))),
+                                      e1)),
                                    e2) :
                                   'expr))));
                          ([ Gram.Sself; Gram.Skeyword "land"; Gram.Sself ],
@@ -2045,10 +2125,10 @@ Very old (no more supported) syntax:\n\
                              (fun (e2 : 'expr) _ (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc,
-                                       Ast.IdLid (_loc, "land")),
-                                     e1),
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdLid (_loc, "land")))),
+                                      e1)),
                                    e2) :
                                   'expr)))) ]);
                       ((Some "**"), (Some Camlp4.Sig.Grammar.RightA),
@@ -2060,7 +2140,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e2 : 'expr) (op : 'infixop4) (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1),
+                                (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)),
                                    e2) :
                                   'expr))));
                          ([ Gram.Sself; Gram.Skeyword "lsr"; Gram.Sself ],
@@ -2068,9 +2148,10 @@ Very old (no more supported) syntax:\n\
                              (fun (e2 : 'expr) _ (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc, Ast.IdLid (_loc, "lsr")),
-                                     e1),
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdLid (_loc, "lsr")))),
+                                      e1)),
                                    e2) :
                                   'expr))));
                          ([ Gram.Sself; Gram.Skeyword "lsl"; Gram.Sself ],
@@ -2078,9 +2159,10 @@ Very old (no more supported) syntax:\n\
                              (fun (e2 : 'expr) _ (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc, Ast.IdLid (_loc, "lsl")),
-                                     e1),
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdLid (_loc, "lsl")))),
+                                      e1)),
                                    e2) :
                                   'expr))));
                          ([ Gram.Sself; Gram.Skeyword "asr"; Gram.Sself ],
@@ -2088,9 +2170,10 @@ Very old (no more supported) syntax:\n\
                              (fun (e2 : 'expr) _ (e1 : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc, Ast.IdLid (_loc, "asr")),
-                                     e1),
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdLid (_loc, "asr")))),
+                                      e1)),
                                    e2) :
                                   'expr)))) ]);
                       ((Some "unary minus"), (Some Camlp4.Sig.Grammar.NonA),
@@ -2132,7 +2215,8 @@ Very old (no more supported) syntax:\n\
                                  (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExOlb (_loc, i, Ast.ExNil _loc) : 'expr))));
+                                (Ast.ExOlb (_loc, i, (Ast.ExNil _loc)) :
+                                  'expr))));
                          ([ Gram.Skeyword "?";
                             Gram.Snterm
                               (Gram.Entry.obj
@@ -2169,7 +2253,8 @@ Very old (no more supported) syntax:\n\
                                  (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExLab (_loc, i, Ast.ExNil _loc) : 'expr))));
+                                (Ast.ExLab (_loc, i, (Ast.ExNil _loc)) :
+                                  'expr))));
                          ([ Gram.Skeyword "~";
                             Gram.Snterm
                               (Gram.Entry.obj
@@ -2226,13 +2311,38 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e : 'expr) _ (_loc : Gram.Loc.t) ->
                                 (Ast.ExAcc (_loc, e,
-                                   Ast.ExId (_loc, Ast.IdLid (_loc, "val"))) :
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdLid (_loc, "val"))))) :
                                   'expr)))) ]);
                       ((Some "simple"), None,
-                       [ ([ Gram.Skeyword "begin"; Gram.Skeyword "end" ],
+                       [ ([ Gram.Skeyword "("; Gram.Skeyword "module";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (module_expr : 'module_expr Gram.Entry.t));
+                            Gram.Skeyword ":";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (package_type : 'package_type Gram.Entry.t));
+                            Gram.Skeyword ")" ],
+                          (Gram.Action.mk
+                             (fun _ (pt : 'package_type) _
+                                (me : 'module_expr) _ _ (_loc : Gram.Loc.t)
+                                ->
+                                (Ast.ExPkg (_loc, (Ast.MeTyc (_loc, me, pt))) :
+                                  'expr))));
+                         ([ Gram.Skeyword "("; Gram.Skeyword "module";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (module_expr : 'module_expr Gram.Entry.t));
+                            Gram.Skeyword ")" ],
+                          (Gram.Action.mk
+                             (fun _ (me : 'module_expr) _ _
+                                (_loc : Gram.Loc.t) ->
+                                (Ast.ExPkg (_loc, me) : 'expr))));
+                         ([ Gram.Skeyword "begin"; Gram.Skeyword "end" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExId (_loc, Ast.IdUid (_loc, "()")) :
+                                (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) :
                                   'expr))));
                          ([ Gram.Skeyword "begin";
                             Gram.Snterm
@@ -2254,7 +2364,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun _ (t : 'ctyp) _ (e : 'expr) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExCoe (_loc, e, Ast.TyNil _loc, t) :
+                                (Ast.ExCoe (_loc, e, (Ast.TyNil _loc), t) :
                                   'expr))));
                          ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ":";
                             Gram.Snterm
@@ -2290,7 +2400,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun _ (el : 'comma_expr) _ (e : 'expr) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExTup (_loc, Ast.ExCom (_loc, e, el)) :
+                                (Ast.ExTup (_loc, (Ast.ExCom (_loc, e, el))) :
                                   'expr))));
                          ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ":";
                             Gram.Snterm
@@ -2303,7 +2413,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "("; Gram.Skeyword ")" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExId (_loc, Ast.IdUid (_loc, "()")) :
+                                (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) :
                                   'expr))));
                          ([ Gram.Skeyword "{<";
                             Gram.Snterm
@@ -2318,7 +2428,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "{<"; Gram.Skeyword ">}" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExOvr (_loc, Ast.RbNil _loc) : 'expr))));
+                                (Ast.ExOvr (_loc, (Ast.RbNil _loc)) : 'expr))));
                          ([ Gram.Skeyword "{"; Gram.Skeyword "("; Gram.Sself;
                             Gram.Skeyword ")"; Gram.Skeyword "with";
                             Gram.Snterm
@@ -2339,7 +2449,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun _ (el : 'label_expr_list) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExRec (_loc, el, Ast.ExNil _loc) :
+                                (Ast.ExRec (_loc, el, (Ast.ExNil _loc)) :
                                   'expr))));
                          ([ Gram.Skeyword "[|";
                             Gram.Snterm
@@ -2352,7 +2462,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "[|"; Gram.Skeyword "|]" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExArr (_loc, Ast.ExNil _loc) : 'expr))));
+                                (Ast.ExArr (_loc, (Ast.ExNil _loc)) : 'expr))));
                          ([ Gram.Skeyword "[";
                             Gram.Snterm
                               (Gram.Entry.obj
@@ -2363,7 +2473,7 @@ Very old (no more supported) syntax:\n\
                              (fun _ (mk_list : 'sem_expr_for_list) _
                                 (_loc : Gram.Loc.t) ->
                                 (mk_list
-                                   (Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) :
+                                   (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) :
                                   'expr))));
                          ([ Gram.Skeyword "[";
                             Gram.Snterm
@@ -2378,7 +2488,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "["; Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExId (_loc, Ast.IdUid (_loc, "[]")) :
+                                (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))) :
                                   'expr))));
                          ([ Gram.Skeyword "`";
                             Gram.Snterm
@@ -2387,13 +2497,29 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (s : 'a_ident) _ (_loc : Gram.Loc.t) ->
                                 (Ast.ExVrn (_loc, s) : 'expr))));
-                         ([ Gram.Snterm
-                              (Gram.Entry.obj
-                                 (val_longident :
-                                   'val_longident Gram.Entry.t)) ],
+                         ([ Gram.Stry
+                              (Gram.Snterm
+                                 (Gram.Entry.obj
+                                    (val_longident :
+                                      'val_longident Gram.Entry.t))) ],
                           (Gram.Action.mk
                              (fun (i : 'val_longident) (_loc : Gram.Loc.t) ->
                                 (Ast.ExId (_loc, i) : 'expr))));
+                         ([ Gram.Stry
+                              (Gram.Snterm
+                                 (Gram.Entry.obj
+                                    (module_longident_dot_lparen :
+                                      'module_longident_dot_lparen Gram.
+                                        Entry.t)));
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (sequence : 'sequence Gram.Entry.t));
+                            Gram.Skeyword ")" ],
+                          (Gram.Action.mk
+                             (fun _ (e : 'sequence)
+                                (i : 'module_longident_dot_lparen)
+                                (_loc : Gram.Loc.t) ->
+                                (Ast.ExOpI (_loc, i, e) : 'expr))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj (a_CHAR : 'a_CHAR Gram.Entry.t)) ],
                           (Gram.Action.mk
@@ -2445,8 +2571,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("seq" as n)), s) ->
                                     (Ast.ExSeq (_loc,
-                                       Ast.ExAnt (_loc,
-                                         mk_anti ~c: "expr" n s)) :
+                                       (Ast.ExAnt (_loc,
+                                          (mk_anti ~c: "expr" n s)))) :
                                       'expr)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -2460,8 +2586,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("tup" as n)), s) ->
                                     (Ast.ExTup (_loc,
-                                       Ast.ExAnt (_loc,
-                                         mk_anti ~c: "expr" n s)) :
+                                       (Ast.ExAnt (_loc,
+                                          (mk_anti ~c: "expr" n s)))) :
                                       'expr)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -2475,7 +2601,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("`bool" as n)), s) ->
                                     (Ast.ExId (_loc,
-                                       Ast.IdAnt (_loc, mk_anti n s)) :
+                                       (Ast.IdAnt (_loc, (mk_anti n s)))) :
                                       'expr)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -2490,7 +2616,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("exp" | "" | "anti" as n)), s)
                                     ->
-                                    (Ast.ExAnt (_loc, mk_anti ~c: "expr" n s) :
+                                    (Ast.ExAnt (_loc,
+                                       (mk_anti ~c: "expr" n s)) :
                                       'expr)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -2510,25 +2637,50 @@ Very old (no more supported) syntax:\n\
                ((fun () ->
                    (None,
                     [ (None, None,
-                       [ ([ Gram.Snterm
-                              (Gram.Entry.obj
-                                 (test_not_left_brace_nor_do :
-                                   'test_not_left_brace_nor_do Gram.Entry.t));
-                            Gram.Snterm
-                              (Gram.Entry.obj
-                                 (sequence : 'sequence Gram.Entry.t));
-                            Gram.Skeyword "done" ],
+                       [ ([ Gram.Skeyword "done" ],
                           (Gram.Action.mk
-                             (fun _ (seq : 'sequence) _ (_loc : Gram.Loc.t)
-                                -> (seq : 'do_sequence))));
-                         ([ Gram.Skeyword "{";
-                            Gram.Snterm
-                              (Gram.Entry.obj
-                                 (sequence : 'sequence Gram.Entry.t));
-                            Gram.Skeyword "}" ],
+                             (fun _ (_loc : Gram.Loc.t) ->
+                                (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) :
+                                  'do_sequence))));
+                         ([ Gram.Stry
+                              (Gram.srules do_sequence
+                                 [ ([ Gram.Snterm
+                                        (Gram.Entry.obj
+                                           (sequence :
+                                             'sequence Gram.Entry.t));
+                                      Gram.Skeyword "done" ],
+                                    (Gram.Action.mk
+                                       (fun _ (seq : 'sequence)
+                                          (_loc : Gram.Loc.t) ->
+                                          (seq : 'e__3)))) ]) ],
                           (Gram.Action.mk
-                             (fun _ (seq : 'sequence) _ (_loc : Gram.Loc.t)
-                                -> (seq : 'do_sequence)))) ]) ]))
+                             (fun (seq : 'e__3) (_loc : Gram.Loc.t) ->
+                                (seq : 'do_sequence))));
+                         ([ Gram.Stry
+                              (Gram.srules do_sequence
+                                 [ ([ Gram.Skeyword "{"; Gram.Skeyword "}" ],
+                                    (Gram.Action.mk
+                                       (fun _ _ (_loc : Gram.Loc.t) ->
+                                          (() : 'e__2)))) ]) ],
+                          (Gram.Action.mk
+                             (fun _ (_loc : Gram.Loc.t) ->
+                                (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) :
+                                  'do_sequence))));
+                         ([ Gram.Stry
+                              (Gram.srules do_sequence
+                                 [ ([ Gram.Skeyword "{";
+                                      Gram.Snterm
+                                        (Gram.Entry.obj
+                                           (sequence :
+                                             'sequence Gram.Entry.t));
+                                      Gram.Skeyword "}" ],
+                                    (Gram.Action.mk
+                                       (fun _ (seq : 'sequence) _
+                                          (_loc : Gram.Loc.t) ->
+                                          (seq : 'e__1)))) ]) ],
+                          (Gram.Action.mk
+                             (fun (seq : 'e__1) (_loc : Gram.Loc.t) ->
+                                (seq : 'do_sequence)))) ]) ]))
                   ());
              Gram.extend (infixop5 : 'infixop5 Gram.Entry.t)
                ((fun () ->
@@ -2539,15 +2691,15 @@ Very old (no more supported) syntax:\n\
                                  (Gram.Action.mk
                                     (fun (x : Gram.Token.t)
                                        (_loc : Gram.Loc.t) ->
-                                       (Gram.Token.extract_string x : 'e__1))));
+                                       (Gram.Token.extract_string x : 'e__4))));
                                 ([ Gram.Skeyword "&" ],
                                  (Gram.Action.mk
                                     (fun (x : Gram.Token.t)
                                        (_loc : Gram.Loc.t) ->
-                                       (Gram.Token.extract_string x : 'e__1)))) ] ],
+                                       (Gram.Token.extract_string x : 'e__4)))) ] ],
                           (Gram.Action.mk
-                             (fun (x : 'e__1) (_loc : Gram.Loc.t) ->
-                                (Ast.ExId (_loc, Ast.IdLid (_loc, x)) :
+                             (fun (x : 'e__4) (_loc : Gram.Loc.t) ->
+                                (Ast.ExId (_loc, (Ast.IdLid (_loc, x))) :
                                   'infixop5)))) ]) ]))
                   ());
              Gram.extend (infixop6 : 'infixop6 Gram.Entry.t)
@@ -2559,15 +2711,15 @@ Very old (no more supported) syntax:\n\
                                  (Gram.Action.mk
                                     (fun (x : Gram.Token.t)
                                        (_loc : Gram.Loc.t) ->
-                                       (Gram.Token.extract_string x : 'e__2))));
+                                       (Gram.Token.extract_string x : 'e__5))));
                                 ([ Gram.Skeyword "or" ],
                                  (Gram.Action.mk
                                     (fun (x : Gram.Token.t)
                                        (_loc : Gram.Loc.t) ->
-                                       (Gram.Token.extract_string x : 'e__2)))) ] ],
+                                       (Gram.Token.extract_string x : 'e__5)))) ] ],
                           (Gram.Action.mk
-                             (fun (x : 'e__2) (_loc : Gram.Loc.t) ->
-                                (Ast.ExId (_loc, Ast.IdLid (_loc, x)) :
+                             (fun (x : 'e__5) (_loc : Gram.Loc.t) ->
+                                (Ast.ExId (_loc, (Ast.IdLid (_loc, x))) :
                                   'infixop6)))) ]) ]))
                   ());
              Gram.extend
@@ -2581,10 +2733,23 @@ Very old (no more supported) syntax:\n\
                              (fun (e : 'expr) (_loc : Gram.Loc.t) ->
                                 (fun acc ->
                                    Ast.ExApp (_loc,
-                                     Ast.ExApp (_loc,
-                                       Ast.ExId (_loc,
-                                         Ast.IdUid (_loc, "::")),
-                                       e),
+                                     (Ast.ExApp (_loc,
+                                        (Ast.ExId (_loc,
+                                           (Ast.IdUid (_loc, "::")))),
+                                        e)),
+                                     acc) :
+                                  'sem_expr_for_list))));
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t));
+                            Gram.Skeyword ";" ],
+                          (Gram.Action.mk
+                             (fun _ (e : 'expr) (_loc : Gram.Loc.t) ->
+                                (fun acc ->
+                                   Ast.ExApp (_loc,
+                                     (Ast.ExApp (_loc,
+                                        (Ast.ExId (_loc,
+                                           (Ast.IdUid (_loc, "::")))),
+                                        e)),
                                      acc) :
                                   'sem_expr_for_list))));
                          ([ Gram.Snterm
@@ -2595,11 +2760,11 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 (fun acc ->
                                    Ast.ExApp (_loc,
-                                     Ast.ExApp (_loc,
-                                       Ast.ExId (_loc,
-                                         Ast.IdUid (_loc, "::")),
-                                       e),
-                                     el acc) :
+                                     (Ast.ExApp (_loc,
+                                        (Ast.ExId (_loc,
+                                           (Ast.IdUid (_loc, "::")))),
+                                        e)),
+                                     (el acc)) :
                                   'sem_expr_for_list)))) ]) ]))
                   ());
              Gram.extend (comma_expr : 'comma_expr Gram.Entry.t)
@@ -2607,7 +2772,7 @@ Very old (no more supported) syntax:\n\
                    (None,
                     [ (None, None,
                        [ ([ Gram.Snterml
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                              ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                               "top") ],
                           (Gram.Action.mk
                              (fun (e : 'expr) (_loc : Gram.Loc.t) ->
@@ -2623,7 +2788,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.ExAnt (_loc,
-                                       mk_anti ~c: "expr," n s) :
+                                       (mk_anti ~c: "expr," n s)) :
                                       'comma_expr)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ],
@@ -2684,7 +2849,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.ExAnt (_loc,
-                                       mk_anti ~c: "expr;" n s) :
+                                       (mk_anti ~c: "expr;" n s)) :
                                       'sequence)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "let"; Gram.Skeyword "open";
@@ -2709,7 +2874,8 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (el : 'sequence) _ (mb : 'module_binding0)
                                 (m : 'a_UIDENT) _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExLmd (_loc, m, mb, mksequence _loc el) :
+                                (Ast.ExLmd (_loc, m, mb,
+                                   (mksequence _loc el)) :
                                   'sequence))));
                          ([ Gram.Skeyword "let"; Gram.Skeyword "module";
                             Gram.Snterm
@@ -2741,7 +2907,8 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (el : 'sequence) _ (bi : 'binding)
                                 (rf : 'opt_rec) _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExLet (_loc, rf, bi, mksequence _loc el) :
+                                (Ast.ExLet (_loc, rf, bi,
+                                   (mksequence _loc el)) :
                                   'sequence))));
                          ([ Gram.Skeyword "let";
                             Gram.Snterm
@@ -2788,7 +2955,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "anti" as n)), s) ->
                                     (Ast.BiAnt (_loc,
-                                       mk_anti ~c: "binding" n s) :
+                                       (mk_anti ~c: "binding" n s)) :
                                       'binding)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -2805,8 +2972,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "anti" as n)), s) ->
                                     (Ast.BiEq (_loc,
-                                       Ast.PaAnt (_loc,
-                                         mk_anti ~c: "patt" n s),
+                                       (Ast.PaAnt (_loc,
+                                          (mk_anti ~c: "patt" n s))),
                                        e) :
                                       'binding)
                                 | _ -> assert false)));
@@ -2822,7 +2989,7 @@ Very old (no more supported) syntax:\n\
                                 | ANTIQUOT ((("binding" | "list" as n)), s)
                                     ->
                                     (Ast.BiAnt (_loc,
-                                       mk_anti ~c: "binding" n s) :
+                                       (mk_anti ~c: "binding" n s)) :
                                       'binding)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -2844,44 +3011,39 @@ Very old (no more supported) syntax:\n\
                ((fun () ->
                    (None,
                     [ (None, (Some Camlp4.Sig.Grammar.RightA),
-                       [ ([ Gram.Skeyword ":>";
-                            Gram.Snterm
-                              (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t));
-                            Gram.Skeyword "=";
-                            Gram.Snterm
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ],
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (cvalue_binding :
+                                   'cvalue_binding Gram.Entry.t)) ],
                           (Gram.Action.mk
-                             (fun (e : 'expr) _ (t : 'ctyp) _
-                                (_loc : Gram.Loc.t) ->
-                                (Ast.ExCoe (_loc, e, Ast.TyNil _loc, t) :
-                                  'fun_binding))));
-                         ([ Gram.Skeyword ":";
-                            Gram.Snterm
-                              (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t));
-                            Gram.Skeyword "=";
-                            Gram.Snterm
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ],
+                             (fun (bi : 'cvalue_binding) (_loc : Gram.Loc.t)
+                                -> (bi : 'fun_binding))));
+                         ([ Gram.Stry
+                              (Gram.Snterm
+                                 (Gram.Entry.obj
+                                    (labeled_ipatt :
+                                      'labeled_ipatt Gram.Entry.t)));
+                            Gram.Sself ],
                           (Gram.Action.mk
-                             (fun (e : 'expr) _ (t : 'ctyp) _
+                             (fun (e : 'fun_binding) (p : 'labeled_ipatt)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExTyc (_loc, e, t) : 'fun_binding))));
-                         ([ Gram.Skeyword "=";
+                                (Ast.ExFun (_loc,
+                                   (Ast.McArr (_loc, p, (Ast.ExNil _loc), e))) :
+                                  'fun_binding))));
+                         ([ Gram.Stry
+                              (Gram.srules fun_binding
+                                 [ ([ Gram.Skeyword "("; Gram.Skeyword "type" ],
+                                    (Gram.Action.mk
+                                       (fun _ _ (_loc : Gram.Loc.t) ->
+                                          (() : 'e__6)))) ]);
                             Gram.Snterm
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ],
-                          (Gram.Action.mk
-                             (fun (e : 'expr) _ (_loc : Gram.Loc.t) ->
-                                (e : 'fun_binding))));
-                         ([ Gram.Snterm
                               (Gram.Entry.obj
-                                 (labeled_ipatt :
-                                   'labeled_ipatt Gram.Entry.t));
-                            Gram.Sself ],
+                                 (a_LIDENT : 'a_LIDENT Gram.Entry.t));
+                            Gram.Skeyword ")"; Gram.Sself ],
                           (Gram.Action.mk
-                             (fun (e : 'fun_binding) (p : 'labeled_ipatt)
+                             (fun (e : 'fun_binding) _ (i : 'a_LIDENT) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExFun (_loc,
-                                   Ast.McArr (_loc, p, Ast.ExNil _loc, e)) :
-                                  'fun_binding)))) ]) ]))
+                                (Ast.ExFUN (_loc, i, e) : 'fun_binding)))) ]) ]))
                   ());
              Gram.extend (match_case : 'match_case Gram.Entry.t)
                ((fun () ->
@@ -2895,14 +3057,15 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e : 'expr) _ (p : 'ipatt)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.McArr (_loc, p, Ast.ExNil _loc, e) :
+                                (Ast.McArr (_loc, p, (Ast.ExNil _loc), e) :
                                   'match_case))));
                          ([ Gram.Skeyword "[";
                             Gram.Slist0sep
-                              (Gram.Snterm
-                                 (Gram.Entry.obj
-                                    (match_case0 : 'match_case0 Gram.Entry.t)),
-                              Gram.Skeyword "|");
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj
+                                     (match_case0 :
+                                       'match_case0 Gram.Entry.t))),
+                              (Gram.Skeyword "|"));
                             Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ (l : 'match_case0 list) _
@@ -2946,8 +3109,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "anti" as n)), s) ->
                                     (Ast.McArr (_loc,
-                                       Ast.PaAnt (_loc,
-                                         mk_anti ~c: "patt" n s),
+                                       (Ast.PaAnt (_loc,
+                                          (mk_anti ~c: "patt" n s))),
                                        w, e) :
                                       'match_case0)
                                 | _ -> assert false)));
@@ -2965,9 +3128,9 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "anti" as n)), s) ->
                                     (Ast.McArr (_loc,
-                                       Ast.PaAnt (_loc,
-                                         mk_anti ~c: "patt" n s),
-                                       Ast.ExNil _loc, e) :
+                                       (Ast.PaAnt (_loc,
+                                          (mk_anti ~c: "patt" n s))),
+                                       (Ast.ExNil _loc), e) :
                                       'match_case0)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -2981,7 +3144,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "anti" as n)), s) ->
                                     (Ast.McAnt (_loc,
-                                       mk_anti ~c: "match_case" n s) :
+                                       (mk_anti ~c: "match_case" n s)) :
                                       'match_case0)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -2997,7 +3160,7 @@ Very old (no more supported) syntax:\n\
                                 | ANTIQUOT ((("match_case" | "list" as n)),
                                     s) ->
                                     (Ast.McAnt (_loc,
-                                       mk_anti ~c: "match_case" n s) :
+                                       (mk_anti ~c: "match_case" n s)) :
                                       'match_case0)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -3074,8 +3237,8 @@ Very old (no more supported) syntax:\n\
                              (fun (i : 'label_longident) (_loc : Gram.Loc.t)
                                 ->
                                 (Ast.RbEq (_loc, i,
-                                   Ast.ExId (_loc,
-                                     Ast.IdLid (_loc, lid_of_ident i))) :
+                                   (Ast.ExId (_loc,
+                                      (Ast.IdLid (_loc, (lid_of_ident i)))))) :
                                   'label_expr))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -3099,7 +3262,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.RbAnt (_loc,
-                                       mk_anti ~c: "rec_binding" n s) :
+                                       (mk_anti ~c: "rec_binding" n s)) :
                                       'label_expr)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -3116,8 +3279,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "anti" as n)), s) ->
                                     (Ast.RbEq (_loc,
-                                       Ast.IdAnt (_loc,
-                                         mk_anti ~c: "ident" n s),
+                                       (Ast.IdAnt (_loc,
+                                          (mk_anti ~c: "ident" n s))),
                                        e) :
                                       'label_expr)
                                 | _ -> assert false)));
@@ -3132,7 +3295,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "anti" as n)), s) ->
                                     (Ast.RbAnt (_loc,
-                                       mk_anti ~c: "rec_binding" n s) :
+                                       (mk_anti ~c: "rec_binding" n s)) :
                                       'label_expr)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -3146,7 +3309,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("rec_binding" as n)), s) ->
                                     (Ast.RbAnt (_loc,
-                                       mk_anti ~c: "rec_binding" n s) :
+                                       (mk_anti ~c: "rec_binding" n s)) :
                                       'label_expr)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -3154,18 +3317,38 @@ Very old (no more supported) syntax:\n\
                ((fun () ->
                    (None,
                     [ (None, None,
-                       [ ([ Gram.Snterm
-                              (Gram.Entry.obj
-                                 (labeled_ipatt :
-                                   'labeled_ipatt Gram.Entry.t));
+                       [ ([ Gram.Stry
+                              (Gram.Snterm
+                                 (Gram.Entry.obj
+                                    (labeled_ipatt :
+                                      'labeled_ipatt Gram.Entry.t)));
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (fun_def_cont : 'fun_def_cont Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun ((w, e) : 'fun_def_cont)
                                 (p : 'labeled_ipatt) (_loc : Gram.Loc.t) ->
-                                (Ast.ExFun (_loc, Ast.McArr (_loc, p, w, e)) :
-                                  'fun_def)))) ]) ]))
+                                (Ast.ExFun (_loc,
+                                   (Ast.McArr (_loc, p, w, e))) :
+                                  'fun_def))));
+                         ([ Gram.Stry
+                              (Gram.srules fun_def
+                                 [ ([ Gram.Skeyword "("; Gram.Skeyword "type" ],
+                                    (Gram.Action.mk
+                                       (fun _ _ (_loc : Gram.Loc.t) ->
+                                          (() : 'e__7)))) ]);
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (a_LIDENT : 'a_LIDENT Gram.Entry.t));
+                            Gram.Skeyword ")";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (fun_def_cont_no_when :
+                                   'fun_def_cont_no_when Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (e : 'fun_def_cont_no_when) _
+                                (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) ->
+                                (Ast.ExFUN (_loc, i, e) : 'fun_def)))) ]) ]))
                   ());
              Gram.extend (fun_def_cont : 'fun_def_cont Gram.Entry.t)
                ((fun () ->
@@ -3187,19 +3370,80 @@ Very old (no more supported) syntax:\n\
                              (fun (e : 'expr) _ (w : 'expr) _
                                 (_loc : Gram.Loc.t) ->
                                 ((w, e) : 'fun_def_cont))));
-                         ([ Gram.Snterm
-                              (Gram.Entry.obj
-                                 (labeled_ipatt :
-                                   'labeled_ipatt Gram.Entry.t));
+                         ([ Gram.Stry
+                              (Gram.Snterm
+                                 (Gram.Entry.obj
+                                    (labeled_ipatt :
+                                      'labeled_ipatt Gram.Entry.t)));
                             Gram.Sself ],
                           (Gram.Action.mk
                              (fun ((w, e) : 'fun_def_cont)
                                 (p : 'labeled_ipatt) (_loc : Gram.Loc.t) ->
                                 (((Ast.ExNil _loc),
                                   (Ast.ExFun (_loc,
-                                     Ast.McArr (_loc, p, w, e)))) :
+                                     (Ast.McArr (_loc, p, w, e))))) :
+                                  'fun_def_cont))));
+                         ([ Gram.Stry
+                              (Gram.srules fun_def_cont
+                                 [ ([ Gram.Skeyword "("; Gram.Skeyword "type" ],
+                                    (Gram.Action.mk
+                                       (fun _ _ (_loc : Gram.Loc.t) ->
+                                          (() : 'e__8)))) ]);
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (a_LIDENT : 'a_LIDENT Gram.Entry.t));
+                            Gram.Skeyword ")";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (fun_def_cont_no_when :
+                                   'fun_def_cont_no_when Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (e : 'fun_def_cont_no_when) _
+                                (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) ->
+                                (((Ast.ExNil _loc), (Ast.ExFUN (_loc, i, e))) :
                                   'fun_def_cont)))) ]) ]))
                   ());
+             Gram.extend
+               (fun_def_cont_no_when : 'fun_def_cont_no_when Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, (Some Camlp4.Sig.Grammar.RightA),
+                       [ ([ Gram.Skeyword "->";
+                            Gram.Snterm
+                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (e : 'expr) _ (_loc : Gram.Loc.t) ->
+                                (e : 'fun_def_cont_no_when))));
+                         ([ Gram.Stry
+                              (Gram.Snterm
+                                 (Gram.Entry.obj
+                                    (labeled_ipatt :
+                                      'labeled_ipatt Gram.Entry.t)));
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (fun_def_cont : 'fun_def_cont Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun ((w, e) : 'fun_def_cont)
+                                (p : 'labeled_ipatt) (_loc : Gram.Loc.t) ->
+                                (Ast.ExFun (_loc,
+                                   (Ast.McArr (_loc, p, w, e))) :
+                                  'fun_def_cont_no_when))));
+                         ([ Gram.Stry
+                              (Gram.srules fun_def_cont_no_when
+                                 [ ([ Gram.Skeyword "("; Gram.Skeyword "type" ],
+                                    (Gram.Action.mk
+                                       (fun _ _ (_loc : Gram.Loc.t) ->
+                                          (() : 'e__9)))) ]);
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (a_LIDENT : 'a_LIDENT Gram.Entry.t));
+                            Gram.Skeyword ")"; Gram.Sself ],
+                          (Gram.Action.mk
+                             (fun (e : 'fun_def_cont_no_when) _
+                                (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) ->
+                                (Ast.ExFUN (_loc, i, e) :
+                                  'fun_def_cont_no_when)))) ]) ]))
+                  ());
              Gram.extend (patt : 'patt Gram.Entry.t)
                ((fun () ->
                    (None,
@@ -3257,8 +3501,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "lid" as n)), i) ->
-                                    (Ast.PaOlb (_loc, mk_anti n i,
-                                       Ast.PaNil _loc) :
+                                    (Ast.PaOlb (_loc, (mk_anti n i),
+                                       (Ast.PaNil _loc)) :
                                       'patt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "?";
@@ -3270,7 +3514,7 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | LIDENT i ->
-                                    (Ast.PaOlb (_loc, i, Ast.PaNil _loc) :
+                                    (Ast.PaOlb (_loc, i, (Ast.PaNil _loc)) :
                                       'patt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "?";
@@ -3322,7 +3566,7 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | LIDENT i ->
-                                    (Ast.PaLab (_loc, i, Ast.PaNil _loc) :
+                                    (Ast.PaLab (_loc, i, (Ast.PaNil _loc)) :
                                       'patt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "~";
@@ -3336,8 +3580,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "lid" as n)), i) ->
-                                    (Ast.PaLab (_loc, mk_anti n i,
-                                       Ast.PaNil _loc) :
+                                    (Ast.PaLab (_loc, (mk_anti n i),
+                                       (Ast.PaNil _loc)) :
                                       'patt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "~";
@@ -3352,7 +3596,7 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "lid" as n)), i) ->
-                                    (Ast.PaLab (_loc, mk_anti n i, p) :
+                                    (Ast.PaLab (_loc, (mk_anti n i), p) :
                                       'patt)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -3404,7 +3648,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun _ (pl : 'comma_patt) _ (p : 'patt) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.PaTup (_loc, Ast.PaCom (_loc, p, pl)) :
+                                (Ast.PaTup (_loc, (Ast.PaCom (_loc, p, pl))) :
                                   'patt))));
                          ([ Gram.Skeyword "("; Gram.Sself;
                             Gram.Skeyword "as"; Gram.Sself; Gram.Skeyword ")" ],
@@ -3427,7 +3671,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "("; Gram.Skeyword ")" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaId (_loc, Ast.IdUid (_loc, "()")) :
+                                (Ast.PaId (_loc, (Ast.IdUid (_loc, "()"))) :
                                   'patt))));
                          ([ Gram.Skeyword "{";
                             Gram.Snterm
@@ -3450,7 +3694,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "[|"; Gram.Skeyword "|]" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaArr (_loc, Ast.PaNil _loc) : 'patt))));
+                                (Ast.PaArr (_loc, (Ast.PaNil _loc)) : 'patt))));
                          ([ Gram.Skeyword "[";
                             Gram.Snterm
                               (Gram.Entry.obj
@@ -3461,7 +3705,7 @@ Very old (no more supported) syntax:\n\
                              (fun _ (mk_list : 'sem_patt_for_list) _
                                 (_loc : Gram.Loc.t) ->
                                 (mk_list
-                                   (Ast.PaId (_loc, Ast.IdUid (_loc, "[]"))) :
+                                   (Ast.PaId (_loc, (Ast.IdUid (_loc, "[]")))) :
                                   'patt))));
                          ([ Gram.Skeyword "[";
                             Gram.Snterm
@@ -3476,7 +3720,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "["; Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaId (_loc, Ast.IdUid (_loc, "[]")) :
+                                (Ast.PaId (_loc, (Ast.IdUid (_loc, "[]"))) :
                                   'patt))));
                          ([ Gram.Skeyword "-";
                             Gram.Snterm
@@ -3484,14 +3728,14 @@ Very old (no more supported) syntax:\n\
                                  (a_FLOAT : 'a_FLOAT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (s : 'a_FLOAT) _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaFlo (_loc, neg_string s) : 'patt))));
+                                (Ast.PaFlo (_loc, (neg_string s)) : 'patt))));
                          ([ Gram.Skeyword "-";
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (a_NATIVEINT : 'a_NATIVEINT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (s : 'a_NATIVEINT) _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaNativeInt (_loc, neg_string s) :
+                                (Ast.PaNativeInt (_loc, (neg_string s)) :
                                   'patt))));
                          ([ Gram.Skeyword "-";
                             Gram.Snterm
@@ -3499,20 +3743,20 @@ Very old (no more supported) syntax:\n\
                                  (a_INT64 : 'a_INT64 Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (s : 'a_INT64) _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaInt64 (_loc, neg_string s) : 'patt))));
+                                (Ast.PaInt64 (_loc, (neg_string s)) : 'patt))));
                          ([ Gram.Skeyword "-";
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (a_INT32 : 'a_INT32 Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (s : 'a_INT32) _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaInt32 (_loc, neg_string s) : 'patt))));
+                                (Ast.PaInt32 (_loc, (neg_string s)) : 'patt))));
                          ([ Gram.Skeyword "-";
                             Gram.Snterm
                               (Gram.Entry.obj (a_INT : 'a_INT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (s : 'a_INT) _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaInt (_loc, neg_string s) : 'patt))));
+                                (Ast.PaInt (_loc, (neg_string s)) : 'patt))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj (a_CHAR : 'a_CHAR Gram.Entry.t)) ],
                           (Gram.Action.mk
@@ -3569,7 +3813,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("`bool" as n)), s) ->
                                     (Ast.PaId (_loc,
-                                       Ast.IdAnt (_loc, mk_anti n s)) :
+                                       (Ast.IdAnt (_loc, (mk_anti n s)))) :
                                       'patt)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -3583,8 +3827,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("tup" as n)), s) ->
                                     (Ast.PaTup (_loc,
-                                       Ast.PaAnt (_loc,
-                                         mk_anti ~c: "patt" n s)) :
+                                       (Ast.PaAnt (_loc,
+                                          (mk_anti ~c: "patt" n s)))) :
                                       'patt)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -3599,7 +3843,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "pat" | "anti" as n)), s)
                                     ->
-                                    (Ast.PaAnt (_loc, mk_anti ~c: "patt" n s) :
+                                    (Ast.PaAnt (_loc,
+                                       (mk_anti ~c: "patt" n s)) :
                                       'patt)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -3623,7 +3868,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.PaAnt (_loc,
-                                       mk_anti ~c: "patt," n s) :
+                                       (mk_anti ~c: "patt," n s)) :
                                       'comma_patt)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ],
@@ -3641,6 +3886,12 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (p : 'patt) (_loc : Gram.Loc.t) ->
                                 (p : 'sem_patt))));
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj (patt : 'patt Gram.Entry.t));
+                            Gram.Skeyword ";" ],
+                          (Gram.Action.mk
+                             (fun _ (p : 'patt) (_loc : Gram.Loc.t) ->
+                                (p : 'sem_patt))));
                          ([ Gram.Stoken
                               (((function
                                  | ANTIQUOT ("list", _) -> true
@@ -3652,12 +3903,14 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.PaAnt (_loc,
-                                       mk_anti ~c: "patt;" n s) :
+                                       (mk_anti ~c: "patt;" n s)) :
                                       'sem_patt)
                                 | _ -> assert false)));
-                         ([ Gram.Sself; Gram.Skeyword ";"; Gram.Sself ],
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj (patt : 'patt Gram.Entry.t));
+                            Gram.Skeyword ";"; Gram.Sself ],
                           (Gram.Action.mk
-                             (fun (p2 : 'sem_patt) _ (p1 : 'sem_patt)
+                             (fun (p2 : 'sem_patt) _ (p1 : 'patt)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.PaSem (_loc, p1, p2) : 'sem_patt)))) ]) ]))
                   ());
@@ -3672,10 +3925,23 @@ Very old (no more supported) syntax:\n\
                              (fun (p : 'patt) (_loc : Gram.Loc.t) ->
                                 (fun acc ->
                                    Ast.PaApp (_loc,
-                                     Ast.PaApp (_loc,
-                                       Ast.PaId (_loc,
-                                         Ast.IdUid (_loc, "::")),
-                                       p),
+                                     (Ast.PaApp (_loc,
+                                        (Ast.PaId (_loc,
+                                           (Ast.IdUid (_loc, "::")))),
+                                        p)),
+                                     acc) :
+                                  'sem_patt_for_list))));
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj (patt : 'patt Gram.Entry.t));
+                            Gram.Skeyword ";" ],
+                          (Gram.Action.mk
+                             (fun _ (p : 'patt) (_loc : Gram.Loc.t) ->
+                                (fun acc ->
+                                   Ast.PaApp (_loc,
+                                     (Ast.PaApp (_loc,
+                                        (Ast.PaId (_loc,
+                                           (Ast.IdUid (_loc, "::")))),
+                                        p)),
                                      acc) :
                                   'sem_patt_for_list))));
                          ([ Gram.Snterm
@@ -3686,11 +3952,11 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 (fun acc ->
                                    Ast.PaApp (_loc,
-                                     Ast.PaApp (_loc,
-                                       Ast.PaId (_loc,
-                                         Ast.IdUid (_loc, "::")),
-                                       p),
-                                     pl acc) :
+                                     (Ast.PaApp (_loc,
+                                        (Ast.PaId (_loc,
+                                           (Ast.IdUid (_loc, "::")))),
+                                        p)),
+                                     (pl acc)) :
                                   'sem_patt_for_list)))) ]) ]))
                   ());
              Gram.extend (label_patt_list : 'label_patt_list Gram.Entry.t)
@@ -3718,7 +3984,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun _ _ _ (p1 : 'label_patt)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.PaSem (_loc, p1, Ast.PaAny _loc) :
+                                (Ast.PaSem (_loc, p1, (Ast.PaAny _loc)) :
                                   'label_patt_list))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -3727,7 +3993,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun _ _ (p1 : 'label_patt) (_loc : Gram.Loc.t)
                                 ->
-                                (Ast.PaSem (_loc, p1, Ast.PaAny _loc) :
+                                (Ast.PaSem (_loc, p1, (Ast.PaAny _loc)) :
                                   'label_patt_list))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -3750,8 +4016,8 @@ Very old (no more supported) syntax:\n\
                              (fun (i : 'label_longident) (_loc : Gram.Loc.t)
                                 ->
                                 (Ast.PaEq (_loc, i,
-                                   Ast.PaId (_loc,
-                                     Ast.IdLid (_loc, lid_of_ident i))) :
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdLid (_loc, (lid_of_ident i)))))) :
                                   'label_patt))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -3775,7 +4041,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.PaAnt (_loc,
-                                       mk_anti ~c: "patt;" n s) :
+                                       (mk_anti ~c: "patt;" n s)) :
                                       'label_patt)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -3802,7 +4068,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "pat" | "anti" as n)), s)
                                     ->
-                                    (Ast.PaAnt (_loc, mk_anti ~c: "patt" n s) :
+                                    (Ast.PaAnt (_loc,
+                                       (mk_anti ~c: "patt" n s)) :
                                       'label_patt)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -3819,7 +4086,7 @@ Very old (no more supported) syntax:\n\
                                  (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (s : 'a_LIDENT) (_loc : Gram.Loc.t) ->
-                                (Ast.PaId (_loc, Ast.IdLid (_loc, s)) :
+                                (Ast.PaId (_loc, (Ast.IdLid (_loc, s))) :
                                   'ipatt))));
                          ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ",";
                             Gram.Snterm
@@ -3829,7 +4096,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun _ (pl : 'comma_ipatt) _ (p : 'ipatt) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.PaTup (_loc, Ast.PaCom (_loc, p, pl)) :
+                                (Ast.PaTup (_loc, (Ast.PaCom (_loc, p, pl))) :
                                   'ipatt))));
                          ([ Gram.Skeyword "("; Gram.Sself;
                             Gram.Skeyword "as"; Gram.Sself; Gram.Skeyword ")" ],
@@ -3852,7 +4119,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "("; Gram.Skeyword ")" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.PaId (_loc, Ast.IdUid (_loc, "()")) :
+                                (Ast.PaId (_loc, (Ast.IdUid (_loc, "()"))) :
                                   'ipatt))));
                          ([ Gram.Stoken
                               (((function | QUOTATION _ -> true | _ -> false),
@@ -3877,8 +4144,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("tup" as n)), s) ->
                                     (Ast.PaTup (_loc,
-                                       Ast.PaAnt (_loc,
-                                         mk_anti ~c: "patt" n s)) :
+                                       (Ast.PaAnt (_loc,
+                                          (mk_anti ~c: "patt" n s)))) :
                                       'ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -3893,7 +4160,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "pat" | "anti" as n)), s)
                                     ->
-                                    (Ast.PaAnt (_loc, mk_anti ~c: "patt" n s) :
+                                    (Ast.PaAnt (_loc,
+                                       (mk_anti ~c: "patt" n s)) :
                                       'ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "{";
@@ -3937,7 +4205,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.PaAnt (_loc,
-                                       mk_anti ~c: "patt," n s) :
+                                       (mk_anti ~c: "patt," n s)) :
                                       'comma_ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ],
@@ -4011,7 +4279,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.PaAnt (_loc,
-                                       mk_anti ~c: "patt;" n s) :
+                                       (mk_anti ~c: "patt;" n s)) :
                                       'label_ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -4026,7 +4294,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "pat" | "anti" as n)), s)
                                     ->
-                                    (Ast.PaAnt (_loc, mk_anti ~c: "patt" n s) :
+                                    (Ast.PaAnt (_loc,
+                                       (mk_anti ~c: "patt" n s)) :
                                       'label_ipatt)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4081,7 +4350,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctypand" n s) :
+                                       (mk_anti ~c: "ctypand" n s)) :
                                       'type_declaration)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -4096,7 +4365,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" | "anti" as n)), s)
                                     ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'type_declaration)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4257,7 +4527,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" | "anti" as n)), s)
                                     ->
-                                    (Ast.TyAnt (_loc, mk_anti n s) :
+                                    (Ast.TyAnt (_loc, (mk_anti n s)) :
                                       'type_parameter)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4273,7 +4543,7 @@ Very old (no more supported) syntax:\n\
                       ((Some "private"), (Some Camlp4.Sig.Grammar.NonA),
                        [ ([ Gram.Skeyword "private";
                             Gram.Snterml
-                              (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t),
+                              ((Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t)),
                               "alias") ],
                           (Gram.Action.mk
                              (fun (t : 'ctyp) _ (_loc : Gram.Loc.t) ->
@@ -4342,7 +4612,7 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 (let t = Ast.TyApp (_loc, t1, t2)
                                  in
-                                   try Ast.TyId (_loc, Ast.ident_of_ctyp t)
+                                   try Ast.TyId (_loc, (Ast.ident_of_ctyp t))
                                    with | Invalid_argument _ -> t :
                                   'ctyp)))) ]);
                       ((Some "."), (Some Camlp4.Sig.Grammar.LeftA),
@@ -4352,14 +4622,24 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 (try
                                    Ast.TyId (_loc,
-                                     Ast.IdAcc (_loc, Ast.ident_of_ctyp t1,
-                                       Ast.ident_of_ctyp t2))
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.ident_of_ctyp t1),
+                                        (Ast.ident_of_ctyp t2))))
                                  with
                                  | Invalid_argument s ->
                                      raise (Stream.Error s) :
                                   'ctyp)))) ]);
                       ((Some "simple"), None,
-                       [ ([ Gram.Skeyword "<";
+                       [ ([ Gram.Skeyword "("; Gram.Skeyword "module";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (package_type : 'package_type Gram.Entry.t));
+                            Gram.Skeyword ")" ],
+                          (Gram.Action.mk
+                             (fun _ (p : 'package_type) _ _
+                                (_loc : Gram.Loc.t) ->
+                                (Ast.TyPkg (_loc, p) : 'ctyp))));
+                         ([ Gram.Skeyword "<";
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (opt_meth_list :
@@ -4443,7 +4723,8 @@ Very old (no more supported) syntax:\n\
                             Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.TyVrnSup (_loc, Ast.TyNil _loc) : 'ctyp))));
+                                (Ast.TyVrnSup (_loc, (Ast.TyNil _loc)) :
+                                  'ctyp))));
                          ([ Gram.Skeyword "["; Gram.Skeyword "=";
                             Gram.Snterm
                               (Gram.Entry.obj
@@ -4466,7 +4747,7 @@ Very old (no more supported) syntax:\n\
                          ([ Gram.Skeyword "["; Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ _ (_loc : Gram.Loc.t) ->
-                                (Ast.TySum (_loc, Ast.TyNil _loc) : 'ctyp))));
+                                (Ast.TySum (_loc, (Ast.TyNil _loc)) : 'ctyp))));
                          ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ")" ],
                           (Gram.Action.mk
                              (fun _ (t : 'ctyp) _ (_loc : Gram.Loc.t) ->
@@ -4479,21 +4760,21 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun _ (tl : 'star_ctyp) _ (t : 'ctyp) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.TyTup (_loc, Ast.TySta (_loc, t, tl)) :
+                                (Ast.TyTup (_loc, (Ast.TySta (_loc, t, tl))) :
                                   'ctyp))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
                                  (a_UIDENT : 'a_UIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (i : 'a_UIDENT) (_loc : Gram.Loc.t) ->
-                                (Ast.TyId (_loc, Ast.IdUid (_loc, i)) :
+                                (Ast.TyId (_loc, (Ast.IdUid (_loc, i))) :
                                   'ctyp))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
                                  (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (i : 'a_LIDENT) (_loc : Gram.Loc.t) ->
-                                (Ast.TyId (_loc, Ast.IdLid (_loc, i)) :
+                                (Ast.TyId (_loc, (Ast.IdLid (_loc, i))) :
                                   'ctyp))));
                          ([ Gram.Stoken
                               (((function | QUOTATION _ -> true | _ -> false),
@@ -4518,8 +4799,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("id" as n)), s) ->
                                     (Ast.TyId (_loc,
-                                       Ast.IdAnt (_loc,
-                                         mk_anti ~c: "ident" n s)) :
+                                       (Ast.IdAnt (_loc,
+                                          (mk_anti ~c: "ident" n s)))) :
                                       'ctyp)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -4533,8 +4814,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("tup" as n)), s) ->
                                     (Ast.TyTup (_loc,
-                                       Ast.TyAnt (_loc,
-                                         mk_anti ~c: "ctyp" n s)) :
+                                       (Ast.TyAnt (_loc,
+                                          (mk_anti ~c: "ctyp" n s)))) :
                                       'ctyp)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -4549,7 +4830,8 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" | "anti" as n)), s)
                                     ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'ctyp)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "_" ],
@@ -4589,7 +4871,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctyp*" n s) :
+                                       (mk_anti ~c: "ctyp*" n s)) :
                                       'star_ctyp)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -4602,7 +4884,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" as n)), s) ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'star_ctyp)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4617,7 +4900,7 @@ Very old (no more supported) syntax:\n\
                                  (a_UIDENT : 'a_UIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (s : 'a_UIDENT) (_loc : Gram.Loc.t) ->
-                                (Ast.TyId (_loc, Ast.IdUid (_loc, s)) :
+                                (Ast.TyId (_loc, (Ast.IdUid (_loc, s))) :
                                   'constructor_declarations))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -4631,7 +4914,8 @@ Very old (no more supported) syntax:\n\
                              (fun (t : 'constructor_arg_list) _
                                 (s : 'a_UIDENT) (_loc : Gram.Loc.t) ->
                                 (Ast.TyOf (_loc,
-                                   Ast.TyId (_loc, Ast.IdUid (_loc, s)), t) :
+                                   (Ast.TyId (_loc, (Ast.IdUid (_loc, s)))),
+                                   t) :
                                   'constructor_declarations))));
                          ([ Gram.Sself; Gram.Skeyword "|"; Gram.Sself ],
                           (Gram.Action.mk
@@ -4663,7 +4947,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctyp|" n s) :
+                                       (mk_anti ~c: "ctyp|" n s)) :
                                       'constructor_declarations)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -4676,7 +4960,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" as n)), s) ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'constructor_declarations)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4691,7 +4976,7 @@ Very old (no more supported) syntax:\n\
                                  (a_UIDENT : 'a_UIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (s : 'a_UIDENT) (_loc : Gram.Loc.t) ->
-                                (Ast.TyId (_loc, Ast.IdUid (_loc, s)) :
+                                (Ast.TyId (_loc, (Ast.IdUid (_loc, s))) :
                                   'constructor_declaration))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -4705,7 +4990,8 @@ Very old (no more supported) syntax:\n\
                              (fun (t : 'constructor_arg_list) _
                                 (s : 'a_UIDENT) (_loc : Gram.Loc.t) ->
                                 (Ast.TyOf (_loc,
-                                   Ast.TyId (_loc, Ast.IdUid (_loc, s)), t) :
+                                   (Ast.TyId (_loc, (Ast.IdUid (_loc, s)))),
+                                   t) :
                                   'constructor_declaration))));
                          ([ Gram.Stoken
                               (((function | QUOTATION _ -> true | _ -> false),
@@ -4729,7 +5015,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" as n)), s) ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'constructor_declaration)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4761,7 +5048,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctypand" n s) :
+                                       (mk_anti ~c: "ctypand" n s)) :
                                       'constructor_arg_list)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4816,8 +5103,8 @@ Very old (no more supported) syntax:\n\
                              (fun (t : 'poly_type) _ _ (s : 'a_LIDENT)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.TyCol (_loc,
-                                   Ast.TyId (_loc, Ast.IdLid (_loc, s)),
-                                   Ast.TyMut (_loc, t)) :
+                                   (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))),
+                                   (Ast.TyMut (_loc, t))) :
                                   'label_declaration))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -4830,7 +5117,8 @@ Very old (no more supported) syntax:\n\
                              (fun (t : 'poly_type) _ (s : 'a_LIDENT)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.TyCol (_loc,
-                                   Ast.TyId (_loc, Ast.IdLid (_loc, s)), t) :
+                                   (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))),
+                                   t) :
                                   'label_declaration))));
                          ([ Gram.Stoken
                               (((function | QUOTATION _ -> true | _ -> false),
@@ -4855,7 +5143,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctyp;" n s) :
+                                       (mk_anti ~c: "ctyp;" n s)) :
                                       'label_declaration)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -4868,7 +5156,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" as n)), s) ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'label_declaration)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4900,7 +5189,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (j : 'ident) _ (i : 'a_UIDENT)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.IdAcc (_loc, Ast.IdUid (_loc, i), j) :
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, i)), j) :
                                   'ident))));
                          ([ Gram.Stoken
                               (((function
@@ -4917,8 +5206,8 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "id" | "anti" | "list" as n)), s)
                                     ->
                                     (Ast.IdAcc (_loc,
-                                       Ast.IdAnt (_loc,
-                                         mk_anti ~c: "ident" n s),
+                                       (Ast.IdAnt (_loc,
+                                          (mk_anti ~c: "ident" n s))),
                                        i) :
                                       'ident)
                                 | _ -> assert false)));
@@ -4948,7 +5237,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "id" | "anti" | "list" as n)), s)
                                     ->
                                     (Ast.IdAnt (_loc,
-                                       mk_anti ~c: "ident" n s) :
+                                       (mk_anti ~c: "ident" n s)) :
                                       'ident)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -4969,7 +5258,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (l : 'module_longident) _ (m : 'a_UIDENT)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.IdAcc (_loc, Ast.IdUid (_loc, m), l) :
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, m)), l) :
                                   'module_longident))));
                          ([ Gram.Stoken
                               (((function
@@ -4985,7 +5274,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "id" | "anti" | "list" as n)), s)
                                     ->
                                     (Ast.IdAnt (_loc,
-                                       mk_anti ~c: "ident" n s) :
+                                       (mk_anti ~c: "ident" n s)) :
                                       'module_longident)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -5037,10 +5326,52 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "id" | "anti" | "list" as n)), s)
                                     ->
                                     (Ast.IdAnt (_loc,
-                                       mk_anti ~c: "ident" n s) :
+                                       (mk_anti ~c: "ident" n s)) :
                                       'module_longident_with_app)
                                 | _ -> assert false))) ]) ]))
                   ());
+             Gram.extend
+               (module_longident_dot_lparen :
+                 'module_longident_dot_lparen Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (a_UIDENT : 'a_UIDENT Gram.Entry.t));
+                            Gram.Skeyword "."; Gram.Skeyword "(" ],
+                          (Gram.Action.mk
+                             (fun _ _ (i : 'a_UIDENT) (_loc : Gram.Loc.t) ->
+                                (Ast.IdUid (_loc, i) :
+                                  'module_longident_dot_lparen))));
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (a_UIDENT : 'a_UIDENT Gram.Entry.t));
+                            Gram.Skeyword "."; Gram.Sself ],
+                          (Gram.Action.mk
+                             (fun (l : 'module_longident_dot_lparen) _
+                                (m : 'a_UIDENT) (_loc : Gram.Loc.t) ->
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, m)), l) :
+                                  'module_longident_dot_lparen))));
+                         ([ Gram.Stoken
+                              (((function
+                                 | ANTIQUOT (("" | "id" | "anti" | "list"),
+                                     _) -> true
+                                 | _ -> false),
+                                "ANTIQUOT ((\"\" | \"id\" | \"anti\" | \"list\"), _)"));
+                            Gram.Skeyword "."; Gram.Skeyword "(" ],
+                          (Gram.Action.mk
+                             (fun _ _ (__camlp4_0 : Gram.Token.t)
+                                (_loc : Gram.Loc.t) ->
+                                match __camlp4_0 with
+                                | ANTIQUOT
+                                    ((("" | "id" | "anti" | "list" as n)), s)
+                                    ->
+                                    (Ast.IdAnt (_loc,
+                                       (mk_anti ~c: "ident" n s)) :
+                                      'module_longident_dot_lparen)
+                                | _ -> assert false))) ]) ]))
+                  ());
              Gram.extend (type_longident : 'type_longident Gram.Entry.t)
                ((fun () ->
                    (None,
@@ -5087,7 +5418,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "id" | "anti" | "list" as n)), s)
                                     ->
                                     (Ast.IdAnt (_loc,
-                                       mk_anti ~c: "ident" n s) :
+                                       (mk_anti ~c: "ident" n s)) :
                                       'type_longident)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -5108,7 +5439,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (l : 'label_longident) _ (m : 'a_UIDENT)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.IdAcc (_loc, Ast.IdUid (_loc, m), l) :
+                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, m)), l) :
                                   'label_longident))));
                          ([ Gram.Stoken
                               (((function
@@ -5124,7 +5455,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "id" | "anti" | "list" as n)), s)
                                     ->
                                     (Ast.IdAnt (_loc,
-                                       mk_anti ~c: "ident" n s) :
+                                       (mk_anti ~c: "ident" n s)) :
                                       'label_longident)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -5208,7 +5539,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "cdcl" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.CeAnt (_loc,
-                                       mk_anti ~c: "class_expr" n s) :
+                                       (mk_anti ~c: "class_expr" n s)) :
                                       'class_declaration)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ],
@@ -5273,7 +5604,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun ((i, ot) : 'class_name_and_param)
                                 (mv : 'opt_virtual) (_loc : Gram.Loc.t) ->
-                                (Ast.CtCon (_loc, mv, Ast.IdLid (_loc, i),
+                                (Ast.CtCon (_loc, mv, (Ast.IdLid (_loc, i)),
                                    ot) :
                                   'class_info_for_class_type)))) ]) ]))
                   ());
@@ -5293,7 +5624,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun ((i, ot) : 'class_name_and_param)
                                 (mv : 'opt_virtual) (_loc : Gram.Loc.t) ->
-                                (Ast.CeCon (_loc, mv, Ast.IdLid (_loc, i),
+                                (Ast.CeCon (_loc, mv, (Ast.IdLid (_loc, i)),
                                    ot) :
                                   'class_info_for_class_expr)))) ]) ]))
                   ());
@@ -5346,7 +5677,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctyp," n s) :
+                                       (mk_anti ~c: "ctyp," n s)) :
                                       'comma_type_parameter)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ],
@@ -5394,7 +5725,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctyp," n s) :
+                                       (mk_anti ~c: "ctyp," n s)) :
                                       'comma_ctyp)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ],
@@ -5456,7 +5787,7 @@ Very old (no more supported) syntax:\n\
                       ((Some "apply"), (Some Camlp4.Sig.Grammar.NonA),
                        [ ([ Gram.Sself;
                             Gram.Snterml
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                              ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                               "label") ],
                           (Gram.Action.mk
                              (fun (e : 'expr) (ce : 'class_expr)
@@ -5523,7 +5854,7 @@ Very old (no more supported) syntax:\n\
                                 | ANTIQUOT ((("" | "cexp" | "anti" as n)), s)
                                     ->
                                     (Ast.CeAnt (_loc,
-                                       mk_anti ~c: "class_expr" n s) :
+                                       (mk_anti ~c: "class_expr" n s)) :
                                       'class_expr)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -5540,8 +5871,8 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (ci : 'class_longident) (_loc : Gram.Loc.t)
                                 ->
-                                (Ast.CeCon (_loc, Ast.BFalse, ci,
-                                   Ast.TyNil _loc) :
+                                (Ast.CeCon (_loc, Ast.ViNil, ci,
+                                   (Ast.TyNil _loc)) :
                                   'class_longident_and_param))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -5556,7 +5887,7 @@ Very old (no more supported) syntax:\n\
                              (fun _ (t : 'comma_ctyp) _
                                 (ci : 'class_longident) (_loc : Gram.Loc.t)
                                 ->
-                                (Ast.CeCon (_loc, Ast.BFalse, ci, t) :
+                                (Ast.CeCon (_loc, Ast.ViNil, ci, t) :
                                   'class_longident_and_param)))) ]) ]))
                   ());
              Gram.extend (class_structure : 'class_structure Gram.Entry.t)
@@ -5575,9 +5906,9 @@ Very old (no more supported) syntax:\n\
                                     (Gram.Action.mk
                                        (fun _ (cst : 'class_str_item)
                                           (_loc : Gram.Loc.t) ->
-                                          (cst : 'e__3)))) ]) ],
+                                          (cst : 'e__10)))) ]) ],
                           (Gram.Action.mk
-                             (fun (l : 'e__3 list) (_loc : Gram.Loc.t) ->
+                             (fun (l : 'e__10 list) (_loc : Gram.Loc.t) ->
                                 (Ast.crSem_of_list l : 'class_structure))));
                          ([ Gram.Stoken
                               (((function
@@ -5597,8 +5928,8 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "cst" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.CrSem (_loc,
-                                       Ast.CrAnt (_loc,
-                                         mk_anti ~c: "class_str_item" n s),
+                                       (Ast.CrAnt (_loc,
+                                          (mk_anti ~c: "class_str_item" n s))),
                                        cst) :
                                       'class_structure)
                                 | _ -> assert false)));
@@ -5616,7 +5947,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "cst" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.CrAnt (_loc,
-                                       mk_anti ~c: "class_str_item" n s) :
+                                       (mk_anti ~c: "class_str_item" n s)) :
                                       'class_structure)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -5672,41 +6003,59 @@ Very old (no more supported) syntax:\n\
                              (fun (t2 : 'ctyp) _ (t1 : 'ctyp) _
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.CrCtr (_loc, t1, t2) : 'class_str_item))));
-                         ([ Gram.Skeyword "method";
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (method_opt_override :
+                                   'method_opt_override Gram.Entry.t));
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (opt_private : 'opt_private Gram.Entry.t));
+                            Gram.Skeyword "virtual";
                             Gram.Snterm
                               (Gram.Entry.obj (label : 'label Gram.Entry.t));
+                            Gram.Skeyword ":";
                             Gram.Snterm
                               (Gram.Entry.obj
-                                 (opt_polyt : 'opt_polyt Gram.Entry.t));
-                            Gram.Snterm
-                              (Gram.Entry.obj
-                                 (fun_binding : 'fun_binding Gram.Entry.t)) ],
+                                 (poly_type : 'poly_type Gram.Entry.t)) ],
                           (Gram.Action.mk
-                             (fun (e : 'fun_binding) (topt : 'opt_polyt)
-                                (l : 'label) (pf : 'opt_private) _
-                                (_loc : Gram.Loc.t) ->
-                                (Ast.CrMth (_loc, l, pf, e, topt) :
+                             (fun (t : 'poly_type) _ (l : 'label) _
+                                (pf : 'opt_private)
+                                (o : 'method_opt_override)
+                                (_loc : Gram.Loc.t) ->
+                                (if o <> Ast.OvNil
+                                 then
+                                   raise
+                                     (Stream.Error
+                                        "override (!) is incompatible with virtual")
+                                 else Ast.CrVir (_loc, l, pf, t) :
                                   'class_str_item))));
-                         ([ Gram.Skeyword "method";
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (method_opt_override :
+                                   'method_opt_override Gram.Entry.t));
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (opt_private : 'opt_private Gram.Entry.t));
-                            Gram.Skeyword "virtual";
                             Gram.Snterm
                               (Gram.Entry.obj (label : 'label Gram.Entry.t));
-                            Gram.Skeyword ":";
                             Gram.Snterm
                               (Gram.Entry.obj
-                                 (poly_type : 'poly_type Gram.Entry.t)) ],
+                                 (opt_polyt : 'opt_polyt Gram.Entry.t));
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (fun_binding : 'fun_binding Gram.Entry.t)) ],
                           (Gram.Action.mk
-                             (fun (t : 'poly_type) _ (l : 'label) _
-                                (pf : 'opt_private) _ (_loc : Gram.Loc.t) ->
-                                (Ast.CrVir (_loc, l, pf, t) :
+                             (fun (e : 'fun_binding) (topt : 'opt_polyt)
+                                (l : 'label) (pf : 'opt_private)
+                                (o : 'method_opt_override)
+                                (_loc : Gram.Loc.t) ->
+                                (Ast.CrMth (_loc, l, o, pf, e, topt) :
                                   'class_str_item))));
-                         ([ Gram.Skeyword "method"; Gram.Skeyword "virtual";
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (method_opt_override :
+                                   'method_opt_override Gram.Entry.t));
+                            Gram.Skeyword "virtual";
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (opt_private : 'opt_private Gram.Entry.t));
@@ -5718,13 +6067,20 @@ Very old (no more supported) syntax:\n\
                                  (poly_type : 'poly_type Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (t : 'poly_type) _ (l : 'label)
-                                (pf : 'opt_private) _ _ (_loc : Gram.Loc.t)
-                                ->
-                                (Ast.CrVir (_loc, l, pf, t) :
+                                (pf : 'opt_private) _
+                                (o : 'method_opt_override)
+                                (_loc : Gram.Loc.t) ->
+                                (if o <> Ast.OvNil
+                                 then
+                                   raise
+                                     (Stream.Error
+                                        "override (!) is incompatible with virtual")
+                                 else Ast.CrVir (_loc, l, pf, t) :
                                   'class_str_item))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
-                                 (value_val : 'value_val Gram.Entry.t));
+                                 (value_val_opt_override :
+                                   'value_val_opt_override Gram.Entry.t));
                             Gram.Skeyword "virtual";
                             Gram.Snterm
                               (Gram.Entry.obj
@@ -5737,13 +6093,20 @@ Very old (no more supported) syntax:\n\
                                  (poly_type : 'poly_type Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (t : 'poly_type) _ (l : 'label)
-                                (mf : 'opt_mutable) _ _ (_loc : Gram.Loc.t)
-                                ->
-                                (Ast.CrVvr (_loc, l, mf, t) :
+                                (mf : 'opt_mutable) _
+                                (o : 'value_val_opt_override)
+                                (_loc : Gram.Loc.t) ->
+                                (if o <> Ast.OvNil
+                                 then
+                                   raise
+                                     (Stream.Error
+                                        "override (!) is incompatible with virtual")
+                                 else Ast.CrVvr (_loc, l, mf, t) :
                                   'class_str_item))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
-                                 (value_val : 'value_val Gram.Entry.t));
+                                 (value_val_opt_override :
+                                   'value_val_opt_override Gram.Entry.t));
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (opt_mutable : 'opt_mutable Gram.Entry.t));
@@ -5756,12 +6119,20 @@ Very old (no more supported) syntax:\n\
                                  (poly_type : 'poly_type Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (t : 'poly_type) _ (l : 'label) _
-                                (mf : 'opt_mutable) _ (_loc : Gram.Loc.t) ->
-                                (Ast.CrVvr (_loc, l, mf, t) :
+                                (mf : 'opt_mutable)
+                                (o : 'value_val_opt_override)
+                                (_loc : Gram.Loc.t) ->
+                                (if o <> Ast.OvNil
+                                 then
+                                   raise
+                                     (Stream.Error
+                                        "override (!) is incompatible with virtual")
+                                 else Ast.CrVvr (_loc, l, mf, t) :
                                   'class_str_item))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
-                                 (value_val : 'value_val Gram.Entry.t));
+                                 (value_val_opt_override :
+                                   'value_val_opt_override Gram.Entry.t));
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (opt_mutable : 'opt_mutable Gram.Entry.t));
@@ -5773,10 +6144,15 @@ Very old (no more supported) syntax:\n\
                                    'cvalue_binding Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (e : 'cvalue_binding) (lab : 'label)
-                                (mf : 'opt_mutable) _ (_loc : Gram.Loc.t) ->
-                                (Ast.CrVal (_loc, lab, mf, e) :
+                                (mf : 'opt_mutable)
+                                (o : 'value_val_opt_override)
+                                (_loc : Gram.Loc.t) ->
+                                (Ast.CrVal (_loc, lab, o, mf, e) :
                                   'class_str_item))));
                          ([ Gram.Skeyword "inherit";
+                            Gram.Snterm
+                              (Gram.Entry.obj
+                                 (opt_override : 'opt_override Gram.Entry.t));
                             Gram.Snterm
                               (Gram.Entry.obj
                                  (class_expr : 'class_expr Gram.Entry.t));
@@ -5785,9 +6161,10 @@ Very old (no more supported) syntax:\n\
                                  (opt_as_lident :
                                    'opt_as_lident Gram.Entry.t)) ],
                           (Gram.Action.mk
-                             (fun (pb : 'opt_as_lident) (ce : 'class_expr) _
-                                (_loc : Gram.Loc.t) ->
-                                (Ast.CrInh (_loc, ce, pb) : 'class_str_item))));
+                             (fun (pb : 'opt_as_lident) (ce : 'class_expr)
+                                (o : 'opt_override) _ (_loc : Gram.Loc.t) ->
+                                (Ast.CrInh (_loc, o, ce, pb) :
+                                  'class_str_item))));
                          ([ Gram.Stoken
                               (((function | QUOTATION _ -> true | _ -> false),
                                 "QUOTATION _")) ],
@@ -5802,21 +6179,91 @@ Very old (no more supported) syntax:\n\
                                 | _ -> assert false)));
                          ([ Gram.Stoken
                               (((function
-                                 | ANTIQUOT (("" | "cst" | "anti" | "list"),
-                                     _) -> true
+                                 | ANTIQUOT (("" | "cst" | "anti" | "list"),
+                                     _) -> true
+                                 | _ -> false),
+                                "ANTIQUOT ((\"\" | \"cst\" | \"anti\" | \"list\"), _)")) ],
+                          (Gram.Action.mk
+                             (fun (__camlp4_0 : Gram.Token.t)
+                                (_loc : Gram.Loc.t) ->
+                                match __camlp4_0 with
+                                | ANTIQUOT
+                                    ((("" | "cst" | "anti" | "list" as n)),
+                                    s) ->
+                                    (Ast.CrAnt (_loc,
+                                       (mk_anti ~c: "class_str_item" n s)) :
+                                      'class_str_item)
+                                | _ -> assert false))) ]) ]))
+                  ());
+             Gram.extend
+               (method_opt_override : 'method_opt_override Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Skeyword "method" ],
+                          (Gram.Action.mk
+                             (fun _ (_loc : Gram.Loc.t) ->
+                                (Ast.OvNil : 'method_opt_override))));
+                         ([ Gram.Skeyword "method";
+                            Gram.Stoken
+                              (((function
+                                 | ANTIQUOT (("!" | "override" | "anti"), _)
+                                     -> true
+                                 | _ -> false),
+                                "ANTIQUOT ((\"!\" | \"override\" | \"anti\"), _)")) ],
+                          (Gram.Action.mk
+                             (fun (__camlp4_0 : Gram.Token.t) _
+                                (_loc : Gram.Loc.t) ->
+                                match __camlp4_0 with
+                                | ANTIQUOT
+                                    ((("!" | "override" | "anti" as n)), s)
+                                    ->
+                                    (Ast.OvAnt (mk_anti n s) :
+                                      'method_opt_override)
+                                | _ -> assert false)));
+                         ([ Gram.Skeyword "method"; Gram.Skeyword "!" ],
+                          (Gram.Action.mk
+                             (fun _ _ (_loc : Gram.Loc.t) ->
+                                (Ast.OvOverride : 'method_opt_override)))) ]) ]))
+                  ());
+             Gram.extend
+               (value_val_opt_override :
+                 'value_val_opt_override Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (value_val : 'value_val Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun _ (_loc : Gram.Loc.t) ->
+                                (Ast.OvNil : 'value_val_opt_override))));
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (value_val : 'value_val Gram.Entry.t));
+                            Gram.Stoken
+                              (((function
+                                 | ANTIQUOT (("!" | "override" | "anti"), _)
+                                     -> true
                                  | _ -> false),
-                                "ANTIQUOT ((\"\" | \"cst\" | \"anti\" | \"list\"), _)")) ],
+                                "ANTIQUOT ((\"!\" | \"override\" | \"anti\"), _)")) ],
                           (Gram.Action.mk
-                             (fun (__camlp4_0 : Gram.Token.t)
+                             (fun (__camlp4_0 : Gram.Token.t) _
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT
-                                    ((("" | "cst" | "anti" | "list" as n)),
-                                    s) ->
-                                    (Ast.CrAnt (_loc,
-                                       mk_anti ~c: "class_str_item" n s) :
-                                      'class_str_item)
-                                | _ -> assert false))) ]) ]))
+                                    ((("!" | "override" | "anti" as n)), s)
+                                    ->
+                                    (Ast.OvAnt (mk_anti n s) :
+                                      'value_val_opt_override)
+                                | _ -> assert false)));
+                         ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (value_val : 'value_val Gram.Entry.t));
+                            Gram.Skeyword "!" ],
+                          (Gram.Action.mk
+                             (fun _ _ (_loc : Gram.Loc.t) ->
+                                (Ast.OvOverride : 'value_val_opt_override)))) ]) ]))
                   ());
              Gram.extend (opt_as_lident : 'opt_as_lident Gram.Entry.t)
                ((fun () ->
@@ -5863,11 +6310,12 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e : 'expr) _ (t : 'ctyp) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.ExCoe (_loc, e, Ast.TyNil _loc, t) :
+                                (Ast.ExCoe (_loc, e, (Ast.TyNil _loc), t) :
                                   'cvalue_binding))));
                          ([ Gram.Skeyword ":";
                             Gram.Snterm
-                              (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t));
+                              (Gram.Entry.obj
+                                 (poly_type : 'poly_type Gram.Entry.t));
                             Gram.Skeyword ":>";
                             Gram.Snterm
                               (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t));
@@ -5875,18 +6323,24 @@ Very old (no more supported) syntax:\n\
                             Gram.Snterm
                               (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ],
                           (Gram.Action.mk
-                             (fun (e : 'expr) _ (t2 : 'ctyp) _ (t : 'ctyp) _
-                                (_loc : Gram.Loc.t) ->
-                                (Ast.ExCoe (_loc, e, t, t2) :
+                             (fun (e : 'expr) _ (t2 : 'ctyp) _
+                                (t : 'poly_type) _ (_loc : Gram.Loc.t) ->
+                                (match t with
+                                 | Ast.TyPol (_, _, _) ->
+                                     raise
+                                       (Stream.Error
+                                          "unexpected polytype here")
+                                 | _ -> Ast.ExCoe (_loc, e, t, t2) :
                                   'cvalue_binding))));
                          ([ Gram.Skeyword ":";
                             Gram.Snterm
-                              (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t));
+                              (Gram.Entry.obj
+                                 (poly_type : 'poly_type Gram.Entry.t));
                             Gram.Skeyword "=";
                             Gram.Snterm
                               (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ],
                           (Gram.Action.mk
-                             (fun (e : 'expr) _ (t : 'ctyp) _
+                             (fun (e : 'expr) _ (t : 'poly_type) _
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExTyc (_loc, e, t) : 'cvalue_binding))));
                          ([ Gram.Skeyword "=";
@@ -5959,7 +6413,7 @@ Very old (no more supported) syntax:\n\
                                 | ANTIQUOT ((("" | "ctyp" | "anti" as n)), s)
                                     ->
                                     (Ast.CtAnt (_loc,
-                                       mk_anti ~c: "class_type" n s) :
+                                       (mk_anti ~c: "class_type" n s)) :
                                       'class_type)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -5976,8 +6430,8 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (i : 'class_type_longident)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.CtCon (_loc, Ast.BFalse, i,
-                                   Ast.TyNil _loc) :
+                                (Ast.CtCon (_loc, Ast.ViNil, i,
+                                   (Ast.TyNil _loc)) :
                                   'class_type_longident_and_param))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -5992,7 +6446,7 @@ Very old (no more supported) syntax:\n\
                              (fun _ (t : 'comma_ctyp) _
                                 (i : 'class_type_longident)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.CtCon (_loc, Ast.BFalse, i, t) :
+                                (Ast.CtCon (_loc, Ast.ViNil, i, t) :
                                   'class_type_longident_and_param)))) ]) ]))
                   ());
              Gram.extend (class_type_plus : 'class_type_plus Gram.Entry.t)
@@ -6047,9 +6501,9 @@ Very old (no more supported) syntax:\n\
                                     (Gram.Action.mk
                                        (fun _ (csg : 'class_sig_item)
                                           (_loc : Gram.Loc.t) ->
-                                          (csg : 'e__4)))) ]) ],
+                                          (csg : 'e__11)))) ]) ],
                           (Gram.Action.mk
-                             (fun (l : 'e__4 list) (_loc : Gram.Loc.t) ->
+                             (fun (l : 'e__11 list) (_loc : Gram.Loc.t) ->
                                 (Ast.cgSem_of_list l : 'class_signature))));
                          ([ Gram.Stoken
                               (((function
@@ -6069,8 +6523,8 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "csg" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.CgSem (_loc,
-                                       Ast.CgAnt (_loc,
-                                         mk_anti ~c: "class_sig_item" n s),
+                                       (Ast.CgAnt (_loc,
+                                          (mk_anti ~c: "class_sig_item" n s))),
                                        csg) :
                                       'class_signature)
                                 | _ -> assert false)));
@@ -6088,7 +6542,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "csg" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.CgAnt (_loc,
-                                       mk_anti ~c: "class_sig_item" n s) :
+                                       (mk_anti ~c: "class_sig_item" n s)) :
                                       'class_signature)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -6209,7 +6663,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "csg" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.CgAnt (_loc,
-                                       mk_anti ~c: "class_sig_item" n s) :
+                                       (mk_anti ~c: "class_sig_item" n s)) :
                                       'class_sig_item)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -6272,7 +6726,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "typ" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.CtAnt (_loc,
-                                       mk_anti ~c: "class_type" n s) :
+                                       (mk_anti ~c: "class_type" n s)) :
                                       'class_description)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ],
@@ -6329,7 +6783,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "typ" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.CtAnt (_loc,
-                                       mk_anti ~c: "class_type" n s) :
+                                       (mk_anti ~c: "class_type" n s)) :
                                       'class_type_declaration)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ],
@@ -6378,7 +6832,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (e : 'expr) _ (l : 'label)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.RbEq (_loc, Ast.IdLid (_loc, l), e) :
+                                (Ast.RbEq (_loc, (Ast.IdLid (_loc, l)), e) :
                                   'field_expr))));
                          ([ Gram.Stoken
                               (((function
@@ -6391,7 +6845,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.RbAnt (_loc,
-                                       mk_anti ~c: "rec_binding" n s) :
+                                       (mk_anti ~c: "rec_binding" n s)) :
                                       'field_expr)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -6406,7 +6860,7 @@ Very old (no more supported) syntax:\n\
                                 | ANTIQUOT ((("" | "bi" | "anti" as n)), s)
                                     ->
                                     (Ast.RbAnt (_loc,
-                                       mk_anti ~c: "rec_binding" n s) :
+                                       (mk_anti ~c: "rec_binding" n s)) :
                                       'field_expr)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -6457,7 +6911,8 @@ Very old (no more supported) syntax:\n\
                              (fun (t : 'poly_type) _ (lab : 'a_LIDENT)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.TyCol (_loc,
-                                   Ast.TyId (_loc, Ast.IdLid (_loc, lab)), t) :
+                                   (Ast.TyId (_loc, (Ast.IdLid (_loc, lab)))),
+                                   t) :
                                   'meth_decl))));
                          ([ Gram.Stoken
                               (((function | QUOTATION _ -> true | _ -> false),
@@ -6482,7 +6937,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctyp;" n s) :
+                                       (mk_anti ~c: "ctyp;" n s)) :
                                       'meth_decl)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -6495,7 +6950,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" as n)), s) ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'meth_decl)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -6508,7 +6964,7 @@ Very old (no more supported) syntax:\n\
                                  (opt_dot_dot : 'opt_dot_dot Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (v : 'opt_dot_dot) (_loc : Gram.Loc.t) ->
-                                (Ast.TyObj (_loc, Ast.TyNil _loc, v) :
+                                (Ast.TyObj (_loc, (Ast.TyNil _loc), v) :
                                   'opt_meth_list))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -6527,6 +6983,17 @@ Very old (no more supported) syntax:\n\
                              (fun (t : 'ctyp) (_loc : Gram.Loc.t) ->
                                 (t : 'poly_type)))) ]) ]))
                   ());
+             Gram.extend (package_type : 'package_type Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (module_type : 'module_type Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (p : 'module_type) (_loc : Gram.Loc.t) ->
+                                (p : 'package_type)))) ]) ]))
+                  ());
              Gram.extend (typevars : 'typevars Gram.Entry.t)
                ((fun () ->
                    (None,
@@ -6560,7 +7027,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" as n)), s) ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'typevars)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Sself ],
@@ -6589,7 +7057,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (t : 'amp_ctyp) _ (i : 'a_ident) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.TyOf (_loc, Ast.TyVrn (_loc, i), t) :
+                                (Ast.TyOf (_loc, (Ast.TyVrn (_loc, i)), t) :
                                   'row_field))));
                          ([ Gram.Skeyword "`";
                             Gram.Snterm
@@ -6602,7 +7070,7 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (t : 'amp_ctyp) _ _ (i : 'a_ident) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.TyOfAmp (_loc, Ast.TyVrn (_loc, i), t) :
+                                (Ast.TyOfAmp (_loc, (Ast.TyVrn (_loc, i)), t) :
                                   'row_field))));
                          ([ Gram.Skeyword "`";
                             Gram.Snterm
@@ -6627,7 +7095,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctyp|" n s) :
+                                       (mk_anti ~c: "ctyp|" n s)) :
                                       'row_field)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -6640,7 +7108,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" as n)), s) ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'row_field)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -6664,7 +7133,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("list" as n)), s) ->
                                     (Ast.TyAnt (_loc,
-                                       mk_anti ~c: "ctyp&" n s) :
+                                       (mk_anti ~c: "ctyp&" n s)) :
                                       'amp_ctyp)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword "&"; Gram.Sself ],
@@ -6699,7 +7168,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "typ" as n)), s) ->
-                                    (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) :
+                                    (Ast.TyAnt (_loc,
+                                       (mk_anti ~c: "ctyp" n s)) :
                                       'name_tags)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -6774,8 +7244,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "lid" as n)), i) ->
-                                    (Ast.PaOlb (_loc, mk_anti n i,
-                                       Ast.PaNil _loc) :
+                                    (Ast.PaOlb (_loc, (mk_anti n i),
+                                       (Ast.PaNil _loc)) :
                                       'ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "?";
@@ -6787,7 +7257,7 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | LIDENT i ->
-                                    (Ast.PaOlb (_loc, i, Ast.PaNil _loc) :
+                                    (Ast.PaOlb (_loc, i, (Ast.PaNil _loc)) :
                                       'ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "?";
@@ -6839,7 +7309,7 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | LIDENT i ->
-                                    (Ast.PaLab (_loc, i, Ast.PaNil _loc) :
+                                    (Ast.PaLab (_loc, i, (Ast.PaNil _loc)) :
                                       'ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "~";
@@ -6853,8 +7323,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "lid" as n)), i) ->
-                                    (Ast.PaLab (_loc, mk_anti n i,
-                                       Ast.PaNil _loc) :
+                                    (Ast.PaLab (_loc, (mk_anti n i),
+                                       (Ast.PaNil _loc)) :
                                       'ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "~";
@@ -6869,7 +7339,7 @@ Very old (no more supported) syntax:\n\
                                 _ (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" | "lid" as n)), i) ->
-                                    (Ast.PaLab (_loc, mk_anti n i, p) :
+                                    (Ast.PaLab (_loc, (mk_anti n i), p) :
                                       'ipatt)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -6909,25 +7379,25 @@ Very old (no more supported) syntax:\n\
                     [ (None, None,
                        [ ([ Gram.Stoken
                               (((function
-                                 | ANTIQUOT ("to", _) -> true
+                                 | ANTIQUOT (("to" | "anti"), _) -> true
                                  | _ -> false),
-                                "ANTIQUOT (\"to\", _)")) ],
+                                "ANTIQUOT ((\"to\" | \"anti\"), _)")) ],
                           (Gram.Action.mk
                              (fun (__camlp4_0 : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
-                                | ANTIQUOT ((("to" as n)), s) ->
-                                    (Ast.BAnt (mk_anti n s) :
+                                | ANTIQUOT ((("to" | "anti" as n)), s) ->
+                                    (Ast.DiAnt (mk_anti n s) :
                                       'direction_flag)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "downto" ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
-                                (Ast.BFalse : 'direction_flag))));
+                                (Ast.DiDownto : 'direction_flag))));
                          ([ Gram.Skeyword "to" ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
-                                (Ast.BTrue : 'direction_flag)))) ]) ]))
+                                (Ast.DiTo : 'direction_flag)))) ]) ]))
                   ());
              Gram.extend (opt_private : 'opt_private Gram.Entry.t)
                ((fun () ->
@@ -6936,23 +7406,24 @@ Very old (no more supported) syntax:\n\
                        [ ([],
                           (Gram.Action.mk
                              (fun (_loc : Gram.Loc.t) ->
-                                (Ast.BFalse : 'opt_private))));
+                                (Ast.PrNil : 'opt_private))));
                          ([ Gram.Stoken
                               (((function
-                                 | ANTIQUOT ("private", _) -> true
+                                 | ANTIQUOT (("private" | "anti"), _) -> true
                                  | _ -> false),
-                                "ANTIQUOT (\"private\", _)")) ],
+                                "ANTIQUOT ((\"private\" | \"anti\"), _)")) ],
                           (Gram.Action.mk
                              (fun (__camlp4_0 : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
-                                | ANTIQUOT ((("private" as n)), s) ->
-                                    (Ast.BAnt (mk_anti n s) : 'opt_private)
+                                | ANTIQUOT ((("private" | "anti" as n)), s)
+                                    ->
+                                    (Ast.PrAnt (mk_anti n s) : 'opt_private)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "private" ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
-                                (Ast.BTrue : 'opt_private)))) ]) ]))
+                                (Ast.PrPrivate : 'opt_private)))) ]) ]))
                   ());
              Gram.extend (opt_mutable : 'opt_mutable Gram.Entry.t)
                ((fun () ->
@@ -6961,23 +7432,24 @@ Very old (no more supported) syntax:\n\
                        [ ([],
                           (Gram.Action.mk
                              (fun (_loc : Gram.Loc.t) ->
-                                (Ast.BFalse : 'opt_mutable))));
+                                (Ast.MuNil : 'opt_mutable))));
                          ([ Gram.Stoken
                               (((function
-                                 | ANTIQUOT ("mutable", _) -> true
+                                 | ANTIQUOT (("mutable" | "anti"), _) -> true
                                  | _ -> false),
-                                "ANTIQUOT (\"mutable\", _)")) ],
+                                "ANTIQUOT ((\"mutable\" | \"anti\"), _)")) ],
                           (Gram.Action.mk
                              (fun (__camlp4_0 : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
-                                | ANTIQUOT ((("mutable" as n)), s) ->
-                                    (Ast.BAnt (mk_anti n s) : 'opt_mutable)
+                                | ANTIQUOT ((("mutable" | "anti" as n)), s)
+                                    ->
+                                    (Ast.MuAnt (mk_anti n s) : 'opt_mutable)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "mutable" ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
-                                (Ast.BTrue : 'opt_mutable)))) ]) ]))
+                                (Ast.MuMutable : 'opt_mutable)))) ]) ]))
                   ());
              Gram.extend (opt_virtual : 'opt_virtual Gram.Entry.t)
                ((fun () ->
@@ -6986,23 +7458,24 @@ Very old (no more supported) syntax:\n\
                        [ ([],
                           (Gram.Action.mk
                              (fun (_loc : Gram.Loc.t) ->
-                                (Ast.BFalse : 'opt_virtual))));
+                                (Ast.ViNil : 'opt_virtual))));
                          ([ Gram.Stoken
                               (((function
-                                 | ANTIQUOT ("virtual", _) -> true
+                                 | ANTIQUOT (("virtual" | "anti"), _) -> true
                                  | _ -> false),
-                                "ANTIQUOT (\"virtual\", _)")) ],
+                                "ANTIQUOT ((\"virtual\" | \"anti\"), _)")) ],
                           (Gram.Action.mk
                              (fun (__camlp4_0 : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
-                                | ANTIQUOT ((("virtual" as n)), s) ->
-                                    (Ast.BAnt (mk_anti n s) : 'opt_virtual)
+                                | ANTIQUOT ((("virtual" | "anti" as n)), s)
+                                    ->
+                                    (Ast.ViAnt (mk_anti n s) : 'opt_virtual)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "virtual" ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
-                                (Ast.BTrue : 'opt_virtual)))) ]) ]))
+                                (Ast.ViVirtual : 'opt_virtual)))) ]) ]))
                   ());
              Gram.extend (opt_dot_dot : 'opt_dot_dot Gram.Entry.t)
                ((fun () ->
@@ -7011,23 +7484,23 @@ Very old (no more supported) syntax:\n\
                        [ ([],
                           (Gram.Action.mk
                              (fun (_loc : Gram.Loc.t) ->
-                                (Ast.BFalse : 'opt_dot_dot))));
+                                (Ast.RvNil : 'opt_dot_dot))));
                          ([ Gram.Stoken
                               (((function
-                                 | ANTIQUOT ("..", _) -> true
+                                 | ANTIQUOT ((".." | "anti"), _) -> true
                                  | _ -> false),
-                                "ANTIQUOT (\"..\", _)")) ],
+                                "ANTIQUOT ((\"..\" | \"anti\"), _)")) ],
                           (Gram.Action.mk
                              (fun (__camlp4_0 : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
-                                | ANTIQUOT (((".." as n)), s) ->
-                                    (Ast.BAnt (mk_anti n s) : 'opt_dot_dot)
+                                | ANTIQUOT (((".." | "anti" as n)), s) ->
+                                    (Ast.RvAnt (mk_anti n s) : 'opt_dot_dot)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword ".." ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
-                                (Ast.BTrue : 'opt_dot_dot)))) ]) ]))
+                                (Ast.RvRowVar : 'opt_dot_dot)))) ]) ]))
                   ());
              Gram.extend (opt_rec : 'opt_rec Gram.Entry.t)
                ((fun () ->
@@ -7036,23 +7509,51 @@ Very old (no more supported) syntax:\n\
                        [ ([],
                           (Gram.Action.mk
                              (fun (_loc : Gram.Loc.t) ->
-                                (Ast.BFalse : 'opt_rec))));
+                                (Ast.ReNil : 'opt_rec))));
                          ([ Gram.Stoken
                               (((function
-                                 | ANTIQUOT ("rec", _) -> true
+                                 | ANTIQUOT (("rec" | "anti"), _) -> true
                                  | _ -> false),
-                                "ANTIQUOT (\"rec\", _)")) ],
+                                "ANTIQUOT ((\"rec\" | \"anti\"), _)")) ],
                           (Gram.Action.mk
                              (fun (__camlp4_0 : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
-                                | ANTIQUOT ((("rec" as n)), s) ->
-                                    (Ast.BAnt (mk_anti n s) : 'opt_rec)
+                                | ANTIQUOT ((("rec" | "anti" as n)), s) ->
+                                    (Ast.ReAnt (mk_anti n s) : 'opt_rec)
                                 | _ -> assert false)));
                          ([ Gram.Skeyword "rec" ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
-                                (Ast.BTrue : 'opt_rec)))) ]) ]))
+                                (Ast.ReRecursive : 'opt_rec)))) ]) ]))
+                  ());
+             Gram.extend (opt_override : 'opt_override Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([],
+                          (Gram.Action.mk
+                             (fun (_loc : Gram.Loc.t) ->
+                                (Ast.OvNil : 'opt_override))));
+                         ([ Gram.Stoken
+                              (((function
+                                 | ANTIQUOT (("!" | "override" | "anti"), _)
+                                     -> true
+                                 | _ -> false),
+                                "ANTIQUOT ((\"!\" | \"override\" | \"anti\"), _)")) ],
+                          (Gram.Action.mk
+                             (fun (__camlp4_0 : Gram.Token.t)
+                                (_loc : Gram.Loc.t) ->
+                                match __camlp4_0 with
+                                | ANTIQUOT
+                                    ((("!" | "override" | "anti" as n)), s)
+                                    ->
+                                    (Ast.OvAnt (mk_anti n s) : 'opt_override)
+                                | _ -> assert false)));
+                         ([ Gram.Skeyword "!" ],
+                          (Gram.Action.mk
+                             (fun _ (_loc : Gram.Loc.t) ->
+                                (Ast.OvOverride : 'opt_override)))) ]) ]))
                   ());
              Gram.extend (opt_expr : 'opt_expr Gram.Entry.t)
                ((fun () ->
@@ -7120,9 +7621,10 @@ Very old (no more supported) syntax:\n\
                                            (semi : 'semi Gram.Entry.t)) ],
                                     (Gram.Action.mk
                                        (fun _ (sg : 'sig_item)
-                                          (_loc : Gram.Loc.t) -> (sg : 'e__5)))) ]) ],
+                                          (_loc : Gram.Loc.t) ->
+                                          (sg : 'e__12)))) ]) ],
                           (Gram.Action.mk
-                             (fun (l : 'e__5 list) (_loc : Gram.Loc.t) ->
+                             (fun (l : 'e__12 list) (_loc : Gram.Loc.t) ->
                                 (Ast.sgSem_of_list l : 'sig_items))));
                          ([ Gram.Stoken
                               (((function
@@ -7142,8 +7644,8 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "sigi" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.SgSem (_loc,
-                                       Ast.SgAnt (_loc,
-                                         mk_anti n ~c: "sig_item" s),
+                                       (Ast.SgAnt (_loc,
+                                          (mk_anti n ~c: "sig_item" s))),
                                        sg) :
                                       'sig_items)
                                 | _ -> assert false)));
@@ -7161,7 +7663,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "sigi" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.SgAnt (_loc,
-                                       mk_anti n ~c: "sig_item" s) :
+                                       (mk_anti n ~c: "sig_item" s)) :
                                       'sig_items)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -7217,9 +7719,10 @@ Very old (no more supported) syntax:\n\
                                            (semi : 'semi Gram.Entry.t)) ],
                                     (Gram.Action.mk
                                        (fun _ (st : 'str_item)
-                                          (_loc : Gram.Loc.t) -> (st : 'e__6)))) ]) ],
+                                          (_loc : Gram.Loc.t) ->
+                                          (st : 'e__13)))) ]) ],
                           (Gram.Action.mk
-                             (fun (l : 'e__6 list) (_loc : Gram.Loc.t) ->
+                             (fun (l : 'e__13 list) (_loc : Gram.Loc.t) ->
                                 (Ast.stSem_of_list l : 'str_items))));
                          ([ Gram.Stoken
                               (((function
@@ -7239,8 +7742,8 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "stri" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.StSem (_loc,
-                                       Ast.StAnt (_loc,
-                                         mk_anti n ~c: "str_item" s),
+                                       (Ast.StAnt (_loc,
+                                          (mk_anti n ~c: "str_item" s))),
                                        st) :
                                       'str_items)
                                 | _ -> assert false)));
@@ -7258,7 +7761,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "stri" | "anti" | "list" as n)),
                                     s) ->
                                     (Ast.StAnt (_loc,
-                                       mk_anti n ~c: "str_item" s) :
+                                       (mk_anti n ~c: "str_item" s)) :
                                       'str_items)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -7859,7 +8362,8 @@ Very old (no more supported) syntax:\n\
                              (fun (z : 'label_declaration_list) _
                                 (y : 'more_ctyp) _ (x : 'more_ctyp)
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.TySem (_loc, Ast.TyCol (_loc, x, y), z) :
+                                (Ast.TySem (_loc, (Ast.TyCol (_loc, x, y)),
+                                   z) :
                                   'ctyp_quot))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -7886,7 +8390,8 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun (z : 'row_field) _ (y : 'amp_ctyp) _ _
                                 (x : 'more_ctyp) (_loc : Gram.Loc.t) ->
-                                (Ast.TyOr (_loc, Ast.TyOfAmp (_loc, x, y), z) :
+                                (Ast.TyOr (_loc, (Ast.TyOfAmp (_loc, x, y)),
+                                   z) :
                                   'ctyp_quot))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -7916,7 +8421,7 @@ Very old (no more supported) syntax:\n\
                              (fun (z : 'constructor_declarations) _
                                 (y : 'constructor_arg_list) _
                                 (x : 'more_ctyp) (_loc : Gram.Loc.t) ->
-                                (Ast.TyOr (_loc, Ast.TyOf (_loc, x, y), z) :
+                                (Ast.TyOr (_loc, (Ast.TyOf (_loc, x, y)), z) :
                                   'ctyp_quot))));
                          ([ Gram.Snterm
                               (Gram.Entry.obj
@@ -8106,10 +8611,11 @@ Very old (no more supported) syntax:\n\
                              (fun (_loc : Gram.Loc.t) ->
                                 (Ast.McNil _loc : 'match_case_quot))));
                          ([ Gram.Slist0sep
-                              (Gram.Snterm
-                                 (Gram.Entry.obj
-                                    (match_case0 : 'match_case0 Gram.Entry.t)),
-                              Gram.Skeyword "|") ],
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj
+                                     (match_case0 :
+                                       'match_case0 Gram.Entry.t))),
+                              (Gram.Skeyword "|")) ],
                           (Gram.Action.mk
                              (fun (x : 'match_case0 list) (_loc : Gram.Loc.t)
                                 -> (Ast.mcOr_of_list x : 'match_case_quot)))) ]) ]))
@@ -8201,7 +8707,8 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" as n)), m) ->
-                                    (Ast.MbColEq (_loc, mk_anti n m, mt, me) :
+                                    (Ast.MbColEq (_loc, (mk_anti n m), mt,
+                                       me) :
                                       'module_binding_quot)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -8219,7 +8726,7 @@ Very old (no more supported) syntax:\n\
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" as n)), m) ->
-                                    (Ast.MbCol (_loc, mk_anti n m, mt) :
+                                    (Ast.MbCol (_loc, (mk_anti n m), mt) :
                                       'module_binding_quot)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -8233,7 +8740,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("" as n)), s) ->
                                     (Ast.MbAnt (_loc,
-                                       mk_anti ~c: "module_binding" n s) :
+                                       (mk_anti ~c: "module_binding" n s)) :
                                       'module_binding_quot)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -8250,7 +8757,7 @@ Very old (no more supported) syntax:\n\
                                     ((("module_binding" | "anti" as n)), s)
                                     ->
                                     (Ast.MbAnt (_loc,
-                                       mk_anti ~c: "module_binding" n s) :
+                                       (mk_anti ~c: "module_binding" n s)) :
                                       'module_binding_quot)
                                 | _ -> assert false)));
                          ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ],
@@ -8297,8 +8804,8 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "id" | "anti" | "list" as n)), s)
                                     ->
                                     (Ast.IdAcc (_loc,
-                                       Ast.IdAnt (_loc,
-                                         mk_anti ~c: "ident" n s),
+                                       (Ast.IdAnt (_loc,
+                                          (mk_anti ~c: "ident" n s))),
                                        i) :
                                       'ident_quot)
                                 | _ -> assert false)));
@@ -8328,7 +8835,7 @@ Very old (no more supported) syntax:\n\
                                     ((("" | "id" | "anti" | "list" as n)), s)
                                     ->
                                     (Ast.IdAnt (_loc,
-                                       mk_anti ~c: "ident" n s) :
+                                       (mk_anti ~c: "ident" n s)) :
                                       'ident_quot)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -8364,7 +8871,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("virtual" as n)), s) ->
                                     (let anti =
-                                       Ast.BAnt
+                                       Ast.ViAnt
                                          (mk_anti ~c: "class_expr" n s)
                                      in Ast.CeCon (_loc, anti, i, ot) :
                                       'class_expr_quot)
@@ -8377,8 +8884,8 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun ((i, ot) : 'class_name_and_param) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.CeCon (_loc, Ast.BTrue,
-                                   Ast.IdLid (_loc, i), ot) :
+                                (Ast.CeCon (_loc, Ast.ViVirtual,
+                                   (Ast.IdLid (_loc, i)), ot) :
                                   'class_expr_quot))));
                          ([ Gram.Sself; Gram.Skeyword "="; Gram.Sself ],
                           (Gram.Action.mk
@@ -8428,7 +8935,7 @@ Very old (no more supported) syntax:\n\
                                 match __camlp4_0 with
                                 | ANTIQUOT ((("virtual" as n)), s) ->
                                     (let anti =
-                                       Ast.BAnt
+                                       Ast.ViAnt
                                          (mk_anti ~c: "class_type" n s)
                                      in Ast.CtCon (_loc, anti, i, ot) :
                                       'class_type_quot)
@@ -8441,8 +8948,8 @@ Very old (no more supported) syntax:\n\
                           (Gram.Action.mk
                              (fun ((i, ot) : 'class_name_and_param) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.CtCon (_loc, Ast.BTrue,
-                                   Ast.IdLid (_loc, i), ot) :
+                                (Ast.CtCon (_loc, Ast.ViVirtual,
+                                   (Ast.IdLid (_loc, i)), ot) :
                                   'class_type_quot))));
                          ([ Gram.Sself; Gram.Skeyword ":"; Gram.Sself ],
                           (Gram.Action.mk
@@ -8539,6 +9046,90 @@ Very old (no more supported) syntax:\n\
                              (fun (x : 'with_constr) (_loc : Gram.Loc.t) ->
                                 (x : 'with_constr_quot)))) ]) ]))
                   ());
+             Gram.extend (rec_flag_quot : 'rec_flag_quot Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (opt_rec : 'opt_rec Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (x : 'opt_rec) (_loc : Gram.Loc.t) ->
+                                (x : 'rec_flag_quot)))) ]) ]))
+                  ());
+             Gram.extend
+               (direction_flag_quot : 'direction_flag_quot Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (direction_flag :
+                                   'direction_flag Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (x : 'direction_flag) (_loc : Gram.Loc.t)
+                                -> (x : 'direction_flag_quot)))) ]) ]))
+                  ());
+             Gram.extend
+               (mutable_flag_quot : 'mutable_flag_quot Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (opt_mutable : 'opt_mutable Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (x : 'opt_mutable) (_loc : Gram.Loc.t) ->
+                                (x : 'mutable_flag_quot)))) ]) ]))
+                  ());
+             Gram.extend
+               (private_flag_quot : 'private_flag_quot Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (opt_private : 'opt_private Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (x : 'opt_private) (_loc : Gram.Loc.t) ->
+                                (x : 'private_flag_quot)))) ]) ]))
+                  ());
+             Gram.extend
+               (virtual_flag_quot : 'virtual_flag_quot Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (opt_virtual : 'opt_virtual Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (x : 'opt_virtual) (_loc : Gram.Loc.t) ->
+                                (x : 'virtual_flag_quot)))) ]) ]))
+                  ());
+             Gram.extend
+               (row_var_flag_quot : 'row_var_flag_quot Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (opt_dot_dot : 'opt_dot_dot Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (x : 'opt_dot_dot) (_loc : Gram.Loc.t) ->
+                                (x : 'row_var_flag_quot)))) ]) ]))
+                  ());
+             Gram.extend
+               (override_flag_quot : 'override_flag_quot Gram.Entry.t)
+               ((fun () ->
+                   (None,
+                    [ (None, None,
+                       [ ([ Gram.Snterm
+                              (Gram.Entry.obj
+                                 (opt_override : 'opt_override Gram.Entry.t)) ],
+                          (Gram.Action.mk
+                             (fun (x : 'opt_override) (_loc : Gram.Loc.t) ->
+                                (x : 'override_flag_quot)))) ]) ]))
+                  ());
              Gram.extend (patt_eoi : 'patt_eoi Gram.Entry.t)
                ((fun () ->
                    (None,
@@ -8624,9 +9215,9 @@ module Camlp4QuotationCommon =
               
             let meta_loc_expr _loc loc =
               match !loc_name with
-              | None -> Ast.ExId (_loc, Ast.IdLid (_loc, !Loc.name))
+              | None -> Ast.ExId (_loc, (Ast.IdLid (_loc, !Loc.name)))
               | Some "here" -> MetaLocHere.meta_loc_expr _loc loc
-              | Some x -> Ast.ExId (_loc, Ast.IdLid (_loc, x))
+              | Some x -> Ast.ExId (_loc, (Ast.IdLid (_loc, x)))
               
             let meta_loc_patt _loc _ = Ast.PaAny _loc
               
@@ -8667,139 +9258,156 @@ module Camlp4QuotationCommon =
                          match n with
                          | "antisig_item" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "SgAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "SgAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antistr_item" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "StAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "StAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antictyp" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "TyAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "TyAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antipatt" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "PaAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "PaAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antiexpr" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "ExAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "ExAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antimodule_type" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "MtAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "MtAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antimodule_expr" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "MeAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "MeAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "anticlass_type" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "CtAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "CtAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "anticlass_expr" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "CeAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "CeAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "anticlass_sig_item" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "CgAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "CgAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "anticlass_str_item" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "CrAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "CrAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antiwith_constr" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "WcAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "WcAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antibinding" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "BiAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "BiAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antirec_binding" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "RbAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "RbAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antimatch_case" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "McAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "McAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antimodule_binding" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "MbAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "MbAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | "antiident" ->
                              Ast.PaApp (_loc,
-                               Ast.PaApp (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "IdAnt"))),
-                                 mloc _loc),
+                               (Ast.PaApp (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "IdAnt")))))),
+                                  (mloc _loc))),
                                p)
                          | _ -> p)
               | p -> super#patt p
@@ -8815,339 +9423,387 @@ module Camlp4QuotationCommon =
                          match n with
                          | "`int" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdLid (_loc, "string_of_int")),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdLid (_loc, "string_of_int")))),
                                e)
                          | "`int32" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Int32"),
-                                   Ast.IdLid (_loc, "to_string"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Int32")),
+                                     (Ast.IdLid (_loc, "to_string")))))),
                                e)
                          | "`int64" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Int64"),
-                                   Ast.IdLid (_loc, "to_string"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Int64")),
+                                     (Ast.IdLid (_loc, "to_string")))))),
                                e)
                          | "`nativeint" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc,
-                                   Ast.IdUid (_loc, "Nativeint"),
-                                   Ast.IdLid (_loc, "to_string"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Nativeint")),
+                                     (Ast.IdLid (_loc, "to_string")))))),
                                e)
                          | "`flo" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdLid (_loc, "string_of_float")),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdLid (_loc, "string_of_float")))),
                                e)
                          | "`str" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "safe_string_escaped"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "safe_string_escaped")))))),
                                e)
                          | "`chr" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Char"),
-                                   Ast.IdLid (_loc, "escaped"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Char")),
+                                     (Ast.IdLid (_loc, "escaped")))))),
                                e)
                          | "`bool" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "IdUid"))),
-                                 mloc _loc),
-                               Ast.ExIfe (_loc, e, Ast.ExStr (_loc, "True"),
-                                 Ast.ExStr (_loc, "False")))
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "IdUid")))))),
+                                  (mloc _loc))),
+                               (Ast.ExIfe (_loc, e,
+                                  (Ast.ExStr (_loc, "True")),
+                                  (Ast.ExStr (_loc, "False")))))
                          | "liststr_item" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "stSem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "stSem_of_list")))))),
                                e)
                          | "listsig_item" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "sgSem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "sgSem_of_list")))))),
                                e)
                          | "listclass_sig_item" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "cgSem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "cgSem_of_list")))))),
                                e)
                          | "listclass_str_item" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "crSem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "crSem_of_list")))))),
                                e)
                          | "listmodule_expr" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "meApp_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "meApp_of_list")))))),
                                e)
                          | "listmodule_type" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "mtApp_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "mtApp_of_list")))))),
                                e)
                          | "listmodule_binding" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "mbAnd_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "mbAnd_of_list")))))),
                                e)
                          | "listbinding" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "biAnd_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "biAnd_of_list")))))),
                                e)
                          | "listbinding;" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "biSem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "biSem_of_list")))))),
                                e)
                          | "listrec_binding" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "rbSem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "rbSem_of_list")))))),
                                e)
                          | "listclass_type" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "ctAnd_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "ctAnd_of_list")))))),
                                e)
                          | "listclass_expr" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "ceAnd_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "ceAnd_of_list")))))),
                                e)
                          | "listident" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "idAcc_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "idAcc_of_list")))))),
                                e)
                          | "listctypand" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "tyAnd_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "tyAnd_of_list")))))),
                                e)
                          | "listctyp;" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "tySem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "tySem_of_list")))))),
                                e)
                          | "listctyp*" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "tySta_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "tySta_of_list")))))),
                                e)
                          | "listctyp|" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "tyOr_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "tyOr_of_list")))))),
                                e)
                          | "listctyp," ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "tyCom_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "tyCom_of_list")))))),
                                e)
                          | "listctyp&" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "tyAmp_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "tyAmp_of_list")))))),
                                e)
                          | "listwith_constr" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "wcAnd_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "wcAnd_of_list")))))),
                                e)
                          | "listmatch_case" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "mcOr_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "mcOr_of_list")))))),
                                e)
                          | "listpatt," ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "paCom_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "paCom_of_list")))))),
                                e)
                          | "listpatt;" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "paSem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "paSem_of_list")))))),
                                e)
                          | "listexpr," ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "exCom_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "exCom_of_list")))))),
                                e)
                          | "listexpr;" ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                   Ast.IdLid (_loc, "exSem_of_list"))),
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Ast")),
+                                     (Ast.IdLid (_loc, "exSem_of_list")))))),
                                e)
                          | "antisig_item" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "SgAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "SgAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antistr_item" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "StAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "StAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antictyp" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "TyAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "TyAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antipatt" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "PaAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "PaAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antiexpr" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "ExAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "ExAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antimodule_type" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "MtAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "MtAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antimodule_expr" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "MeAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "MeAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "anticlass_type" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "CtAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "CtAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "anticlass_expr" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "CeAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "CeAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "anticlass_sig_item" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "CgAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "CgAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "anticlass_str_item" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "CrAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "CrAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antiwith_constr" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "WcAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "WcAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antibinding" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "BiAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "BiAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antirec_binding" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "RbAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "RbAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antimatch_case" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "McAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "McAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antimodule_binding" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "MbAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "MbAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | "antiident" ->
                              Ast.ExApp (_loc,
-                               Ast.ExApp (_loc,
-                                 Ast.ExId (_loc,
-                                   Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                                     Ast.IdUid (_loc, "IdAnt"))),
-                                 mloc _loc),
+                               (Ast.ExApp (_loc,
+                                  (Ast.ExId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Ast")),
+                                        (Ast.IdUid (_loc, "IdAnt")))))),
+                                  (mloc _loc))),
                                e)
                          | _ -> e)
               | e -> super#expr e
@@ -9185,12 +9841,12 @@ module Camlp4QuotationCommon =
                                (Ast.IdUid (_, u)))))),
                          _) ->
                          Ast.PaApp (_loc,
-                           Ast.PaId (_loc,
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
-                               Ast.IdUid (_loc, u))),
-                           Ast.PaId (_loc, Ast.IdLid (_loc, name)))
+                           (Ast.PaId (_loc,
+                              (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
+                                 (Ast.IdUid (_loc, u)))))),
+                           (Ast.PaId (_loc, (Ast.IdLid (_loc, name)))))
                      | Ast.PaApp (_loc, a, b) ->
-                         Ast.PaApp (_loc, subst_first_loc a, b)
+                         Ast.PaApp (_loc, (subst_first_loc a), b)
                      | p -> p)
                   in subst_first_loc exp_ast
           in
@@ -9273,6 +9929,34 @@ module Camlp4QuotationCommon =
           
         let _ = add_quotation "ident" ident_quot ME.meta_ident MP.meta_ident
           
+        let _ =
+          add_quotation "rec_flag" rec_flag_quot ME.meta_rec_flag MP.
+            meta_rec_flag
+          
+        let _ =
+          add_quotation "private_flag" private_flag_quot ME.meta_private_flag
+            MP.meta_private_flag
+          
+        let _ =
+          add_quotation "row_var_flag" row_var_flag_quot ME.meta_row_var_flag
+            MP.meta_row_var_flag
+          
+        let _ =
+          add_quotation "mutable_flag" mutable_flag_quot ME.meta_mutable_flag
+            MP.meta_mutable_flag
+          
+        let _ =
+          add_quotation "virtual_flag" virtual_flag_quot ME.meta_virtual_flag
+            MP.meta_virtual_flag
+          
+        let _ =
+          add_quotation "override_flag" override_flag_quot ME.
+            meta_override_flag MP.meta_override_flag
+          
+        let _ =
+          add_quotation "direction_flag" direction_flag_quot ME.
+            meta_direction_flag MP.meta_direction_flag
+          
       end
       
   end
@@ -9379,13 +10063,13 @@ module Rp =
           
         let peek_fun _loc =
           Ast.ExId (_loc,
-            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-              Ast.IdLid (_loc, "peek")))
+            (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+               (Ast.IdLid (_loc, "peek")))))
           
         let junk_fun _loc =
           Ast.ExId (_loc,
-            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-              Ast.IdLid (_loc, "junk")))
+            (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+               (Ast.IdLid (_loc, "junk")))))
           
         (* Parsers. *)
         (* In syntax generated, many cases are optimisations. *)
@@ -9432,7 +10116,7 @@ module Rp =
                  | Ast.McArr (_, _, (Ast.ExNil _), e) -> handle_failure e
                  | _ -> false)
               in (handle_failure me) && (match_case_handle_failure a)
-          | Ast.ExLet (_, Ast.BFalse, bi, e) ->
+          | Ast.ExLet (_, Ast.ReNil, bi, e) ->
               let rec binding_handle_failure =
                 (function
                  | Ast.BiAnd (_, b1, b2) ->
@@ -9468,61 +10152,63 @@ module Rp =
             match e with
             | Ast.ExId (_, (Ast.IdLid (_, x))) ->
                 let x = if x = v then strm_n else x
-                in Ast.ExId (_loc, Ast.IdLid (_loc, x))
+                in Ast.ExId (_loc, (Ast.IdLid (_loc, x)))
             | Ast.ExId (_, (Ast.IdUid (_, _))) -> e
             | Ast.ExInt (_, _) -> e
             | Ast.ExChr (_, _) -> e
             | Ast.ExStr (_, _) -> e
             | Ast.ExAcc (_, _, _) -> e
             | Ast.ExLet (_, rf, bi, e) ->
-                Ast.ExLet (_loc, rf, subst_binding v bi, subst v e)
+                Ast.ExLet (_loc, rf, (subst_binding v bi), (subst v e))
             | Ast.ExApp (_, e1, e2) ->
-                Ast.ExApp (_loc, subst v e1, subst v e2)
-            | Ast.ExTup (_, e) -> Ast.ExTup (_loc, subst v e)
+                Ast.ExApp (_loc, (subst v e1), (subst v e2))
+            | Ast.ExTup (_, e) -> Ast.ExTup (_loc, (subst v e))
             | Ast.ExCom (_, e1, e2) ->
-                Ast.ExCom (_loc, subst v e1, subst v e2)
+                Ast.ExCom (_loc, (subst v e1), (subst v e2))
             | _ -> raise Not_found
         and subst_binding v =
           function
           | Ast.BiAnd (_loc, b1, b2) ->
-              Ast.BiAnd (_loc, subst_binding v b1, subst_binding v b2)
+              Ast.BiAnd (_loc, (subst_binding v b1), (subst_binding v b2))
           | Ast.BiEq (_loc, (Ast.PaId (_, (Ast.IdLid (_, v')))), e) ->
-              Ast.BiEq (_loc, Ast.PaId (_loc, Ast.IdLid (_loc, v')),
-                if v = v' then e else subst v e)
+              Ast.BiEq (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, v')))),
+                (if v = v' then e else subst v e))
           | _ -> raise Not_found
           
         let stream_pattern_component skont ckont =
           function
           | SpTrm (_loc, p, None) ->
               Ast.ExMat (_loc,
-                Ast.ExApp (_loc, peek_fun _loc,
-                  Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))),
-                Ast.McOr (_loc,
-                  Ast.McArr (_loc,
-                    Ast.PaApp (_loc,
-                      Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p),
-                    Ast.ExNil _loc,
-                    Ast.ExSeq (_loc,
-                      Ast.ExSem (_loc,
-                        Ast.ExApp (_loc, junk_fun _loc,
-                          Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))),
-                        skont))),
-                  Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, ckont)))
+                (Ast.ExApp (_loc, (peek_fun _loc),
+                   (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))),
+                (Ast.McOr (_loc,
+                   (Ast.McArr (_loc,
+                      (Ast.PaApp (_loc,
+                         (Ast.PaId (_loc, (Ast.IdUid (_loc, "Some")))), p)),
+                      (Ast.ExNil _loc),
+                      (Ast.ExSeq (_loc,
+                         (Ast.ExSem (_loc,
+                            (Ast.ExApp (_loc, (junk_fun _loc),
+                               (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))),
+                            skont)))))),
+                   (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc),
+                      ckont)))))
           | SpTrm (_loc, p, (Some w)) ->
               Ast.ExMat (_loc,
-                Ast.ExApp (_loc, peek_fun _loc,
-                  Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))),
-                Ast.McOr (_loc,
-                  Ast.McArr (_loc,
-                    Ast.PaApp (_loc,
-                      Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p),
-                    w,
-                    Ast.ExSeq (_loc,
-                      Ast.ExSem (_loc,
-                        Ast.ExApp (_loc, junk_fun _loc,
-                          Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))),
-                        skont))),
-                  Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, ckont)))
+                (Ast.ExApp (_loc, (peek_fun _loc),
+                   (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))),
+                (Ast.McOr (_loc,
+                   (Ast.McArr (_loc,
+                      (Ast.PaApp (_loc,
+                         (Ast.PaId (_loc, (Ast.IdUid (_loc, "Some")))), p)),
+                      w,
+                      (Ast.ExSeq (_loc,
+                         (Ast.ExSem (_loc,
+                            (Ast.ExApp (_loc, (junk_fun _loc),
+                               (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))),
+                            skont)))))),
+                   (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc),
+                      ckont)))))
           | SpNtr (_loc, p, e) ->
               let e =
                 (match e with
@@ -9538,7 +10224,7 @@ module Rp =
                      when v = strm_n -> e
                  | _ ->
                      Ast.ExApp (_loc, e,
-                       Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))))
+                       (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n))))))
               in
                 if pattern_eq_expression p skont
                 then
@@ -9549,31 +10235,31 @@ module Rp =
                     then e
                     else
                       Ast.ExTry (_loc, e,
-                        Ast.McArr (_loc,
-                          Ast.PaId (_loc,
-                            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                              Ast.IdUid (_loc, "Failure"))),
-                          Ast.ExNil _loc, ckont))
+                        (Ast.McArr (_loc,
+                           (Ast.PaId (_loc,
+                              (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                                 (Ast.IdUid (_loc, "Failure")))))),
+                           (Ast.ExNil _loc), ckont)))
                 else
                   if is_raise_failure ckont
                   then
-                    Ast.ExLet (_loc, Ast.BFalse, Ast.BiEq (_loc, p, e),
+                    Ast.ExLet (_loc, Ast.ReNil, (Ast.BiEq (_loc, p, e)),
                       skont)
                   else
                     if
                       pattern_eq_expression
                         (Ast.PaApp (_loc,
-                           Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p))
+                           (Ast.PaId (_loc, (Ast.IdUid (_loc, "Some")))), p))
                         skont
                     then
                       Ast.ExTry (_loc,
-                        Ast.ExApp (_loc,
-                          Ast.ExId (_loc, Ast.IdUid (_loc, "Some")), e),
-                        Ast.McArr (_loc,
-                          Ast.PaId (_loc,
-                            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                              Ast.IdUid (_loc, "Failure"))),
-                          Ast.ExNil _loc, ckont))
+                        (Ast.ExApp (_loc,
+                           (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))), e)),
+                        (Ast.McArr (_loc,
+                           (Ast.PaId (_loc,
+                              (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                                 (Ast.IdUid (_loc, "Failure")))))),
+                           (Ast.ExNil _loc), ckont)))
                     else
                       if is_raise ckont
                       then
@@ -9582,33 +10268,37 @@ module Rp =
                            then e
                            else
                              Ast.ExTry (_loc, e,
-                               Ast.McArr (_loc,
-                                 Ast.PaId (_loc,
-                                   Ast.IdAcc (_loc,
-                                     Ast.IdUid (_loc, "Stream"),
-                                     Ast.IdUid (_loc, "Failure"))),
-                                 Ast.ExNil _loc, ckont))
+                               (Ast.McArr (_loc,
+                                  (Ast.PaId (_loc,
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Stream")),
+                                        (Ast.IdUid (_loc, "Failure")))))),
+                                  (Ast.ExNil _loc), ckont)))
                          in
-                           Ast.ExLet (_loc, Ast.BFalse,
-                             Ast.BiEq (_loc, p, tst), skont))
+                           Ast.ExLet (_loc, Ast.ReNil,
+                             (Ast.BiEq (_loc, p, tst)), skont))
                       else
                         Ast.ExMat (_loc,
-                          Ast.ExTry (_loc,
-                            Ast.ExApp (_loc,
-                              Ast.ExId (_loc, Ast.IdUid (_loc, "Some")), e),
-                            Ast.McArr (_loc,
-                              Ast.PaId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                                  Ast.IdUid (_loc, "Failure"))),
-                              Ast.ExNil _loc,
-                              Ast.ExId (_loc, Ast.IdUid (_loc, "None")))),
-                          Ast.McOr (_loc,
-                            Ast.McArr (_loc,
-                              Ast.PaApp (_loc,
-                                Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p),
-                              Ast.ExNil _loc, skont),
-                            Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc,
-                              ckont)))
+                          (Ast.ExTry (_loc,
+                             (Ast.ExApp (_loc,
+                                (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))),
+                                e)),
+                             (Ast.McArr (_loc,
+                                (Ast.PaId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdUid (_loc, "Stream")),
+                                      (Ast.IdUid (_loc, "Failure")))))),
+                                (Ast.ExNil _loc),
+                                (Ast.ExId (_loc, (Ast.IdUid (_loc, "None")))))))),
+                          (Ast.McOr (_loc,
+                             (Ast.McArr (_loc,
+                                (Ast.PaApp (_loc,
+                                   (Ast.PaId (_loc,
+                                      (Ast.IdUid (_loc, "Some")))),
+                                   p)),
+                                (Ast.ExNil _loc), skont)),
+                             (Ast.McArr (_loc, (Ast.PaAny _loc),
+                                (Ast.ExNil _loc), ckont)))))
           | SpStr (_loc, p) ->
               (try
                  match p with
@@ -9616,9 +10306,9 @@ module Rp =
                  | _ -> raise Not_found
                with
                | Not_found ->
-                   Ast.ExLet (_loc, Ast.BFalse,
-                     Ast.BiEq (_loc, p,
-                       Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))),
+                   Ast.ExLet (_loc, Ast.ReNil,
+                     (Ast.BiEq (_loc, p,
+                        (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))),
                      skont))
           
         let rec stream_pattern _loc epo e ekont =
@@ -9626,13 +10316,13 @@ module Rp =
           | [] ->
               (match epo with
                | Some ep ->
-                   Ast.ExLet (_loc, Ast.BFalse,
-                     Ast.BiEq (_loc, ep,
-                       Ast.ExApp (_loc,
-                         Ast.ExId (_loc,
-                           Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                             Ast.IdLid (_loc, "count"))),
-                         Ast.ExId (_loc, Ast.IdLid (_loc, strm_n)))),
+                   Ast.ExLet (_loc, Ast.ReNil,
+                     (Ast.BiEq (_loc, ep,
+                        (Ast.ExApp (_loc,
+                           (Ast.ExId (_loc,
+                              (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                                 (Ast.IdLid (_loc, "count")))))),
+                           (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))))),
                      e)
                | _ -> e)
           | (spc, err) :: spcl ->
@@ -9644,12 +10334,12 @@ module Rp =
                      | _ -> Ast.ExStr (_loc, ""))
                   in
                     Ast.ExApp (_loc,
-                      Ast.ExId (_loc, Ast.IdLid (_loc, "raise")),
-                      Ast.ExApp (_loc,
-                        Ast.ExId (_loc,
-                          Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                            Ast.IdUid (_loc, "Error"))),
-                        str))
+                      (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))),
+                      (Ast.ExApp (_loc,
+                         (Ast.ExId (_loc,
+                            (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                               (Ast.IdUid (_loc, "Error")))))),
+                         str)))
                 in stream_pattern _loc epo e ekont spcl in
               let ckont = ekont err
               in stream_pattern_component skont ckont spc
@@ -9660,7 +10350,7 @@ module Rp =
               (fun (p, w, _loc, spcl, epo, e) acc ->
                  let p =
                    Ast.PaApp (_loc,
-                     Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p) in
+                     (Ast.PaId (_loc, (Ast.IdUid (_loc, "Some")))), p) in
                  let e =
                    let ekont err =
                      let str =
@@ -9669,33 +10359,35 @@ module Rp =
                        | _ -> Ast.ExStr (_loc, "")
                      in
                        Ast.ExApp (_loc,
-                         Ast.ExId (_loc, Ast.IdLid (_loc, "raise")),
-                         Ast.ExApp (_loc,
-                           Ast.ExId (_loc,
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                               Ast.IdUid (_loc, "Error"))),
-                           str)) in
+                         (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))),
+                         (Ast.ExApp (_loc,
+                            (Ast.ExId (_loc,
+                               (Ast.IdAcc (_loc,
+                                  (Ast.IdUid (_loc, "Stream")),
+                                  (Ast.IdUid (_loc, "Error")))))),
+                            str))) in
                    let skont = stream_pattern _loc epo e ekont spcl
                    in
                      Ast.ExSeq (_loc,
-                       Ast.ExSem (_loc,
-                         Ast.ExApp (_loc, junk_fun _loc,
-                           Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))),
-                         skont))
+                       (Ast.ExSem (_loc,
+                          (Ast.ExApp (_loc, (junk_fun _loc),
+                             (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))),
+                          skont)))
                  in
                    match w with
                    | Some w ->
-                       Ast.McOr (_loc, Ast.McArr (_loc, p, w, e), acc)
+                       Ast.McOr (_loc, (Ast.McArr (_loc, p, w, e)), acc)
                    | None ->
                        Ast.McOr (_loc,
-                         Ast.McArr (_loc, p, Ast.ExNil _loc, e), acc))
+                         (Ast.McArr (_loc, p, (Ast.ExNil _loc), e)), acc))
               tspel (Ast.McNil _loc)
           in
             Ast.ExMat (_loc,
-              Ast.ExApp (_loc, peek_fun _loc,
-                Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))),
-              Ast.McOr (_loc, pel,
-                Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, ekont ())))
+              (Ast.ExApp (_loc, (peek_fun _loc),
+                 (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))),
+              (Ast.McOr (_loc, pel,
+                 (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc),
+                    (ekont ()))))))
           
         let rec group_terms =
           function
@@ -9707,10 +10399,11 @@ module Rp =
         let rec parser_cases _loc =
           function
           | [] ->
-              Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdLid (_loc, "raise")),
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                    Ast.IdUid (_loc, "Failure"))))
+              Ast.ExApp (_loc,
+                (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))),
+                (Ast.ExId (_loc,
+                   (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                      (Ast.IdUid (_loc, "Failure")))))))
           | spel ->
               (match group_terms spel with
                | ([], (spcl, epo, e) :: spel) ->
@@ -9725,36 +10418,36 @@ module Rp =
           let e =
             match bpo with
             | Some bp ->
-                Ast.ExLet (_loc, Ast.BFalse,
-                  Ast.BiEq (_loc, bp,
-                    Ast.ExApp (_loc,
-                      Ast.ExId (_loc,
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                          Ast.IdLid (_loc, "count"))),
-                      Ast.ExId (_loc, Ast.IdLid (_loc, strm_n)))),
+                Ast.ExLet (_loc, Ast.ReNil,
+                  (Ast.BiEq (_loc, bp,
+                     (Ast.ExApp (_loc,
+                        (Ast.ExId (_loc,
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                              (Ast.IdLid (_loc, "count")))))),
+                        (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))))),
                   e)
             | None -> e in
           let p =
-            Ast.PaTyc (_loc, Ast.PaId (_loc, Ast.IdLid (_loc, strm_n)),
-              Ast.TyApp (_loc,
-                Ast.TyId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                    Ast.IdLid (_loc, "t"))),
-                Ast.TyAny _loc))
-          in Ast.ExFun (_loc, Ast.McArr (_loc, p, Ast.ExNil _loc, e))
+            Ast.PaTyc (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, strm_n)))),
+              (Ast.TyApp (_loc,
+                 (Ast.TyId (_loc,
+                    (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                       (Ast.IdLid (_loc, "t")))))),
+                 (Ast.TyAny _loc))))
+          in Ast.ExFun (_loc, (Ast.McArr (_loc, p, (Ast.ExNil _loc), e)))
           
         let cparser_match _loc me bpo pc =
           let pc = parser_cases _loc pc in
           let e =
             match bpo with
             | Some bp ->
-                Ast.ExLet (_loc, Ast.BFalse,
-                  Ast.BiEq (_loc, bp,
-                    Ast.ExApp (_loc,
-                      Ast.ExId (_loc,
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                          Ast.IdLid (_loc, "count"))),
-                      Ast.ExId (_loc, Ast.IdLid (_loc, strm_n)))),
+                Ast.ExLet (_loc, Ast.ReNil,
+                  (Ast.BiEq (_loc, bp,
+                     (Ast.ExApp (_loc,
+                        (Ast.ExId (_loc,
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                              (Ast.IdLid (_loc, "count")))))),
+                        (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))))),
                   pc)
             | None -> pc in
           let me =
@@ -9765,16 +10458,16 @@ module Rp =
             match me with
             | Ast.ExId (_, (Ast.IdLid (_, x))) when x = strm_n -> e
             | _ ->
-                Ast.ExLet (_loc, Ast.BFalse,
-                  Ast.BiEq (_loc,
-                    Ast.PaTyc (_loc,
-                      Ast.PaId (_loc, Ast.IdLid (_loc, strm_n)),
-                      Ast.TyApp (_loc,
-                        Ast.TyId (_loc,
-                          Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                            Ast.IdLid (_loc, "t"))),
-                        Ast.TyAny _loc)),
-                    me),
+                Ast.ExLet (_loc, Ast.ReNil,
+                  (Ast.BiEq (_loc,
+                     (Ast.PaTyc (_loc,
+                        (Ast.PaId (_loc, (Ast.IdLid (_loc, strm_n)))),
+                        (Ast.TyApp (_loc,
+                           (Ast.TyId (_loc,
+                              (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                                 (Ast.IdLid (_loc, "t")))))),
+                           (Ast.TyAny _loc))))),
+                     me)),
                   e)
           
         (* streams *)
@@ -9801,10 +10494,10 @@ module Rp =
                | Ast.ExId (_, (Ast.IdLid (_, _))) -> f
                | _ ->
                    Ast.ExFun (_loc,
-                     Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, e)))
+                     (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), e))))
           | _ ->
               Ast.ExFun (_loc,
-                Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, e))
+                (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), e)))
           
         let rec cstream gloc =
           function
@@ -9812,67 +10505,67 @@ module Rp =
               let _loc = gloc
               in
                 Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                    Ast.IdLid (_loc, "sempty")))
+                  (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                     (Ast.IdLid (_loc, "sempty")))))
           | [ SeTrm (_loc, e) ] ->
               if not_computing e
               then
                 Ast.ExApp (_loc,
-                  Ast.ExId (_loc,
-                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                      Ast.IdLid (_loc, "ising"))),
+                  (Ast.ExId (_loc,
+                     (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                        (Ast.IdLid (_loc, "ising")))))),
                   e)
               else
                 Ast.ExApp (_loc,
-                  Ast.ExId (_loc,
-                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                      Ast.IdLid (_loc, "lsing"))),
-                  slazy _loc e)
+                  (Ast.ExId (_loc,
+                     (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                        (Ast.IdLid (_loc, "lsing")))))),
+                  (slazy _loc e))
           | SeTrm (_loc, e) :: secl ->
               if not_computing e
               then
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExId (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                        Ast.IdLid (_loc, "icons"))),
-                    e),
-                  cstream gloc secl)
+                  (Ast.ExApp (_loc,
+                     (Ast.ExId (_loc,
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                           (Ast.IdLid (_loc, "icons")))))),
+                     e)),
+                  (cstream gloc secl))
               else
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExId (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                        Ast.IdLid (_loc, "lcons"))),
-                    slazy _loc e),
-                  cstream gloc secl)
+                  (Ast.ExApp (_loc,
+                     (Ast.ExId (_loc,
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                           (Ast.IdLid (_loc, "lcons")))))),
+                     (slazy _loc e))),
+                  (cstream gloc secl))
           | [ SeNtr (_loc, e) ] ->
               if not_computing e
               then e
               else
                 Ast.ExApp (_loc,
-                  Ast.ExId (_loc,
-                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                      Ast.IdLid (_loc, "slazy"))),
-                  slazy _loc e)
+                  (Ast.ExId (_loc,
+                     (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                        (Ast.IdLid (_loc, "slazy")))))),
+                  (slazy _loc e))
           | SeNtr (_loc, e) :: secl ->
               if not_computing e
               then
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExId (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                        Ast.IdLid (_loc, "iapp"))),
-                    e),
-                  cstream gloc secl)
+                  (Ast.ExApp (_loc,
+                     (Ast.ExId (_loc,
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                           (Ast.IdLid (_loc, "iapp")))))),
+                     e)),
+                  (cstream gloc secl))
               else
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExId (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"),
-                        Ast.IdLid (_loc, "lapp"))),
-                    slazy _loc e),
-                  cstream gloc secl)
+                  (Ast.ExApp (_loc,
+                     (Ast.ExId (_loc,
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")),
+                           (Ast.IdLid (_loc, "lapp")))))),
+                     (slazy _loc e))),
+                  (cstream gloc secl))
           
         (* Syntax extensions in Revised Syntax grammar *)
         let _ =
@@ -9951,10 +10644,11 @@ module Rp =
                                 ([ pc ] : 'parser_case_list))));
                          ([ Gram.Skeyword "[";
                             Gram.Slist0sep
-                              (Gram.Snterm
-                                 (Gram.Entry.obj
-                                    (parser_case : 'parser_case Gram.Entry.t)),
-                              Gram.Skeyword "|");
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj
+                                     (parser_case :
+                                       'parser_case Gram.Entry.t))),
+                              (Gram.Skeyword "|"));
                             Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ (pcl : 'parser_case list) _
@@ -10070,9 +10764,9 @@ module Rp =
                                              'stream_expr Gram.Entry.t)) ],
                                     (Gram.Action.mk
                                        (fun (e : 'stream_expr) _
-                                          (_loc : Gram.Loc.t) -> (e : 'e__7)))) ]) ],
+                                          (_loc : Gram.Loc.t) -> (e : 'e__14)))) ]) ],
                           (Gram.Action.mk
-                             (fun (eo : 'e__7 option)
+                             (fun (eo : 'e__14 option)
                                 (spc : 'stream_patt_comp) (_loc : Gram.Loc.t)
                                 -> ((spc, eo) : 'stream_patt_comp_err)))) ]) ]))
                   ());
@@ -10143,9 +10837,9 @@ module Rp =
                                              'stream_expr Gram.Entry.t)) ],
                                     (Gram.Action.mk
                                        (fun (e : 'stream_expr) _
-                                          (_loc : Gram.Loc.t) -> (e : 'e__8)))) ]) ],
+                                          (_loc : Gram.Loc.t) -> (e : 'e__15)))) ]) ],
                           (Gram.Action.mk
-                             (fun (eo : 'e__8 option) (p : 'patt) _
+                             (fun (eo : 'e__15 option) (p : 'patt) _
                                 (_loc : Gram.Loc.t) ->
                                 (SpTrm (_loc, p, eo) : 'stream_patt_comp)))) ]) ]))
                   ());
@@ -10162,7 +10856,7 @@ module Rp =
                                  (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (i : 'a_LIDENT) (_loc : Gram.Loc.t) ->
-                                (Ast.PaId (_loc, Ast.IdLid (_loc, i)) :
+                                (Ast.PaId (_loc, (Ast.IdLid (_loc, i))) :
                                   'parser_ipatt)))) ]) ]))
                   ());
              Gram.extend (expr : 'expr Gram.Entry.t)
@@ -10321,6 +11015,7 @@ module G =
           | TXnext of loc
           | TXnterm of loc * 'e name * string option
           | TXopt of loc * ('e, 'p) text
+          | TXtry of loc * ('e, 'p) text
           | TXrules of loc * (((('e, 'p) text) list) * 'e) list
           | TXself of loc
           | TXkwd of loc * string
@@ -10438,16 +11133,17 @@ module G =
                            (s)
                            with
                            pattern =
-                             Some (Ast.PaId (_loc, Ast.IdLid (_loc, "x")));
+                             Some (Ast.PaId (_loc, (Ast.IdLid (_loc, "x"))));
                          } ];
                      action =
                        Some
                          (Ast.ExApp (_loc,
-                            Ast.ExId (_loc,
-                              Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Token"),
-                                  Ast.IdLid (_loc, "extract_string")))),
-                            Ast.ExId (_loc, Ast.IdLid (_loc, "x"))));
+                            (Ast.ExId (_loc,
+                               (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Token")),
+                                     (Ast.IdLid (_loc, "extract_string")))))))),
+                            (Ast.ExId (_loc, (Ast.IdLid (_loc, "x"))))));
                    }
                | (* ...; [ symb ]; ... ==> ...; (x = [ symb ] -> x); ... *)
                    { prod = [ ({ pattern = None } as s) ]; action = None } ->
@@ -10457,9 +11153,9 @@ module G =
                            (s)
                            with
                            pattern =
-                             Some (Ast.PaId (_loc, Ast.IdLid (_loc, "x")));
+                             Some (Ast.PaId (_loc, (Ast.IdLid (_loc, "x"))));
                          } ];
-                     action = Some (Ast.ExId (_loc, Ast.IdLid (_loc, "x")));
+                     action = Some (Ast.ExId (_loc, (Ast.IdLid (_loc, "x"))));
                    }
                | (* ...; ([] -> a); ... *)
                    ({ prod = []; action = Some _ } as r) -> r
@@ -10472,29 +11168,29 @@ module G =
         let mklistexp _loc =
           let rec loop top =
             function
-            | [] -> Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))
+            | [] -> Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))
             | e1 :: el ->
                 let _loc =
                   if top then _loc else Loc.merge (Ast.loc_of_expr e1) _loc
                 in
                   Ast.ExApp (_loc,
-                    Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                      e1),
-                    loop false el)
+                    (Ast.ExApp (_loc,
+                       (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), e1)),
+                    (loop false el))
           in loop true
           
         let mklistpat _loc =
           let rec loop top =
             function
-            | [] -> Ast.PaId (_loc, Ast.IdUid (_loc, "[]"))
+            | [] -> Ast.PaId (_loc, (Ast.IdUid (_loc, "[]")))
             | p1 :: pl ->
                 let _loc =
                   if top then _loc else Loc.merge (Ast.loc_of_patt p1) _loc
                 in
                   Ast.PaApp (_loc,
-                    Ast.PaApp (_loc, Ast.PaId (_loc, Ast.IdUid (_loc, "::")),
-                      p1),
-                    loop false pl)
+                    (Ast.PaApp (_loc,
+                       (Ast.PaId (_loc, (Ast.IdUid (_loc, "::")))), p1)),
+                    (loop false pl))
           in loop true
           
         let rec expr_fa al =
@@ -10504,9 +11200,9 @@ module G =
           
         let rec make_ctyp styp tvar =
           match styp with
-          | STlid (_loc, s) -> Ast.TyId (_loc, Ast.IdLid (_loc, s))
+          | STlid (_loc, s) -> Ast.TyId (_loc, (Ast.IdLid (_loc, s)))
           | STapp (_loc, t1, t2) ->
-              Ast.TyApp (_loc, make_ctyp t1 tvar, make_ctyp t2 tvar)
+              Ast.TyApp (_loc, (make_ctyp t1 tvar), (make_ctyp t2 tvar))
           | STquo (_loc, s) -> Ast.TyQuo (_loc, s)
           | STself (_loc, x) ->
               if tvar = ""
@@ -10517,11 +11213,12 @@ module G =
               else Ast.TyQuo (_loc, tvar)
           | STtok _loc ->
               Ast.TyId (_loc,
-                Ast.IdAcc (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                    Ast.IdUid (_loc, "Token")),
-                  Ast.IdLid (_loc, "t")))
-          | STstring_tok _loc -> Ast.TyId (_loc, Ast.IdLid (_loc, "string"))
+                (Ast.IdAcc (_loc,
+                   (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                      (Ast.IdUid (_loc, "Token")))),
+                   (Ast.IdLid (_loc, "t")))))
+          | STstring_tok _loc ->
+              Ast.TyId (_loc, (Ast.IdLid (_loc, "string")))
           | STtyp t -> t
           
         let make_ctyp_patt styp tvar patt =
@@ -10539,11 +11236,11 @@ module G =
           | t -> let _loc = Ast.loc_of_expr expr in Ast.ExTyc (_loc, expr, t)
           
         let text_of_action _loc psl rtvar act tvar =
-          let locid = Ast.PaId (_loc, Ast.IdLid (_loc, !Loc.name)) in
+          let locid = Ast.PaId (_loc, (Ast.IdLid (_loc, !Loc.name))) in
           let act =
             match act with
             | Some act -> act
-            | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "()")) in
+            | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) in
           let (tok_match_pl, act, _) =
             List.fold_left
               (fun (((tok_match_pl, act, i) as accu)) ->
@@ -10558,15 +11255,16 @@ module G =
                             (Ast.PaId (_, (Ast.IdLid (_, s))))))
                      } ->
                      (tok_match_pl,
-                      (Ast.ExLet (_loc, Ast.BFalse,
-                         Ast.BiEq (_loc,
-                           Ast.PaId (_loc, Ast.IdLid (_loc, s)),
-                           Ast.ExApp (_loc,
-                             Ast.ExId (_loc,
-                               Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Token"),
-                                   Ast.IdLid (_loc, "extract_string")))),
-                             Ast.ExId (_loc, Ast.IdLid (_loc, s)))),
+                      (Ast.ExLet (_loc, Ast.ReNil,
+                         (Ast.BiEq (_loc,
+                            (Ast.PaId (_loc, (Ast.IdLid (_loc, s)))),
+                            (Ast.ExApp (_loc,
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Token")),
+                                        (Ast.IdLid (_loc, "extract_string")))))))),
+                               (Ast.ExId (_loc, (Ast.IdLid (_loc, s)))))))),
                          act)),
                       i)
                  | { pattern = Some p; text = TXtok (_, _, _) } ->
@@ -10575,53 +11273,54 @@ module G =
                        ((Some
                            (match tok_match_pl with
                             | None ->
-                                ((Ast.ExId (_loc, Ast.IdLid (_loc, id))), p)
+                                ((Ast.ExId (_loc, (Ast.IdLid (_loc, id)))),
+                                 p)
                             | Some ((tok_pl, match_pl)) ->
                                 ((Ast.ExCom (_loc,
-                                    Ast.ExId (_loc, Ast.IdLid (_loc, id)),
+                                    (Ast.ExId (_loc, (Ast.IdLid (_loc, id)))),
                                     tok_pl)),
                                  (Ast.PaCom (_loc, p, match_pl))))),
                         act, (succ i))
                  | _ -> accu)
               (None, act, 0) psl in
           let e =
-            let e1 = Ast.ExTyc (_loc, act, Ast.TyQuo (_loc, rtvar)) in
+            let e1 = Ast.ExTyc (_loc, act, (Ast.TyQuo (_loc, rtvar))) in
             let e2 =
               match tok_match_pl with
               | None -> e1
               | Some ((Ast.ExCom (_, t1, t2), Ast.PaCom (_, p1, p2))) ->
                   Ast.ExMat (_loc,
-                    Ast.ExTup (_loc, Ast.ExCom (_loc, t1, t2)),
-                    Ast.McOr (_loc,
-                      Ast.McArr (_loc,
-                        Ast.PaTup (_loc, Ast.PaCom (_loc, p1, p2)),
-                        Ast.ExNil _loc, e1),
-                      Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc,
-                        Ast.ExAsf _loc)))
+                    (Ast.ExTup (_loc, (Ast.ExCom (_loc, t1, t2)))),
+                    (Ast.McOr (_loc,
+                       (Ast.McArr (_loc,
+                          (Ast.PaTup (_loc, (Ast.PaCom (_loc, p1, p2)))),
+                          (Ast.ExNil _loc), e1)),
+                       (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc),
+                          (Ast.ExAsf _loc))))))
               | Some ((tok, match_)) ->
                   Ast.ExMat (_loc, tok,
-                    Ast.McOr (_loc,
-                      Ast.McArr (_loc, match_, Ast.ExNil _loc, e1),
-                      Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc,
-                        Ast.ExAsf _loc)))
+                    (Ast.McOr (_loc,
+                       (Ast.McArr (_loc, match_, (Ast.ExNil _loc), e1)),
+                       (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc),
+                          (Ast.ExAsf _loc))))))
             in
               Ast.ExFun (_loc,
-                Ast.McArr (_loc,
-                  Ast.PaTyc (_loc, locid,
-                    Ast.TyId (_loc,
-                      Ast.IdAcc (_loc,
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                          Ast.IdUid (_loc, "Loc")),
-                        Ast.IdLid (_loc, "t")))),
-                  Ast.ExNil _loc, e2)) in
+                (Ast.McArr (_loc,
+                   (Ast.PaTyc (_loc, locid,
+                      (Ast.TyId (_loc,
+                         (Ast.IdAcc (_loc,
+                            (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                               (Ast.IdUid (_loc, "Loc")))),
+                            (Ast.IdLid (_loc, "t")))))))),
+                   (Ast.ExNil _loc), e2))) in
           let (txt, _) =
             List.fold_left
               (fun (txt, i) s ->
                  match s.pattern with
                  | None | Some (Ast.PaAny _) ->
                      ((Ast.ExFun (_loc,
-                         Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc,
-                           txt))),
+                         (Ast.McArr (_loc, (Ast.PaAny _loc),
+                            (Ast.ExNil _loc), txt)))),
                       i)
                  | Some
                      (Ast.PaAli (_,
@@ -10631,39 +11330,40 @@ module G =
                      let p = make_ctyp_patt s.styp tvar p
                      in
                        ((Ast.ExFun (_loc,
-                           Ast.McArr (_loc, p, Ast.ExNil _loc, txt))),
+                           (Ast.McArr (_loc, p, (Ast.ExNil _loc), txt)))),
                         i)
                  | Some p when Ast.is_irrefut_patt p ->
                      let p = make_ctyp_patt s.styp tvar p
                      in
                        ((Ast.ExFun (_loc,
-                           Ast.McArr (_loc, p, Ast.ExNil _loc, txt))),
+                           (Ast.McArr (_loc, p, (Ast.ExNil _loc), txt)))),
                         i)
                  | Some _ ->
                      let p =
                        make_ctyp_patt s.styp tvar
                          (Ast.PaId (_loc,
-                            Ast.IdLid (_loc, "__camlp4_" ^ (string_of_int i))))
+                            (Ast.IdLid (_loc,
+                               ("__camlp4_" ^ (string_of_int i))))))
                      in
                        ((Ast.ExFun (_loc,
-                           Ast.McArr (_loc, p, Ast.ExNil _loc, txt))),
+                           (Ast.McArr (_loc, p, (Ast.ExNil _loc), txt)))),
                         (succ i)))
               (e, 0) psl in
           let txt =
             if !meta_action
             then
               Ast.ExApp (_loc,
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Obj"),
-                    Ast.IdLid (_loc, "magic"))),
-                MetaAst.Expr.meta_expr _loc txt)
+                (Ast.ExId (_loc,
+                   (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Obj")),
+                      (Ast.IdLid (_loc, "magic")))))),
+                (MetaAst.Expr.meta_expr _loc txt))
             else txt
           in
             Ast.ExApp (_loc,
-              Ast.ExId (_loc,
-                Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Action"),
-                    Ast.IdLid (_loc, "mk")))),
+              (Ast.ExId (_loc,
+                 (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                    (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Action")),
+                       (Ast.IdLid (_loc, "mk")))))))),
               txt)
           
         let srules loc t rl tvar =
@@ -10680,144 +11380,154 @@ module G =
                 List.fold_right
                   (fun t el ->
                      Ast.ExApp (_loc,
-                       Ast.ExApp (_loc,
-                         Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                         make_expr entry "" t),
+                       (Ast.ExApp (_loc,
+                          (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))),
+                          (make_expr entry "" t))),
                        el))
-                  tl (Ast.ExId (_loc, Ast.IdUid (_loc, "[]")))
+                  tl (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))
               in
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExApp (_loc,
-                      Ast.ExId (_loc,
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                          Ast.IdUid (_loc, "Smeta"))),
-                      Ast.ExStr (_loc, n)),
-                    el),
-                  Ast.ExApp (_loc,
-                    Ast.ExId (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Action"),
-                          Ast.IdLid (_loc, "mk")))),
-                    make_ctyp_expr t tvar e))
+                  (Ast.ExApp (_loc,
+                     (Ast.ExApp (_loc,
+                        (Ast.ExId (_loc,
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                              (Ast.IdUid (_loc, "Smeta")))))),
+                        (Ast.ExStr (_loc, n)))),
+                     el)),
+                  (Ast.ExApp (_loc,
+                     (Ast.ExId (_loc,
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Action")),
+                              (Ast.IdLid (_loc, "mk")))))))),
+                     (make_ctyp_expr t tvar e))))
           | TXlist (_loc, min, t, ts) ->
               let txt = make_expr entry "" t.text
               in
                 (match (min, ts) with
                  | (false, None) ->
                      Ast.ExApp (_loc,
-                       Ast.ExId (_loc,
-                         Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                           Ast.IdUid (_loc, "Slist0"))),
+                       (Ast.ExId (_loc,
+                          (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                             (Ast.IdUid (_loc, "Slist0")))))),
                        txt)
                  | (true, None) ->
                      Ast.ExApp (_loc,
-                       Ast.ExId (_loc,
-                         Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                           Ast.IdUid (_loc, "Slist1"))),
+                       (Ast.ExId (_loc,
+                          (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                             (Ast.IdUid (_loc, "Slist1")))))),
                        txt)
                  | (false, Some s) ->
                      let x = make_expr entry tvar s.text
                      in
                        Ast.ExApp (_loc,
-                         Ast.ExApp (_loc,
-                           Ast.ExId (_loc,
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                               Ast.IdUid (_loc, "Slist0sep"))),
-                           txt),
+                         (Ast.ExApp (_loc,
+                            (Ast.ExId (_loc,
+                               (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                  (Ast.IdUid (_loc, "Slist0sep")))))),
+                            txt)),
                          x)
                  | (true, Some s) ->
                      let x = make_expr entry tvar s.text
                      in
                        Ast.ExApp (_loc,
-                         Ast.ExApp (_loc,
-                           Ast.ExId (_loc,
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                               Ast.IdUid (_loc, "Slist1sep"))),
-                           txt),
+                         (Ast.ExApp (_loc,
+                            (Ast.ExId (_loc,
+                               (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                  (Ast.IdUid (_loc, "Slist1sep")))))),
+                            txt)),
                          x))
           | TXnext _loc ->
               Ast.ExId (_loc,
-                Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                  Ast.IdUid (_loc, "Snext")))
+                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                   (Ast.IdUid (_loc, "Snext")))))
           | TXnterm (_loc, n, lev) ->
               (match lev with
                | Some lab ->
                    Ast.ExApp (_loc,
-                     Ast.ExApp (_loc,
-                       Ast.ExId (_loc,
-                         Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                           Ast.IdUid (_loc, "Snterml"))),
-                       Ast.ExApp (_loc,
-                         Ast.ExId (_loc,
-                           Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, "Entry"),
-                               Ast.IdLid (_loc, "obj")))),
-                         Ast.ExTyc (_loc, n.expr,
-                           Ast.TyApp (_loc,
-                             Ast.TyId (_loc,
-                               Ast.IdAcc (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                                   Ast.IdUid (_loc, "Entry")),
-                                 Ast.IdLid (_loc, "t"))),
-                             Ast.TyQuo (_loc, n.tvar))))),
-                     Ast.ExStr (_loc, lab))
+                     (Ast.ExApp (_loc,
+                        (Ast.ExId (_loc,
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                              (Ast.IdUid (_loc, "Snterml")))))),
+                        (Ast.ExApp (_loc,
+                           (Ast.ExId (_loc,
+                              (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                 (Ast.IdAcc (_loc,
+                                    (Ast.IdUid (_loc, "Entry")),
+                                    (Ast.IdLid (_loc, "obj")))))))),
+                           (Ast.ExTyc (_loc, n.expr,
+                              (Ast.TyApp (_loc,
+                                 (Ast.TyId (_loc,
+                                    (Ast.IdAcc (_loc,
+                                       (Ast.IdAcc (_loc,
+                                          (Ast.IdUid (_loc, gm)),
+                                          (Ast.IdUid (_loc, "Entry")))),
+                                       (Ast.IdLid (_loc, "t")))))),
+                                 (Ast.TyQuo (_loc, n.tvar)))))))))),
+                     (Ast.ExStr (_loc, lab)))
                | None ->
                    if n.tvar = tvar
                    then
                      Ast.ExId (_loc,
-                       Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                         Ast.IdUid (_loc, "Sself")))
+                       (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                          (Ast.IdUid (_loc, "Sself")))))
                    else
                      Ast.ExApp (_loc,
-                       Ast.ExId (_loc,
-                         Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                           Ast.IdUid (_loc, "Snterm"))),
-                       Ast.ExApp (_loc,
-                         Ast.ExId (_loc,
-                           Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, "Entry"),
-                               Ast.IdLid (_loc, "obj")))),
-                         Ast.ExTyc (_loc, n.expr,
-                           Ast.TyApp (_loc,
-                             Ast.TyId (_loc,
-                               Ast.IdAcc (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                                   Ast.IdUid (_loc, "Entry")),
-                                 Ast.IdLid (_loc, "t"))),
-                             Ast.TyQuo (_loc, n.tvar))))))
+                       (Ast.ExId (_loc,
+                          (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                             (Ast.IdUid (_loc, "Snterm")))))),
+                       (Ast.ExApp (_loc,
+                          (Ast.ExId (_loc,
+                             (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                (Ast.IdAcc (_loc,
+                                   (Ast.IdUid (_loc, "Entry")),
+                                   (Ast.IdLid (_loc, "obj")))))))),
+                          (Ast.ExTyc (_loc, n.expr,
+                             (Ast.TyApp (_loc,
+                                (Ast.TyId (_loc,
+                                   (Ast.IdAcc (_loc,
+                                      (Ast.IdAcc (_loc,
+                                         (Ast.IdUid (_loc, gm)),
+                                         (Ast.IdUid (_loc, "Entry")))),
+                                      (Ast.IdLid (_loc, "t")))))),
+                                (Ast.TyQuo (_loc, n.tvar))))))))))
           | TXopt (_loc, t) ->
               Ast.ExApp (_loc,
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                    Ast.IdUid (_loc, "Sopt"))),
-                make_expr entry "" t)
+                (Ast.ExId (_loc,
+                   (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                      (Ast.IdUid (_loc, "Sopt")))))),
+                (make_expr entry "" t))
+          | TXtry (_loc, t) ->
+              Ast.ExApp (_loc,
+                (Ast.ExId (_loc,
+                   (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                      (Ast.IdUid (_loc, "Stry")))))),
+                (make_expr entry "" t))
           | TXrules (_loc, rl) ->
               Ast.ExApp (_loc,
-                Ast.ExApp (_loc,
-                  Ast.ExId (_loc,
-                    Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                      Ast.IdLid (_loc, "srules"))),
-                  entry.expr),
-                make_expr_rules _loc entry rl "")
+                (Ast.ExApp (_loc,
+                   (Ast.ExId (_loc,
+                      (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                         (Ast.IdLid (_loc, "srules")))))),
+                   entry.expr)),
+                (make_expr_rules _loc entry rl ""))
           | TXself _loc ->
               Ast.ExId (_loc,
-                Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                  Ast.IdUid (_loc, "Sself")))
+                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                   (Ast.IdUid (_loc, "Sself")))))
           | TXkwd (_loc, kwd) ->
               Ast.ExApp (_loc,
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                    Ast.IdUid (_loc, "Skeyword"))),
-                Ast.ExStr (_loc, kwd))
+                (Ast.ExId (_loc,
+                   (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                      (Ast.IdUid (_loc, "Skeyword")))))),
+                (Ast.ExStr (_loc, kwd)))
           | TXtok (_loc, match_fun, descr) ->
               Ast.ExApp (_loc,
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                    Ast.IdUid (_loc, "Stoken"))),
-                Ast.ExTup (_loc,
-                  Ast.ExCom (_loc, match_fun,
-                    Ast.ExStr (_loc, Ast.safe_string_escaped descr))))
+                (Ast.ExId (_loc,
+                   (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                      (Ast.IdUid (_loc, "Stoken")))))),
+                (Ast.ExTup (_loc,
+                   (Ast.ExCom (_loc, match_fun,
+                      (Ast.ExStr (_loc, (Ast.safe_string_escaped descr))))))))
         and make_expr_rules _loc n rl tvar =
           List.fold_left
             (fun txt (sl, ac) ->
@@ -10827,26 +11537,28 @@ module G =
                       let x = make_expr n tvar t
                       in
                         Ast.ExApp (_loc,
-                          Ast.ExApp (_loc,
-                            Ast.ExId (_loc, Ast.IdUid (_loc, "::")), x),
+                          (Ast.ExApp (_loc,
+                             (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), x)),
                           txt))
-                   sl (Ast.ExId (_loc, Ast.IdUid (_loc, "[]")))
+                   sl (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))
                in
                  Ast.ExApp (_loc,
-                   Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                     Ast.ExTup (_loc, Ast.ExCom (_loc, sl, ac))),
+                   (Ast.ExApp (_loc,
+                      (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))),
+                      (Ast.ExTup (_loc, (Ast.ExCom (_loc, sl, ac)))))),
                    txt))
-            (Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) rl
+            (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) rl
           
         let expr_of_delete_rule _loc n sl =
           let sl =
             List.fold_right
               (fun s e ->
                  Ast.ExApp (_loc,
-                   Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                     make_expr n "" s.text),
+                   (Ast.ExApp (_loc,
+                      (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))),
+                      (make_expr n "" s.text))),
                    e))
-              sl (Ast.ExId (_loc, Ast.IdUid (_loc, "[]")))
+              sl (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))
           in ((n.expr), sl)
           
         let rec tvar_of_ident =
@@ -10945,19 +11657,19 @@ module G =
             let _loc = e.name.loc
             in
               Ast.ExTyc (_loc, x.expr,
-                Ast.TyApp (_loc,
-                  Ast.TyId (_loc,
-                    Ast.IdAcc (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                        Ast.IdUid (_loc, "Entry")),
-                      Ast.IdLid (_loc, "t"))),
-                  Ast.TyQuo (_loc, x.tvar))) in
+                (Ast.TyApp (_loc,
+                   (Ast.TyId (_loc,
+                      (Ast.IdAcc (_loc,
+                         (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                            (Ast.IdUid (_loc, "Entry")))),
+                         (Ast.IdLid (_loc, "t")))))),
+                   (Ast.TyQuo (_loc, x.tvar))))) in
           let pos =
             match e.pos with
             | Some pos ->
-                Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "Some")),
-                  pos)
-            | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "None")) in
+                Ast.ExApp (_loc,
+                  (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))), pos)
+            | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "None"))) in
           let txt =
             List.fold_right
               (fun level txt ->
@@ -10965,28 +11677,29 @@ module G =
                    match level.label with
                    | Some lab ->
                        Ast.ExApp (_loc,
-                         Ast.ExId (_loc, Ast.IdUid (_loc, "Some")),
-                         Ast.ExStr (_loc, lab))
-                   | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "None")) in
+                         (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))),
+                         (Ast.ExStr (_loc, lab)))
+                   | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "None"))) in
                  let ass =
                    match level.assoc with
                    | Some ass ->
                        Ast.ExApp (_loc,
-                         Ast.ExId (_loc, Ast.IdUid (_loc, "Some")), ass)
-                   | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "None")) in
+                         (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))), ass)
+                   | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "None"))) in
                  let txt =
                    let rl =
                      srules _loc e.name.tvar level.rules e.name.tvar in
                    let e = make_expr_rules _loc e.name rl e.name.tvar
                    in
                      Ast.ExApp (_loc,
-                       Ast.ExApp (_loc,
-                         Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                         Ast.ExTup (_loc,
-                           Ast.ExCom (_loc, lab, Ast.ExCom (_loc, ass, e)))),
+                       (Ast.ExApp (_loc,
+                          (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))),
+                          (Ast.ExTup (_loc,
+                             (Ast.ExCom (_loc, lab,
+                                (Ast.ExCom (_loc, ass, e)))))))),
                        txt)
                  in txt)
-              e.levels (Ast.ExId (_loc, Ast.IdUid (_loc, "[]")))
+              e.levels (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))
           in (ent, pos, txt)
           
         let let_in_of_extend _loc gram gl el args =
@@ -11015,28 +11728,28 @@ module G =
                     | Ast.ExId (_, (Ast.IdLid (_, i))) -> i
                     | _ -> failwith "internal error in the Grammar extension")
                  in
-                   Ast.BiEq (_loc, Ast.PaId (_loc, Ast.IdLid (_loc, i)),
-                     Ast.ExTyc (_loc,
-                       Ast.ExApp (_loc,
-                         Ast.ExId (_loc,
-                           Ast.IdLid (_loc, "grammar_entry_create")),
-                         Ast.ExStr (_loc, i)),
-                       Ast.TyApp (_loc,
-                         Ast.TyId (_loc,
-                           Ast.IdAcc (_loc,
-                             Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                               Ast.IdUid (_loc, "Entry")),
-                             Ast.IdLid (_loc, "t"))),
-                         Ast.TyQuo (_loc, x)))) in
+                   Ast.BiEq (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, i)))),
+                     (Ast.ExTyc (_loc,
+                        (Ast.ExApp (_loc,
+                           (Ast.ExId (_loc,
+                              (Ast.IdLid (_loc, "grammar_entry_create")))),
+                           (Ast.ExStr (_loc, i)))),
+                        (Ast.TyApp (_loc,
+                           (Ast.TyId (_loc,
+                              (Ast.IdAcc (_loc,
+                                 (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                    (Ast.IdUid (_loc, "Entry")))),
+                                 (Ast.IdLid (_loc, "t")))))),
+                           (Ast.TyQuo (_loc, x))))))) in
                let expr_of_name { expr = e; tvar = x; loc = _loc } =
                  Ast.ExTyc (_loc, e,
-                   Ast.TyApp (_loc,
-                     Ast.TyId (_loc,
-                       Ast.IdAcc (_loc,
-                         Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                           Ast.IdUid (_loc, "Entry")),
-                         Ast.IdLid (_loc, "t"))),
-                     Ast.TyQuo (_loc, x))) in
+                   (Ast.TyApp (_loc,
+                      (Ast.TyId (_loc,
+                         (Ast.IdAcc (_loc,
+                            (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                               (Ast.IdUid (_loc, "Entry")))),
+                            (Ast.IdLid (_loc, "t")))))),
+                      (Ast.TyQuo (_loc, x))))) in
                let e =
                  (match ll with
                   | [] -> args
@@ -11045,30 +11758,31 @@ module G =
                         List.fold_right
                           (fun name acc ->
                              Ast.BiAnd (_loc, acc,
-                               local_binding_of_name name))
+                               (local_binding_of_name name)))
                           xs (local_binding_of_name x) in
                       let entry_mk =
                         (match gram with
                          | Some g ->
                              Ast.ExApp (_loc,
-                               Ast.ExId (_loc,
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                                   Ast.IdAcc (_loc,
-                                     Ast.IdUid (_loc, "Entry"),
-                                     Ast.IdLid (_loc, "mk")))),
-                               Ast.ExId (_loc, g))
+                               (Ast.ExId (_loc,
+                                  (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                     (Ast.IdAcc (_loc,
+                                        (Ast.IdUid (_loc, "Entry")),
+                                        (Ast.IdLid (_loc, "mk")))))))),
+                               (Ast.ExId (_loc, g)))
                          | None ->
                              Ast.ExId (_loc,
-                               Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                                 Ast.IdAcc (_loc, Ast.IdUid (_loc, "Entry"),
-                                   Ast.IdLid (_loc, "mk")))))
+                               (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                  (Ast.IdAcc (_loc,
+                                     (Ast.IdUid (_loc, "Entry")),
+                                     (Ast.IdLid (_loc, "mk"))))))))
                       in
-                        Ast.ExLet (_loc, Ast.BFalse,
-                          Ast.BiEq (_loc,
-                            Ast.PaId (_loc,
-                              Ast.IdLid (_loc, "grammar_entry_create")),
-                            entry_mk),
-                          Ast.ExLet (_loc, Ast.BFalse, locals, args)))
+                        Ast.ExLet (_loc, Ast.ReNil,
+                          (Ast.BiEq (_loc,
+                             (Ast.PaId (_loc,
+                                (Ast.IdLid (_loc, "grammar_entry_create")))),
+                             entry_mk)),
+                          (Ast.ExLet (_loc, Ast.ReNil, locals, args))))
                in
                  (match nl with
                   | [] -> e
@@ -11077,11 +11791,12 @@ module G =
                         List.fold_right
                           (fun name acc ->
                              Ast.BiAnd (_loc, acc,
-                               Ast.BiEq (_loc, Ast.PaAny _loc,
-                                 expr_of_name name)))
+                               (Ast.BiEq (_loc, (Ast.PaAny _loc),
+                                  (expr_of_name name)))))
                           xs
-                          (Ast.BiEq (_loc, Ast.PaAny _loc, expr_of_name x))
-                      in Ast.ExLet (_loc, Ast.BFalse, globals, e)))
+                          (Ast.BiEq (_loc, (Ast.PaAny _loc),
+                             (expr_of_name x)))
+                      in Ast.ExLet (_loc, Ast.ReNil, globals, e)))
           
         class subst gmod =
           object inherit Ast.map as super
@@ -11103,41 +11818,42 @@ module G =
                    let (ent, pos, txt) = text_of_entry e.name.loc e in
                    let e =
                      Ast.ExApp (_loc,
-                       Ast.ExApp (_loc,
-                         Ast.ExId (_loc,
-                           Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                             Ast.IdLid (_loc, "extend"))),
-                         ent),
-                       Ast.ExApp (_loc,
-                         Ast.ExFun (_loc,
-                           Ast.McArr (_loc,
-                             Ast.PaId (_loc, Ast.IdUid (_loc, "()")),
-                             Ast.ExNil _loc,
-                             Ast.ExTup (_loc, Ast.ExCom (_loc, pos, txt)))),
-                         Ast.ExId (_loc, Ast.IdUid (_loc, "()"))))
+                       (Ast.ExApp (_loc,
+                          (Ast.ExId (_loc,
+                             (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                                (Ast.IdLid (_loc, "extend")))))),
+                          ent)),
+                       (Ast.ExApp (_loc,
+                          (Ast.ExFun (_loc,
+                             (Ast.McArr (_loc,
+                                (Ast.PaId (_loc, (Ast.IdUid (_loc, "()")))),
+                                (Ast.ExNil _loc),
+                                (Ast.ExTup (_loc,
+                                   (Ast.ExCom (_loc, pos, txt)))))))),
+                          (Ast.ExId (_loc, (Ast.IdUid (_loc, "()")))))))
                    in
                      if !split_ext
                      then
-                       Ast.ExLet (_loc, Ast.BFalse,
-                         Ast.BiEq (_loc,
-                           Ast.PaId (_loc, Ast.IdLid (_loc, "aux")),
-                           Ast.ExFun (_loc,
-                             Ast.McArr (_loc,
-                               Ast.PaId (_loc, Ast.IdUid (_loc, "()")),
-                               Ast.ExNil _loc, e))),
-                         Ast.ExApp (_loc,
-                           Ast.ExId (_loc, Ast.IdLid (_loc, "aux")),
-                           Ast.ExId (_loc, Ast.IdUid (_loc, "()"))))
+                       Ast.ExLet (_loc, Ast.ReNil,
+                         (Ast.BiEq (_loc,
+                            (Ast.PaId (_loc, (Ast.IdLid (_loc, "aux")))),
+                            (Ast.ExFun (_loc,
+                               (Ast.McArr (_loc,
+                                  (Ast.PaId (_loc, (Ast.IdUid (_loc, "()")))),
+                                  (Ast.ExNil _loc), e)))))),
+                         (Ast.ExApp (_loc,
+                            (Ast.ExId (_loc, (Ast.IdLid (_loc, "aux")))),
+                            (Ast.ExId (_loc, (Ast.IdUid (_loc, "()")))))))
                      else e)
                 el
             in
               match el with
-              | [] -> Ast.ExId (_loc, Ast.IdUid (_loc, "()"))
+              | [] -> Ast.ExId (_loc, (Ast.IdUid (_loc, "()")))
               | [ e ] -> e
               | e :: el ->
                   Ast.ExSeq (_loc,
-                    List.fold_left (fun acc x -> Ast.ExSem (_loc, acc, x)) e
-                      el)
+                    (List.fold_left (fun acc x -> Ast.ExSem (_loc, acc, x)) e
+                       el))
           in subst_gmod (let_in_of_extend _loc gram gl el args) gmod
           
         let wildcarder =
@@ -11158,15 +11874,15 @@ module G =
             if Ast.is_irrefut_patt p'
             then
               Ast.ExFun (_loc,
-                Ast.McArr (_loc, p', Ast.ExNil _loc,
-                  Ast.ExId (_loc, Ast.IdUid (_loc, "True"))))
+                (Ast.McArr (_loc, p', (Ast.ExNil _loc),
+                   (Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))))))
             else
               Ast.ExFun (_loc,
-                Ast.McOr (_loc,
-                  Ast.McArr (_loc, p', Ast.ExNil _loc,
-                    Ast.ExId (_loc, Ast.IdUid (_loc, "True"))),
-                  Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc,
-                    Ast.ExId (_loc, Ast.IdUid (_loc, "False"))))) in
+                (Ast.McOr (_loc,
+                   (Ast.McArr (_loc, p', (Ast.ExNil _loc),
+                      (Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))))),
+                   (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc),
+                      (Ast.ExId (_loc, (Ast.IdUid (_loc, "False"))))))))) in
           let descr = string_of_patt p' in
           let text = TXtok (_loc, match_fun, descr)
           in { used = []; text = text; styp = t; pattern = Some p; }
@@ -11303,9 +12019,9 @@ module G =
                                              'semi_sep Gram.Entry.t)) ],
                                     (Gram.Action.mk
                                        (fun _ (e : 'entry)
-                                          (_loc : Gram.Loc.t) -> (e : 'e__9)))) ]) ],
+                                          (_loc : Gram.Loc.t) -> (e : 'e__16)))) ]) ],
                           (Gram.Action.mk
-                             (fun (el : 'e__9 list)
+                             (fun (el : 'e__16 list)
                                 (global_list : 'global option)
                                 ((gram, g) : 'extend_header)
                                 (_loc : Gram.Loc.t) ->
@@ -11324,12 +12040,12 @@ module G =
                               (Gram.Entry.obj (name : 'name Gram.Entry.t));
                             Gram.Skeyword ":";
                             Gram.Slist0sep
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj
+                                     (symbol : 'symbol Gram.Entry.t))),
                               (Gram.Snterm
                                  (Gram.Entry.obj
-                                    (symbol : 'symbol Gram.Entry.t)),
-                              Gram.Snterm
-                                (Gram.Entry.obj
-                                   (semi_sep : 'semi_sep Gram.Entry.t))) ],
+                                    (semi_sep : 'semi_sep Gram.Entry.t)))) ],
                           (Gram.Action.mk
                              (fun (sl : 'symbol list) _ (n : 'name)
                                 (g : 'qualuid) (_loc : Gram.Loc.t) ->
@@ -11337,12 +12053,13 @@ module G =
                                  in
                                    subst_gmod
                                      (Ast.ExApp (_loc,
-                                        Ast.ExApp (_loc,
-                                          Ast.ExId (_loc,
-                                            Ast.IdAcc (_loc,
-                                              Ast.IdUid (_loc, gm),
-                                              Ast.IdLid (_loc, "delete_rule"))),
-                                          e),
+                                        (Ast.ExApp (_loc,
+                                           (Ast.ExId (_loc,
+                                              (Ast.IdAcc (_loc,
+                                                 (Ast.IdUid (_loc, gm)),
+                                                 (Ast.IdLid (_loc,
+                                                    "delete_rule")))))),
+                                           e)),
                                         b))
                                      g :
                                   'delete_rule_body)))) ]) ]))
@@ -11361,7 +12078,7 @@ module G =
                                     (fun (__camlp4_0 : Gram.Token.t)
                                        (_loc : Gram.Loc.t) ->
                                        match __camlp4_0 with
-                                       | UIDENT "GLOBAL" -> (() : 'e__10)
+                                       | UIDENT "GLOBAL" -> (() : 'e__17)
                                        | _ -> assert false)));
                                 ([ Gram.Stoken
                                      (((function
@@ -11372,7 +12089,7 @@ module G =
                                     (fun (__camlp4_0 : Gram.Token.t)
                                        (_loc : Gram.Loc.t) ->
                                        match __camlp4_0 with
-                                       | LIDENT ((_)) -> (() : 'e__10)
+                                       | LIDENT ((_)) -> (() : 'e__17)
                                        | _ -> assert false))) ] ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
@@ -11396,7 +12113,9 @@ module G =
                              (fun (xs : 'qualuid) _ (x : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 (let x = Gram.Token.extract_string x
-                                 in Ast.IdAcc (_loc, Ast.IdUid (_loc, x), xs) :
+                                 in
+                                   Ast.IdAcc (_loc, (Ast.IdUid (_loc, x)),
+                                     xs) :
                                   'qualuid)))) ]) ]))
                   ());
              Gram.extend (qualuid : 'qualuid Gram.Entry.t)
@@ -11413,7 +12132,7 @@ module G =
                                     (fun (__camlp4_0 : Gram.Token.t)
                                        (_loc : Gram.Loc.t) ->
                                        match __camlp4_0 with
-                                       | UIDENT "GLOBAL" -> (() : 'e__11)
+                                       | UIDENT "GLOBAL" -> (() : 'e__18)
                                        | _ -> assert false)));
                                 ([ Gram.Stoken
                                      (((function
@@ -11424,7 +12143,7 @@ module G =
                                     (fun (__camlp4_0 : Gram.Token.t)
                                        (_loc : Gram.Loc.t) ->
                                        match __camlp4_0 with
-                                       | LIDENT ((_)) -> (() : 'e__11)
+                                       | LIDENT ((_)) -> (() : 'e__18)
                                        | _ -> assert false))) ] ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
@@ -11448,7 +12167,9 @@ module G =
                              (fun (xs : 'qualuid) _ (x : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 (let x = Gram.Token.extract_string x
-                                 in Ast.IdAcc (_loc, Ast.IdUid (_loc, x), xs) :
+                                 in
+                                   Ast.IdAcc (_loc, (Ast.IdUid (_loc, x)),
+                                     xs) :
                                   'qualuid)))) ]) ]))
                   ());
              Gram.extend (qualid : 'qualid Gram.Entry.t)
@@ -11477,7 +12198,9 @@ module G =
                              (fun (xs : 'qualid) _ (x : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 (let x = Gram.Token.extract_string x
-                                 in Ast.IdAcc (_loc, Ast.IdUid (_loc, x), xs) :
+                                 in
+                                   Ast.IdAcc (_loc, (Ast.IdUid (_loc, x)),
+                                     xs) :
                                   'qualid)))) ]) ]))
                   ());
              Gram.extend (t_qualid : 't_qualid Gram.Entry.t)
@@ -11524,7 +12247,9 @@ module G =
                              (fun (xs : 't_qualid) _ (x : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 (let x = Gram.Token.extract_string x
-                                 in Ast.IdAcc (_loc, Ast.IdUid (_loc, x), xs) :
+                                 in
+                                   Ast.IdAcc (_loc, (Ast.IdUid (_loc, x)),
+                                     xs) :
                                   't_qualid)))) ]) ]))
                   ());
              Gram.extend (global : 'global Gram.Entry.t)
@@ -11588,14 +12313,15 @@ module G =
                                 match __camlp4_0 with
                                 | UIDENT "LEVEL" ->
                                     (Ast.ExApp (_loc,
-                                       Ast.ExId (_loc,
-                                         Ast.IdAcc (_loc,
-                                           Ast.IdUid (_loc, "Camlp4"),
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Sig"),
-                                             Ast.IdAcc (_loc,
-                                               Ast.IdUid (_loc, "Grammar"),
-                                               Ast.IdUid (_loc, "Level"))))),
+                                       (Ast.ExId (_loc,
+                                          (Ast.IdAcc (_loc,
+                                             (Ast.IdUid (_loc, "Camlp4")),
+                                             (Ast.IdAcc (_loc,
+                                                (Ast.IdUid (_loc, "Sig")),
+                                                (Ast.IdAcc (_loc,
+                                                   (Ast.IdUid (_loc,
+                                                      "Grammar")),
+                                                   (Ast.IdUid (_loc, "Level")))))))))),
                                        n) :
                                       'position)
                                 | _ -> assert false)));
@@ -11612,14 +12338,15 @@ module G =
                                 match __camlp4_0 with
                                 | UIDENT "AFTER" ->
                                     (Ast.ExApp (_loc,
-                                       Ast.ExId (_loc,
-                                         Ast.IdAcc (_loc,
-                                           Ast.IdUid (_loc, "Camlp4"),
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Sig"),
-                                             Ast.IdAcc (_loc,
-                                               Ast.IdUid (_loc, "Grammar"),
-                                               Ast.IdUid (_loc, "After"))))),
+                                       (Ast.ExId (_loc,
+                                          (Ast.IdAcc (_loc,
+                                             (Ast.IdUid (_loc, "Camlp4")),
+                                             (Ast.IdAcc (_loc,
+                                                (Ast.IdUid (_loc, "Sig")),
+                                                (Ast.IdAcc (_loc,
+                                                   (Ast.IdUid (_loc,
+                                                      "Grammar")),
+                                                   (Ast.IdUid (_loc, "After")))))))))),
                                        n) :
                                       'position)
                                 | _ -> assert false)));
@@ -11636,14 +12363,16 @@ module G =
                                 match __camlp4_0 with
                                 | UIDENT "BEFORE" ->
                                     (Ast.ExApp (_loc,
-                                       Ast.ExId (_loc,
-                                         Ast.IdAcc (_loc,
-                                           Ast.IdUid (_loc, "Camlp4"),
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Sig"),
-                                             Ast.IdAcc (_loc,
-                                               Ast.IdUid (_loc, "Grammar"),
-                                               Ast.IdUid (_loc, "Before"))))),
+                                       (Ast.ExId (_loc,
+                                          (Ast.IdAcc (_loc,
+                                             (Ast.IdUid (_loc, "Camlp4")),
+                                             (Ast.IdAcc (_loc,
+                                                (Ast.IdUid (_loc, "Sig")),
+                                                (Ast.IdAcc (_loc,
+                                                   (Ast.IdUid (_loc,
+                                                      "Grammar")),
+                                                   (Ast.IdUid (_loc,
+                                                      "Before")))))))))),
                                        n) :
                                       'position)
                                 | _ -> assert false)));
@@ -11658,13 +12387,13 @@ module G =
                                 match __camlp4_0 with
                                 | UIDENT "LAST" ->
                                     (Ast.ExId (_loc,
-                                       Ast.IdAcc (_loc,
-                                         Ast.IdUid (_loc, "Camlp4"),
-                                         Ast.IdAcc (_loc,
-                                           Ast.IdUid (_loc, "Sig"),
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Grammar"),
-                                             Ast.IdUid (_loc, "Last"))))) :
+                                       (Ast.IdAcc (_loc,
+                                          (Ast.IdUid (_loc, "Camlp4")),
+                                          (Ast.IdAcc (_loc,
+                                             (Ast.IdUid (_loc, "Sig")),
+                                             (Ast.IdAcc (_loc,
+                                                (Ast.IdUid (_loc, "Grammar")),
+                                                (Ast.IdUid (_loc, "Last"))))))))) :
                                       'position)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -11678,13 +12407,13 @@ module G =
                                 match __camlp4_0 with
                                 | UIDENT "FIRST" ->
                                     (Ast.ExId (_loc,
-                                       Ast.IdAcc (_loc,
-                                         Ast.IdUid (_loc, "Camlp4"),
-                                         Ast.IdAcc (_loc,
-                                           Ast.IdUid (_loc, "Sig"),
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Grammar"),
-                                             Ast.IdUid (_loc, "First"))))) :
+                                       (Ast.IdAcc (_loc,
+                                          (Ast.IdUid (_loc, "Camlp4")),
+                                          (Ast.IdAcc (_loc,
+                                             (Ast.IdUid (_loc, "Sig")),
+                                             (Ast.IdAcc (_loc,
+                                                (Ast.IdUid (_loc, "Grammar")),
+                                                (Ast.IdUid (_loc, "First"))))))))) :
                                       'position)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -11694,10 +12423,10 @@ module G =
                     [ (None, None,
                        [ ([ Gram.Skeyword "[";
                             Gram.Slist0sep
-                              (Gram.Snterm
-                                 (Gram.Entry.obj
-                                    (level : 'level Gram.Entry.t)),
-                              Gram.Skeyword "|");
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj
+                                     (level : 'level Gram.Entry.t))),
+                              (Gram.Skeyword "|"));
                             Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ (ll : 'level list) _ (_loc : Gram.Loc.t)
@@ -11719,7 +12448,7 @@ module G =
                                           (_loc : Gram.Loc.t) ->
                                           (let x =
                                              Gram.Token.extract_string x
-                                           in x : 'e__12)))) ]);
+                                           in x : 'e__19)))) ]);
                             Gram.Sopt
                               (Gram.Snterm
                                  (Gram.Entry.obj
@@ -11729,7 +12458,7 @@ module G =
                                  (rule_list : 'rule_list Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (rules : 'rule_list) (ass : 'assoc option)
-                                (lab : 'e__12 option) (_loc : Gram.Loc.t) ->
+                                (lab : 'e__19 option) (_loc : Gram.Loc.t) ->
                                 ({ label = lab; assoc = ass; rules = rules; } :
                                   'level)))) ]) ]))
                   ());
@@ -11748,13 +12477,13 @@ module G =
                                 match __camlp4_0 with
                                 | UIDENT "NONA" ->
                                     (Ast.ExId (_loc,
-                                       Ast.IdAcc (_loc,
-                                         Ast.IdUid (_loc, "Camlp4"),
-                                         Ast.IdAcc (_loc,
-                                           Ast.IdUid (_loc, "Sig"),
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Grammar"),
-                                             Ast.IdUid (_loc, "NonA"))))) :
+                                       (Ast.IdAcc (_loc,
+                                          (Ast.IdUid (_loc, "Camlp4")),
+                                          (Ast.IdAcc (_loc,
+                                             (Ast.IdUid (_loc, "Sig")),
+                                             (Ast.IdAcc (_loc,
+                                                (Ast.IdUid (_loc, "Grammar")),
+                                                (Ast.IdUid (_loc, "NonA"))))))))) :
                                       'assoc)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -11768,13 +12497,13 @@ module G =
                                 match __camlp4_0 with
                                 | UIDENT "RIGHTA" ->
                                     (Ast.ExId (_loc,
-                                       Ast.IdAcc (_loc,
-                                         Ast.IdUid (_loc, "Camlp4"),
-                                         Ast.IdAcc (_loc,
-                                           Ast.IdUid (_loc, "Sig"),
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Grammar"),
-                                             Ast.IdUid (_loc, "RightA"))))) :
+                                       (Ast.IdAcc (_loc,
+                                          (Ast.IdUid (_loc, "Camlp4")),
+                                          (Ast.IdAcc (_loc,
+                                             (Ast.IdUid (_loc, "Sig")),
+                                             (Ast.IdAcc (_loc,
+                                                (Ast.IdUid (_loc, "Grammar")),
+                                                (Ast.IdUid (_loc, "RightA"))))))))) :
                                       'assoc)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -11788,13 +12517,13 @@ module G =
                                 match __camlp4_0 with
                                 | UIDENT "LEFTA" ->
                                     (Ast.ExId (_loc,
-                                       Ast.IdAcc (_loc,
-                                         Ast.IdUid (_loc, "Camlp4"),
-                                         Ast.IdAcc (_loc,
-                                           Ast.IdUid (_loc, "Sig"),
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Grammar"),
-                                             Ast.IdUid (_loc, "LeftA"))))) :
+                                       (Ast.IdAcc (_loc,
+                                          (Ast.IdUid (_loc, "Camlp4")),
+                                          (Ast.IdAcc (_loc,
+                                             (Ast.IdUid (_loc, "Sig")),
+                                             (Ast.IdAcc (_loc,
+                                                (Ast.IdUid (_loc, "Grammar")),
+                                                (Ast.IdUid (_loc, "LeftA"))))))))) :
                                       'assoc)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -11804,9 +12533,9 @@ module G =
                     [ (None, None,
                        [ ([ Gram.Skeyword "[";
                             Gram.Slist1sep
-                              (Gram.Snterm
-                                 (Gram.Entry.obj (rule : 'rule Gram.Entry.t)),
-                              Gram.Skeyword "|");
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj (rule : 'rule Gram.Entry.t))),
+                              (Gram.Skeyword "|"));
                             Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ (rules : 'rule list) _
@@ -11823,22 +12552,22 @@ module G =
                    (None,
                     [ (None, None,
                        [ ([ Gram.Slist0sep
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj
+                                     (psymbol : 'psymbol Gram.Entry.t))),
                               (Gram.Snterm
                                  (Gram.Entry.obj
-                                    (psymbol : 'psymbol Gram.Entry.t)),
-                              Gram.Snterm
-                                (Gram.Entry.obj
-                                   (semi_sep : 'semi_sep Gram.Entry.t))) ],
+                                    (semi_sep : 'semi_sep Gram.Entry.t)))) ],
                           (Gram.Action.mk
                              (fun (psl : 'psymbol list) (_loc : Gram.Loc.t)
                                 -> ({ prod = psl; action = None; } : 'rule))));
                          ([ Gram.Slist0sep
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj
+                                     (psymbol : 'psymbol Gram.Entry.t))),
                               (Gram.Snterm
                                  (Gram.Entry.obj
-                                    (psymbol : 'psymbol Gram.Entry.t)),
-                              Gram.Snterm
-                                (Gram.Entry.obj
-                                   (semi_sep : 'semi_sep Gram.Entry.t)));
+                                    (semi_sep : 'semi_sep Gram.Entry.t))));
                             Gram.Skeyword "->";
                             Gram.Snterm
                               (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ],
@@ -11873,8 +12602,8 @@ module G =
                                      ->
                                      mk_tok _loc
                                        (Ast.PaApp (_loc,
-                                          Ast.PaId (_loc,
-                                            Ast.IdUid (_loc, u)),
+                                          (Ast.PaId (_loc,
+                                             (Ast.IdUid (_loc, u)))),
                                           p))
                                        s.styp
                                  | _ -> { (s) with pattern = Some p; } :
@@ -11902,10 +12631,10 @@ module G =
                                           | UIDENT "LEVEL" ->
                                               (let s =
                                                  Gram.Token.extract_string s
-                                               in s : 'e__13)
+                                               in s : 'e__20)
                                           | _ -> assert false))) ]) ],
                           (Gram.Action.mk
-                             (fun (lev : 'e__13 option) (i : Gram.Token.t)
+                             (fun (lev : 'e__20 option) (i : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 (let i = Gram.Token.extract_string i in
                                  let name =
@@ -11940,19 +12669,21 @@ module G =
                                        ->
                                        let match_fun =
                                          Ast.ExFun (_loc,
-                                           Ast.McOr (_loc,
-                                             Ast.McArr (_loc, p',
-                                               Ast.ExNil _loc,
-                                               Ast.ExId (_loc,
-                                                 Ast.IdUid (_loc, "True"))),
-                                             Ast.McArr (_loc, Ast.PaAny _loc,
-                                               Ast.ExNil _loc,
-                                               Ast.ExId (_loc,
-                                                 Ast.IdUid (_loc, "False"))))) in
+                                           (Ast.McOr (_loc,
+                                              (Ast.McArr (_loc, p',
+                                                 (Ast.ExNil _loc),
+                                                 (Ast.ExId (_loc,
+                                                    (Ast.IdUid (_loc, "True")))))),
+                                              (Ast.McArr (_loc,
+                                                 (Ast.PaAny _loc),
+                                                 (Ast.ExNil _loc),
+                                                 (Ast.ExId (_loc,
+                                                    (Ast.IdUid (_loc,
+                                                       "False"))))))))) in
                                        let p' =
                                          Ast.PaAli (_loc, p',
-                                           Ast.PaId (_loc,
-                                             Ast.IdLid (_loc, p))) in
+                                           (Ast.PaId (_loc,
+                                              (Ast.IdLid (_loc, p))))) in
                                        let descr = u ^ " _" in
                                        let text =
                                          TXtok (_loc, match_fun, descr)
@@ -11970,7 +12701,7 @@ module G =
                                          pattern =
                                            Some
                                              (Ast.PaId (_loc,
-                                                Ast.IdLid (_loc, p)));
+                                                (Ast.IdLid (_loc, p))));
                                        } :
                                   'psymbol)))) ]) ]))
                   ());
@@ -11979,6 +12710,25 @@ module G =
                    (None,
                     [ ((Some "top"), (Some Camlp4.Sig.Grammar.NonA),
                        [ ([ Gram.Stoken
+                              (((function | UIDENT "TRY" -> true | _ -> false),
+                                "UIDENT \"TRY\""));
+                            Gram.Sself ],
+                          (Gram.Action.mk
+                             (fun (s : 'symbol) (__camlp4_0 : Gram.Token.t)
+                                (_loc : Gram.Loc.t) ->
+                                match __camlp4_0 with
+                                | UIDENT "TRY" ->
+                                    (let text = TXtry (_loc, s.text)
+                                     in
+                                       {
+                                         used = s.used;
+                                         text = text;
+                                         styp = s.styp;
+                                         pattern = None;
+                                       } :
+                                      'symbol)
+                                | _ -> assert false)));
+                         ([ Gram.Stoken
                               (((function | UIDENT "OPT" -> true | _ -> false),
                                 "UIDENT \"OPT\""));
                             Gram.Sself ],
@@ -11989,7 +12739,7 @@ module G =
                                 | UIDENT "OPT" ->
                                     (let () = check_not_tok s in
                                      let styp =
-                                       STapp (_loc, STlid (_loc, "option"),
+                                       STapp (_loc, (STlid (_loc, "option")),
                                          s.styp) in
                                      let text = TXopt (_loc, s.text)
                                      in
@@ -12022,10 +12772,10 @@ module G =
                                           (__camlp4_0 : Gram.Token.t)
                                           (_loc : Gram.Loc.t) ->
                                           match __camlp4_0 with
-                                          | UIDENT "SEP" -> (t : 'e__15)
+                                          | UIDENT "SEP" -> (t : 'e__22)
                                           | _ -> assert false))) ]) ],
                           (Gram.Action.mk
-                             (fun (sep : 'e__15 option) (s : 'symbol)
+                             (fun (sep : 'e__22 option) (s : 'symbol)
                                 (__camlp4_0 : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
@@ -12036,7 +12786,7 @@ module G =
                                         | Some symb -> symb.used @ s.used
                                         | None -> s.used) in
                                      let styp =
-                                       STapp (_loc, STlid (_loc, "list"),
+                                       STapp (_loc, (STlid (_loc, "list")),
                                          s.styp) in
                                      let text = slist _loc true sep s
                                      in
@@ -12069,10 +12819,10 @@ module G =
                                           (__camlp4_0 : Gram.Token.t)
                                           (_loc : Gram.Loc.t) ->
                                           match __camlp4_0 with
-                                          | UIDENT "SEP" -> (t : 'e__14)
+                                          | UIDENT "SEP" -> (t : 'e__21)
                                           | _ -> assert false))) ]) ],
                           (Gram.Action.mk
-                             (fun (sep : 'e__14 option) (s : 'symbol)
+                             (fun (sep : 'e__21 option) (s : 'symbol)
                                 (__camlp4_0 : Gram.Token.t)
                                 (_loc : Gram.Loc.t) ->
                                 match __camlp4_0 with
@@ -12083,7 +12833,7 @@ module G =
                                         | Some symb -> symb.used @ s.used
                                         | None -> s.used) in
                                      let styp =
-                                       STapp (_loc, STlid (_loc, "list"),
+                                       STapp (_loc, (STlid (_loc, "list")),
                                          s.styp) in
                                      let text = slist _loc false sep s
                                      in
@@ -12122,10 +12872,10 @@ module G =
                                           | UIDENT "LEVEL" ->
                                               (let s =
                                                  Gram.Token.extract_string s
-                                               in s : 'e__17)
+                                               in s : 'e__24)
                                           | _ -> assert false))) ]) ],
                           (Gram.Action.mk
-                             (fun (lev : 'e__17 option) (n : 'name)
+                             (fun (lev : 'e__24 option) (n : 'name)
                                 (_loc : Gram.Loc.t) ->
                                 ({
                                    used = [ n.tvar ];
@@ -12159,15 +12909,15 @@ module G =
                                           | UIDENT "LEVEL" ->
                                               (let s =
                                                  Gram.Token.extract_string s
-                                               in s : 'e__16)
+                                               in s : 'e__23)
                                           | _ -> assert false))) ]) ],
                           (Gram.Action.mk
-                             (fun (lev : 'e__16 option) (il : 'qualid) _
+                             (fun (lev : 'e__23 option) (il : 'qualid) _
                                 (i : Gram.Token.t) (_loc : Gram.Loc.t) ->
                                 (let i = Gram.Token.extract_string i in
                                  let n =
                                    mk_name _loc
-                                     (Ast.IdAcc (_loc, Ast.IdUid (_loc, i),
+                                     (Ast.IdAcc (_loc, (Ast.IdUid (_loc, i)),
                                         il))
                                  in
                                    {
@@ -12209,34 +12959,38 @@ module G =
                                        AntiquotSyntax.parse_expr _loc s in
                                      let match_fun =
                                        Ast.ExFun (_loc,
-                                         Ast.McOr (_loc,
-                                           Ast.McArr (_loc,
-                                             Ast.PaApp (_loc,
-                                               Ast.PaId (_loc,
-                                                 Ast.IdUid (_loc, x)),
-                                               Ast.PaId (_loc,
-                                                 Ast.IdLid (_loc, "camlp4_x"))),
-                                             Ast.ExApp (_loc,
-                                               Ast.ExApp (_loc,
-                                                 Ast.ExId (_loc,
-                                                   Ast.IdLid (_loc, "=")),
-                                                 Ast.ExId (_loc,
-                                                   Ast.IdLid (_loc,
-                                                     "camlp4_x"))),
-                                               e),
-                                             Ast.ExId (_loc,
-                                               Ast.IdUid (_loc, "True"))),
-                                           Ast.McArr (_loc, Ast.PaAny _loc,
-                                             Ast.ExNil _loc,
-                                             Ast.ExId (_loc,
-                                               Ast.IdUid (_loc, "False"))))) in
+                                         (Ast.McOr (_loc,
+                                            (Ast.McArr (_loc,
+                                               (Ast.PaApp (_loc,
+                                                  (Ast.PaId (_loc,
+                                                     (Ast.IdUid (_loc, x)))),
+                                                  (Ast.PaId (_loc,
+                                                     (Ast.IdLid (_loc,
+                                                        "camlp4_x")))))),
+                                               (Ast.ExApp (_loc,
+                                                  (Ast.ExApp (_loc,
+                                                     (Ast.ExId (_loc,
+                                                        (Ast.IdLid (_loc,
+                                                           "=")))),
+                                                     (Ast.ExId (_loc,
+                                                        (Ast.IdLid (_loc,
+                                                           "camlp4_x")))))),
+                                                  e)),
+                                               (Ast.ExId (_loc,
+                                                  (Ast.IdUid (_loc, "True")))))),
+                                            (Ast.McArr (_loc,
+                                               (Ast.PaAny _loc),
+                                               (Ast.ExNil _loc),
+                                               (Ast.ExId (_loc,
+                                                  (Ast.IdUid (_loc, "False"))))))))) in
                                      let descr = "$" ^ (x ^ (" " ^ s)) in
                                      let text =
                                        TXtok (_loc, match_fun, descr) in
                                      let p =
                                        Ast.PaApp (_loc,
-                                         Ast.PaId (_loc, Ast.IdUid (_loc, x)),
-                                         Ast.PaTup (_loc, Ast.PaAny _loc))
+                                         (Ast.PaId (_loc,
+                                            (Ast.IdUid (_loc, x)))),
+                                         (Ast.PaTup (_loc, (Ast.PaAny _loc))))
                                      in
                                        {
                                          used = [];
@@ -12260,8 +13014,9 @@ module G =
                                  in
                                    mk_tok _loc
                                      (Ast.PaApp (_loc,
-                                        Ast.PaId (_loc, Ast.IdUid (_loc, x)),
-                                        Ast.PaStr (_loc, s)))
+                                        (Ast.PaId (_loc,
+                                           (Ast.IdUid (_loc, x)))),
+                                        (Ast.PaStr (_loc, s))))
                                      (STtok _loc) :
                                   'symbol))));
                          ([ Gram.Stoken
@@ -12273,8 +13028,9 @@ module G =
                                  in
                                    mk_tok _loc
                                      (Ast.PaApp (_loc,
-                                        Ast.PaId (_loc, Ast.IdUid (_loc, x)),
-                                        Ast.PaTup (_loc, Ast.PaAny _loc)))
+                                        (Ast.PaId (_loc,
+                                           (Ast.IdUid (_loc, x)))),
+                                        (Ast.PaTup (_loc, (Ast.PaAny _loc)))))
                                      (STstring_tok _loc) :
                                   'symbol))));
                          ([ Gram.Skeyword "`";
@@ -12285,9 +13041,9 @@ module G =
                                 (mk_tok _loc p (STtok _loc) : 'symbol))));
                          ([ Gram.Skeyword "[";
                             Gram.Slist0sep
-                              (Gram.Snterm
-                                 (Gram.Entry.obj (rule : 'rule Gram.Entry.t)),
-                              Gram.Skeyword "|");
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj (rule : 'rule Gram.Entry.t))),
+                              (Gram.Skeyword "|"));
                             Gram.Skeyword "]" ],
                           (Gram.Action.mk
                              (fun _ (rl : 'rule list) _ (_loc : Gram.Loc.t)
@@ -12299,7 +13055,7 @@ module G =
                                    {
                                      used = used_of_rule_list rl;
                                      text =
-                                       TXrules (_loc, srules _loc t rl "");
+                                       TXrules (_loc, (srules _loc t rl ""));
                                      styp = STquo (_loc, t);
                                      pattern = None;
                                    } :
@@ -12351,7 +13107,7 @@ module G =
                           (Gram.Action.mk
                              (fun _ (p2 : 'comma_patt) _ (p1 : 'pattern) _
                                 (_loc : Gram.Loc.t) ->
-                                (Ast.PaTup (_loc, Ast.PaCom (_loc, p1, p2)) :
+                                (Ast.PaTup (_loc, (Ast.PaCom (_loc, p1, p2))) :
                                   'pattern))));
                          ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ")" ],
                           (Gram.Action.mk
@@ -12367,7 +13123,7 @@ module G =
                           (Gram.Action.mk
                              (fun (i : Gram.Token.t) (_loc : Gram.Loc.t) ->
                                 (let i = Gram.Token.extract_string i
-                                 in Ast.PaId (_loc, Ast.IdLid (_loc, i)) :
+                                 in Ast.PaId (_loc, (Ast.IdLid (_loc, i))) :
                                   'pattern)))) ]) ]))
                   ());
              Gram.extend (comma_patt : 'comma_patt Gram.Entry.t)
@@ -12443,25 +13199,25 @@ module G =
   END;
   *)
         let sfold _loc n foldfun f e s =
-          let styp = STquo (_loc, new_type_var ()) in
+          let styp = STquo (_loc, (new_type_var ())) in
           let e =
             Ast.ExApp (_loc,
-              Ast.ExApp (_loc,
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                    Ast.IdLid (_loc, foldfun))),
-                f),
+              (Ast.ExApp (_loc,
+                 (Ast.ExId (_loc,
+                    (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                       (Ast.IdLid (_loc, foldfun)))))),
+                 f)),
               e) in
           let t =
             STapp (_loc,
-              STapp (_loc,
-                STtyp
-                  (Ast.TyApp (_loc,
-                     Ast.TyId (_loc,
-                       Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                         Ast.IdLid (_loc, "fold"))),
-                     Ast.TyAny _loc)),
-                s.styp),
+              (STapp (_loc,
+                 (STtyp
+                    (Ast.TyApp (_loc,
+                       (Ast.TyId (_loc,
+                          (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                             (Ast.IdLid (_loc, "fold")))))),
+                       (Ast.TyAny _loc)))),
+                 s.styp)),
               styp)
           in
             {
@@ -12472,25 +13228,25 @@ module G =
             }
           
         let sfoldsep _loc n foldfun f e s sep =
-          let styp = STquo (_loc, new_type_var ()) in
+          let styp = STquo (_loc, (new_type_var ())) in
           let e =
             Ast.ExApp (_loc,
-              Ast.ExApp (_loc,
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                    Ast.IdLid (_loc, foldfun))),
-                f),
+              (Ast.ExApp (_loc,
+                 (Ast.ExId (_loc,
+                    (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                       (Ast.IdLid (_loc, foldfun)))))),
+                 f)),
               e) in
           let t =
             STapp (_loc,
-              STapp (_loc,
-                STtyp
-                  (Ast.TyApp (_loc,
-                     Ast.TyId (_loc,
-                       Ast.IdAcc (_loc, Ast.IdUid (_loc, gm),
-                         Ast.IdLid (_loc, "foldsep"))),
-                     Ast.TyAny _loc)),
-                s.styp),
+              (STapp (_loc,
+                 (STtyp
+                    (Ast.TyApp (_loc,
+                       (Ast.TyId (_loc,
+                          (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)),
+                             (Ast.IdLid (_loc, "foldsep")))))),
+                       (Ast.TyAny _loc)))),
+                 s.styp)),
               styp)
           in
             {
@@ -12627,7 +13383,7 @@ module G =
                                  (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun (i : 'a_LIDENT) (_loc : Gram.Loc.t) ->
-                                (Ast.ExId (_loc, Ast.IdLid (_loc, i)) :
+                                (Ast.ExId (_loc, (Ast.IdLid (_loc, i))) :
                                   'simple_expr)))) ]) ]))
                   ()))
           
@@ -12773,26 +13529,26 @@ Added statements:
         let substp _loc env =
           let rec loop =
             function
-            | Ast.ExApp (_, e1, e2) -> Ast.PaApp (_loc, loop e1, loop e2)
+            | Ast.ExApp (_, e1, e2) -> Ast.PaApp (_loc, (loop e1), (loop e2))
             | Ast.ExNil _ -> Ast.PaNil _loc
             | Ast.ExId (_, (Ast.IdLid (_, x))) ->
                 (try List.assoc x env
-                 with | Not_found -> Ast.PaId (_loc, Ast.IdLid (_loc, x)))
+                 with | Not_found -> Ast.PaId (_loc, (Ast.IdLid (_loc, x))))
             | Ast.ExId (_, (Ast.IdUid (_, x))) ->
                 (try List.assoc x env
-                 with | Not_found -> Ast.PaId (_loc, Ast.IdUid (_loc, x)))
+                 with | Not_found -> Ast.PaId (_loc, (Ast.IdUid (_loc, x))))
             | Ast.ExInt (_, x) -> Ast.PaInt (_loc, x)
             | Ast.ExStr (_, s) -> Ast.PaStr (_loc, s)
-            | Ast.ExTup (_, x) -> Ast.PaTup (_loc, loop x)
-            | Ast.ExCom (_, x1, x2) -> Ast.PaCom (_loc, loop x1, loop x2)
+            | Ast.ExTup (_, x) -> Ast.PaTup (_loc, (loop x))
+            | Ast.ExCom (_, x1, x2) -> Ast.PaCom (_loc, (loop x1), (loop x2))
             | Ast.ExRec (_, bi, (Ast.ExNil _)) ->
                 let rec substbi =
                   (function
                    | Ast.RbSem (_, b1, b2) ->
-                       Ast.PaSem (_loc, substbi b1, substbi b2)
-                   | Ast.RbEq (_, i, e) -> Ast.PaEq (_loc, i, loop e)
+                       Ast.PaSem (_loc, (substbi b1), (substbi b2))
+                   | Ast.RbEq (_, i, e) -> Ast.PaEq (_loc, i, (loop e))
                    | _ -> bad_patt _loc)
-                in Ast.PaRec (_loc, substbi bi)
+                in Ast.PaRec (_loc, (substbi bi))
             | _ -> bad_patt _loc
           in loop
           
@@ -13314,7 +14070,7 @@ Added statements:
                               (Gram.Entry.obj (endif : 'endif Gram.Entry.t)) ],
                           (Gram.Action.mk
                              (fun _ (_loc : Gram.Loc.t) ->
-                                (Ast.ExId (_loc, Ast.IdUid (_loc, "()")) :
+                                (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) :
                                   'else_expr))));
                          ([ Gram.Skeyword "ELSE";
                             Gram.Snterm
@@ -13341,7 +14097,7 @@ Added statements:
                                     (Gram.Action.mk
                                        (fun _ (si : 'str_item)
                                           (_loc : Gram.Loc.t) ->
-                                          (SdStr si : 'e__18))));
+                                          (SdStr si : 'e__25))));
                                    ([ Gram.Snterm
                                         (Gram.Entry.obj
                                            (macro_def :
@@ -13357,9 +14113,9 @@ Added statements:
                                              (fun a b ->
                                                 Ast.StSem (_loc, a, b))
                                              Then d :
-                                            'e__18)))) ]) ],
+                                            'e__25)))) ]) ],
                           (Gram.Action.mk
-                             (fun (sml : 'e__18 list) (_loc : Gram.Loc.t) ->
+                             (fun (sml : 'e__25 list) (_loc : Gram.Loc.t) ->
                                 (sml : 'smlist_then)))) ]) ]))
                   ());
              Gram.extend (smlist_else : 'smlist_else Gram.Entry.t)
@@ -13378,7 +14134,7 @@ Added statements:
                                     (Gram.Action.mk
                                        (fun _ (si : 'str_item)
                                           (_loc : Gram.Loc.t) ->
-                                          (SdStr si : 'e__19))));
+                                          (SdStr si : 'e__26))));
                                    ([ Gram.Snterm
                                         (Gram.Entry.obj
                                            (macro_def :
@@ -13394,9 +14150,9 @@ Added statements:
                                              (fun a b ->
                                                 Ast.StSem (_loc, a, b))
                                              Else d :
-                                            'e__19)))) ]) ],
+                                            'e__26)))) ]) ],
                           (Gram.Action.mk
-                             (fun (sml : 'e__19 list) (_loc : Gram.Loc.t) ->
+                             (fun (sml : 'e__26 list) (_loc : Gram.Loc.t) ->
                                 (sml : 'smlist_else)))) ]) ]))
                   ());
              Gram.extend (sglist_then : 'sglist_then Gram.Entry.t)
@@ -13415,7 +14171,7 @@ Added statements:
                                     (Gram.Action.mk
                                        (fun _ (si : 'sig_item)
                                           (_loc : Gram.Loc.t) ->
-                                          (SdStr si : 'e__20))));
+                                          (SdStr si : 'e__27))));
                                    ([ Gram.Snterm
                                         (Gram.Entry.obj
                                            (macro_def_sig :
@@ -13431,9 +14187,9 @@ Added statements:
                                              (fun a b ->
                                                 Ast.SgSem (_loc, a, b))
                                              Then d :
-                                            'e__20)))) ]) ],
+                                            'e__27)))) ]) ],
                           (Gram.Action.mk
-                             (fun (sgl : 'e__20 list) (_loc : Gram.Loc.t) ->
+                             (fun (sgl : 'e__27 list) (_loc : Gram.Loc.t) ->
                                 (sgl : 'sglist_then)))) ]) ]))
                   ());
              Gram.extend (sglist_else : 'sglist_else Gram.Entry.t)
@@ -13452,7 +14208,7 @@ Added statements:
                                     (Gram.Action.mk
                                        (fun _ (si : 'sig_item)
                                           (_loc : Gram.Loc.t) ->
-                                          (SdStr si : 'e__21))));
+                                          (SdStr si : 'e__28))));
                                    ([ Gram.Snterm
                                         (Gram.Entry.obj
                                            (macro_def_sig :
@@ -13468,9 +14224,9 @@ Added statements:
                                              (fun a b ->
                                                 Ast.SgSem (_loc, a, b))
                                              Else d :
-                                            'e__21)))) ]) ],
+                                            'e__28)))) ]) ],
                           (Gram.Action.mk
-                             (fun (sgl : 'e__21 list) (_loc : Gram.Loc.t) ->
+                             (fun (sgl : 'e__28 list) (_loc : Gram.Loc.t) ->
                                 (sgl : 'sglist_else)))) ]) ]))
                   ());
              Gram.extend (endif : 'endif Gram.Entry.t)
@@ -13500,24 +14256,24 @@ Added statements:
                                 (Some (([], e)) : 'opt_macro_value))));
                          ([ Gram.Skeyword "(";
                             Gram.Slist1sep
-                              (Gram.srules opt_macro_value
-                                 [ ([ Gram.Stoken
-                                        (((function
-                                           | LIDENT ((_)) -> true
-                                           | _ -> false),
-                                          "LIDENT _")) ],
-                                    (Gram.Action.mk
-                                       (fun (x : Gram.Token.t)
-                                          (_loc : Gram.Loc.t) ->
-                                          (let x =
-                                             Gram.Token.extract_string x
-                                           in x : 'e__22)))) ],
-                              Gram.Skeyword ",");
+                              ((Gram.srules opt_macro_value
+                                  [ ([ Gram.Stoken
+                                         (((function
+                                            | LIDENT ((_)) -> true
+                                            | _ -> false),
+                                           "LIDENT _")) ],
+                                     (Gram.Action.mk
+                                        (fun (x : Gram.Token.t)
+                                           (_loc : Gram.Loc.t) ->
+                                           (let x =
+                                              Gram.Token.extract_string x
+                                            in x : 'e__29)))) ]),
+                              (Gram.Skeyword ","));
                             Gram.Skeyword ")"; Gram.Skeyword "=";
                             Gram.Snterm
                               (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ],
                           (Gram.Action.mk
-                             (fun (e : 'expr) _ _ (pl : 'e__22 list) _
+                             (fun (e : 'expr) _ _ (pl : 'e__29 list) _
                                 (_loc : Gram.Loc.t) ->
                                 (Some ((pl, e)) : 'opt_macro_value)))) ]) ]))
                   ());
@@ -13578,39 +14334,51 @@ Added statements:
                                        Loc.to_tuple _loc
                                      in
                                        Ast.ExApp (_loc,
-                                         Ast.ExId (_loc,
-                                           Ast.IdAcc (_loc,
-                                             Ast.IdUid (_loc, "Loc"),
-                                             Ast.IdLid (_loc, "of_tuple"))),
-                                         Ast.ExTup (_loc,
-                                           Ast.ExCom (_loc,
-                                             Ast.ExStr (_loc,
-                                               Ast.safe_string_escaped a),
-                                             Ast.ExCom (_loc,
-                                               Ast.ExCom (_loc,
-                                                 Ast.ExCom (_loc,
-                                                   Ast.ExCom (_loc,
-                                                     Ast.ExCom (_loc,
-                                                       Ast.ExCom (_loc,
-                                                         Ast.ExInt (_loc,
-                                                           string_of_int b),
-                                                         Ast.ExInt (_loc,
-                                                           string_of_int c)),
-                                                       Ast.ExInt (_loc,
-                                                         string_of_int d)),
-                                                     Ast.ExInt (_loc,
-                                                       string_of_int e)),
-                                                   Ast.ExInt (_loc,
-                                                     string_of_int f)),
-                                                 Ast.ExInt (_loc,
-                                                   string_of_int g)),
-                                               if h
-                                               then
-                                                 Ast.ExId (_loc,
-                                                   Ast.IdUid (_loc, "True"))
-                                               else
-                                                 Ast.ExId (_loc,
-                                                   Ast.IdUid (_loc, "False")))))) :
+                                         (Ast.ExId (_loc,
+                                            (Ast.IdAcc (_loc,
+                                               (Ast.IdUid (_loc, "Loc")),
+                                               (Ast.IdLid (_loc, "of_tuple")))))),
+                                         (Ast.ExTup (_loc,
+                                            (Ast.ExCom (_loc,
+                                               (Ast.ExStr (_loc,
+                                                  (Ast.safe_string_escaped a))),
+                                               (Ast.ExCom (_loc,
+                                                  (Ast.ExCom (_loc,
+                                                     (Ast.ExCom (_loc,
+                                                        (Ast.ExCom (_loc,
+                                                           (Ast.ExCom (_loc,
+                                                              (Ast.ExCom
+                                                                 (_loc,
+                                                                 (Ast.ExInt
+                                                                    (_loc,
+                                                                    (
+                                                                    string_of_int
+                                                                    b))),
+                                                                 (Ast.ExInt
+                                                                    (_loc,
+                                                                    (
+                                                                    string_of_int
+                                                                    c))))),
+                                                              (Ast.ExInt
+                                                                 (_loc,
+                                                                 (string_of_int
+                                                                    d))))),
+                                                           (Ast.ExInt (_loc,
+                                                              (string_of_int
+                                                                 e))))),
+                                                        (Ast.ExInt (_loc,
+                                                           (string_of_int f))))),
+                                                     (Ast.ExInt (_loc,
+                                                        (string_of_int g))))),
+                                                  (if h
+                                                   then
+                                                     Ast.ExId (_loc,
+                                                       (Ast.IdUid (_loc,
+                                                          "True")))
+                                                   else
+                                                     Ast.ExId (_loc,
+                                                       (Ast.IdUid (_loc,
+                                                          "False"))))))))))) :
                                       'expr)
                                 | _ -> assert false)));
                          ([ Gram.Stoken
@@ -13624,8 +14392,8 @@ Added statements:
                                 match __camlp4_0 with
                                 | LIDENT "__FILE__" ->
                                     (Ast.ExStr (_loc,
-                                       Ast.safe_string_escaped
-                                         (Loc.file_name _loc)) :
+                                       (Ast.safe_string_escaped
+                                          (Loc.file_name _loc))) :
                                       'expr)
                                 | _ -> assert false))) ]) ]))
                   ());
@@ -13775,30 +14543,30 @@ module D =
           function
           | None ->
               Ast.ExId (_loc,
-                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Debug"),
-                  Ast.IdLid (_loc, "mode")))
+                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Debug")),
+                   (Ast.IdLid (_loc, "mode")))))
           | Some m ->
               Ast.ExId (_loc,
-                Ast.IdAcc (_loc, Ast.IdUid (_loc, m),
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Debug"),
-                    Ast.IdLid (_loc, "mode"))))
+                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, m)),
+                   (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Debug")),
+                      (Ast.IdLid (_loc, "mode")))))))
           
         let mk_debug _loc m fmt section args =
           let call =
             apply
               (Ast.ExApp (_loc,
-                 Ast.ExApp (_loc,
-                   Ast.ExId (_loc,
-                     Ast.IdAcc (_loc, Ast.IdUid (_loc, "Debug"),
-                       Ast.IdLid (_loc, "printf"))),
-                   Ast.ExStr (_loc, section)),
-                 Ast.ExStr (_loc, fmt)))
+                 (Ast.ExApp (_loc,
+                    (Ast.ExId (_loc,
+                       (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Debug")),
+                          (Ast.IdLid (_loc, "printf")))))),
+                    (Ast.ExStr (_loc, section)))),
+                 (Ast.ExStr (_loc, fmt))))
               args
           in
             Ast.ExIfe (_loc,
-              Ast.ExApp (_loc, mk_debug_mode _loc m,
-                Ast.ExStr (_loc, section)),
-              call, Ast.ExId (_loc, Ast.IdUid (_loc, "()")))
+              (Ast.ExApp (_loc, (mk_debug_mode _loc m),
+                 (Ast.ExStr (_loc, section)))),
+              call, (Ast.ExId (_loc, (Ast.IdUid (_loc, "()")))))
           
         let _ =
           let _ = (expr : 'expr Gram.Entry.t) in
@@ -13823,7 +14591,7 @@ module D =
                                 "STRING _"));
                             Gram.Slist0
                               (Gram.Snterml
-                                 (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                                 ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                                  "."));
                             Gram.Snterm
                               (Gram.Entry.obj
@@ -13839,16 +14607,16 @@ module D =
                                    match (x, (debug_mode section)) with
                                    | (None, false) ->
                                        Ast.ExId (_loc,
-                                         Ast.IdUid (_loc, "()"))
+                                         (Ast.IdUid (_loc, "()")))
                                    | (Some e, false) -> e
                                    | (None, _) ->
                                        mk_debug _loc m fmt section args
                                    | (Some e, _) ->
-                                       Ast.ExLet (_loc, Ast.BFalse,
-                                         Ast.BiEq (_loc,
-                                           Ast.PaId (_loc,
-                                             Ast.IdUid (_loc, "()")),
-                                           mk_debug _loc m fmt section args),
+                                       Ast.ExLet (_loc, Ast.ReNil,
+                                         (Ast.BiEq (_loc,
+                                            (Ast.PaId (_loc,
+                                               (Ast.IdUid (_loc, "()")))),
+                                            (mk_debug _loc m fmt section args))),
                                          e) :
                                   'expr)))) ]) ]))
                   ());
@@ -13983,79 +14751,88 @@ module L =
               if Ast.is_irrefut_patt p
               then
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExId (_loc,
-                      Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"),
-                        Ast.IdLid (_loc, "map"))),
-                    Ast.ExFun (_loc, Ast.McArr (_loc, p, Ast.ExNil _loc, e))),
+                  (Ast.ExApp (_loc,
+                     (Ast.ExId (_loc,
+                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")),
+                           (Ast.IdLid (_loc, "map")))))),
+                     (Ast.ExFun (_loc,
+                        (Ast.McArr (_loc, p, (Ast.ExNil _loc), e)))))),
                   l)
               else
                 Ast.ExApp (_loc,
-                  Ast.ExApp (_loc,
-                    Ast.ExApp (_loc,
-                      Ast.ExId (_loc,
-                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"),
-                          Ast.IdLid (_loc, "fold_right"))),
-                      Ast.ExFun (_loc,
-                        Ast.McOr (_loc,
-                          Ast.McArr (_loc, p,
-                            Ast.ExId (_loc, Ast.IdUid (_loc, "True")),
-                            Ast.ExApp (_loc,
-                              Ast.ExFun (_loc,
-                                Ast.McArr (_loc,
-                                  Ast.PaId (_loc, Ast.IdLid (_loc, "x")),
-                                  Ast.ExNil _loc,
-                                  Ast.ExFun (_loc,
-                                    Ast.McArr (_loc,
-                                      Ast.PaId (_loc, Ast.IdLid (_loc, "xs")),
-                                      Ast.ExNil _loc,
-                                      Ast.ExApp (_loc,
-                                        Ast.ExApp (_loc,
-                                          Ast.ExId (_loc,
-                                            Ast.IdUid (_loc, "::")),
-                                          Ast.ExId (_loc,
-                                            Ast.IdLid (_loc, "x"))),
-                                        Ast.ExId (_loc,
-                                          Ast.IdLid (_loc, "xs"))))))),
-                              e)),
-                          Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc,
-                            Ast.ExFun (_loc,
-                              Ast.McArr (_loc,
-                                Ast.PaId (_loc, Ast.IdLid (_loc, "l")),
-                                Ast.ExNil _loc,
-                                Ast.ExId (_loc, Ast.IdLid (_loc, "l")))))))),
-                    l),
-                  Ast.ExId (_loc, Ast.IdUid (_loc, "[]")))
+                  (Ast.ExApp (_loc,
+                     (Ast.ExApp (_loc,
+                        (Ast.ExId (_loc,
+                           (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")),
+                              (Ast.IdLid (_loc, "fold_right")))))),
+                        (Ast.ExFun (_loc,
+                           (Ast.McOr (_loc,
+                              (Ast.McArr (_loc, p,
+                                 (Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))),
+                                 (Ast.ExApp (_loc,
+                                    (Ast.ExFun (_loc,
+                                       (Ast.McArr (_loc,
+                                          (Ast.PaId (_loc,
+                                             (Ast.IdLid (_loc, "x")))),
+                                          (Ast.ExNil _loc),
+                                          (Ast.ExFun (_loc,
+                                             (Ast.McArr (_loc,
+                                                (Ast.PaId (_loc,
+                                                   (Ast.IdLid (_loc, "xs")))),
+                                                (Ast.ExNil _loc),
+                                                (Ast.ExApp (_loc,
+                                                   (Ast.ExApp (_loc,
+                                                      (Ast.ExId (_loc,
+                                                         (Ast.IdUid (_loc,
+                                                            "::")))),
+                                                      (Ast.ExId (_loc,
+                                                         (Ast.IdLid (_loc,
+                                                            "x")))))),
+                                                   (Ast.ExId (_loc,
+                                                      (Ast.IdLid (_loc, "xs")))))))))))))),
+                                    e)))),
+                              (Ast.McArr (_loc, (Ast.PaAny _loc),
+                                 (Ast.ExNil _loc),
+                                 (Ast.ExFun (_loc,
+                                    (Ast.McArr (_loc,
+                                       (Ast.PaId (_loc,
+                                          (Ast.IdLid (_loc, "l")))),
+                                       (Ast.ExNil _loc),
+                                       (Ast.ExId (_loc,
+                                          (Ast.IdLid (_loc, "l")))))))))))))))),
+                     l)),
+                  (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))))
           
         let filter _loc p b l =
           if Ast.is_irrefut_patt p
           then
             Ast.ExApp (_loc,
-              Ast.ExApp (_loc,
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"),
-                    Ast.IdLid (_loc, "filter"))),
-                Ast.ExFun (_loc, Ast.McArr (_loc, p, Ast.ExNil _loc, b))),
+              (Ast.ExApp (_loc,
+                 (Ast.ExId (_loc,
+                    (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")),
+                       (Ast.IdLid (_loc, "filter")))))),
+                 (Ast.ExFun (_loc,
+                    (Ast.McArr (_loc, p, (Ast.ExNil _loc), b)))))),
               l)
           else
             Ast.ExApp (_loc,
-              Ast.ExApp (_loc,
-                Ast.ExId (_loc,
-                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"),
-                    Ast.IdLid (_loc, "filter"))),
-                Ast.ExFun (_loc,
-                  Ast.McOr (_loc,
-                    Ast.McArr (_loc, p,
-                      Ast.ExId (_loc, Ast.IdUid (_loc, "True")), b),
-                    Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc,
-                      Ast.ExId (_loc, Ast.IdUid (_loc, "False")))))),
+              (Ast.ExApp (_loc,
+                 (Ast.ExId (_loc,
+                    (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")),
+                       (Ast.IdLid (_loc, "filter")))))),
+                 (Ast.ExFun (_loc,
+                    (Ast.McOr (_loc,
+                       (Ast.McArr (_loc, p,
+                          (Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))), b)),
+                       (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc),
+                          (Ast.ExId (_loc, (Ast.IdUid (_loc, "False")))))))))))),
               l)
           
         let concat _loc l =
           Ast.ExApp (_loc,
-            Ast.ExId (_loc,
-              Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"),
-                Ast.IdLid (_loc, "concat"))),
+            (Ast.ExId (_loc,
+               (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")),
+                  (Ast.IdLid (_loc, "concat")))))),
             l)
           
         let rec compr _loc e =
@@ -14121,43 +14898,45 @@ module L =
                    (None,
                     [ (None, None,
                        [ ([ Gram.Snterml
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                              ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                               "top") ],
                           (Gram.Action.mk
                              (fun (e : 'expr) (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                                     e),
-                                   Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) :
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdUid (_loc, "::")))),
+                                      e)),
+                                   (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))) :
                                   'comprehension_or_sem_expr_for_list))));
                          ([ Gram.Snterml
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                              ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                               "top");
                             Gram.Skeyword "|";
                             Gram.Slist1sep
-                              (Gram.Snterm
-                                 (Gram.Entry.obj (item : 'item Gram.Entry.t)),
-                              Gram.Skeyword ";") ],
+                              ((Gram.Snterm
+                                  (Gram.Entry.obj (item : 'item Gram.Entry.t))),
+                              (Gram.Skeyword ";")) ],
                           (Gram.Action.mk
                              (fun (l : 'item list) _ (e : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (compr _loc e l :
                                   'comprehension_or_sem_expr_for_list))));
                          ([ Gram.Snterml
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                              ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                               "top");
                             Gram.Skeyword ";" ],
                           (Gram.Action.mk
                              (fun _ (e : 'expr) (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                                     e),
-                                   Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) :
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdUid (_loc, "::")))),
+                                      e)),
+                                   (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))) :
                                   'comprehension_or_sem_expr_for_list))));
                          ([ Gram.Snterml
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                              ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                               "top");
                             Gram.Skeyword ";";
                             Gram.Snterm
@@ -14168,35 +14947,41 @@ module L =
                              (fun (mk : 'sem_expr_for_list) _ (e : 'expr)
                                 (_loc : Gram.Loc.t) ->
                                 (Ast.ExApp (_loc,
-                                   Ast.ExApp (_loc,
-                                     Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                                     e),
-                                   mk
-                                     (Ast.ExId (_loc, Ast.IdUid (_loc, "[]")))) :
+                                   (Ast.ExApp (_loc,
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdUid (_loc, "::")))),
+                                      e)),
+                                   (mk
+                                      (Ast.ExId (_loc,
+                                         (Ast.IdUid (_loc, "[]")))))) :
                                   'comprehension_or_sem_expr_for_list)))) ]) ]))
                   ());
              Gram.extend (item : 'item Gram.Entry.t)
                ((fun () ->
                    (None,
                     [ (None, None,
-                       [ ([ Gram.Snterml
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
-                              "top") ],
+                       [ ([ (* NP: These rules rely on being on this particular order. Which should
+             be improved. *)
+                          Gram.Snterml
+                            ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
+                            "top") ],
                           (Gram.Action.mk
                              (fun (e : 'expr) (_loc : Gram.Loc.t) ->
                                 (`cond e : 'item))));
-                         ([ Gram.Snterm
-                              (Gram.Entry.obj
-                                 (test_patt_lessminus :
-                                   'test_patt_lessminus Gram.Entry.t));
-                            Gram.Snterm
-                              (Gram.Entry.obj (patt : 'patt Gram.Entry.t));
-                            Gram.Skeyword "<-";
+                         ([ Gram.Stry
+                              (Gram.srules item
+                                 [ ([ Gram.Snterm
+                                        (Gram.Entry.obj
+                                           (patt : 'patt Gram.Entry.t));
+                                      Gram.Skeyword "<-" ],
+                                    (Gram.Action.mk
+                                       (fun _ (p : 'patt) (_loc : Gram.Loc.t)
+                                          -> (p : 'e__30)))) ]);
                             Gram.Snterml
-                              (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                              ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                               "top") ],
                           (Gram.Action.mk
-                             (fun (e : 'expr) _ (p : 'patt) _
+                             (fun (e : 'expr) (p : 'e__30)
                                 (_loc : Gram.Loc.t) ->
                                 (`gen ((p, e)) : 'item)))) ]) ]))
                   ()))
@@ -14216,7 +15001,7 @@ module L =
                      (None,
                       [ (None, None,
                          [ ([ Gram.Snterml
-                                (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                                ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                                 "top");
                               Gram.Skeyword "::";
                               Gram.Snterm
@@ -14225,14 +15010,14 @@ module L =
                                (fun (last : 'expr) _ (e : 'expr)
                                   (_loc : Gram.Loc.t) ->
                                   (Ast.ExApp (_loc,
-                                     Ast.ExApp (_loc,
-                                       Ast.ExId (_loc,
-                                         Ast.IdUid (_loc, "::")),
-                                       e),
+                                     (Ast.ExApp (_loc,
+                                        (Ast.ExId (_loc,
+                                           (Ast.IdUid (_loc, "::")))),
+                                        e)),
                                      last) :
                                     'comprehension_or_sem_expr_for_list))));
                            ([ Gram.Snterml
-                                (Gram.Entry.obj (expr : 'expr Gram.Entry.t),
+                                ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)),
                                 "top");
                               Gram.Skeyword ";";
                               Gram.Snterm
@@ -14247,11 +15032,11 @@ module L =
                                   (mk : 'sem_expr_for_list) _ (e : 'expr)
                                   (_loc : Gram.Loc.t) ->
                                   (Ast.ExApp (_loc,
-                                     Ast.ExApp (_loc,
-                                       Ast.ExId (_loc,
-                                         Ast.IdUid (_loc, "::")),
-                                       e),
-                                     mk last) :
+                                     (Ast.ExApp (_loc,
+                                        (Ast.ExId (_loc,
+                                           (Ast.IdUid (_loc, "::")))),
+                                        e)),
+                                     (mk last)) :
                                     'comprehension_or_sem_expr_for_list)))) ]) ]))
                     ()))
           else ()
@@ -14609,6 +15394,8 @@ You should give the -noassert option to the ocaml compiler instead.@."
         ("-v", (Arg.Unit print_version), "Print Camlp4 version and exit.");
         ("-version", (Arg.Unit just_print_the_version),
          "Print Camlp4 version number and exit.");
+        ("-vnum", (Arg.Unit just_print_the_version),
+         "Print Camlp4 version number and exit.");
         ("-no_quot", (Arg.Clear Camlp4_config.quotations),
          "Don't parse quotations, allowing to use, e.g. \"<:>\" as token.");
         ("-loaded-modules", (Arg.Set print_loaded_modules),
index e5853503decd40107708df6071747eb07e5ca501..6c6b4b245f7960dac122dd4918888ccdffacdc13 100644 (file)
@@ -31,6 +31,8 @@ value (interfaces, options, includes) =
     | ["-I"; dir :: args] -> self (interf, opts, [dir; "-I" :: incl]) args
     | ["-version" :: _] ->
         do { printf "mkcamlp4, version %s@." version; exit 0 }
+    | ["-vnum" :: _] ->
+        do { printf "%s@." version; exit 0 }
     | [ arg :: args ] when check_suffix arg ".cmi" ->
         let basename = String.capitalize (Filename.chop_suffix
                          (Filename.basename arg) ".cmi") in
diff --git a/camlp4/test/fixtures/assert.ml b/camlp4/test/fixtures/assert.ml
deleted file mode 100644 (file)
index 8d9ea49..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-module MySet = Set.Make(String);;
-let set = MySet.empty;;
-assert (MySet.is_empty set);;
diff --git a/camlp4/test/fixtures/backquoted_irrefutable_tuple.ml b/camlp4/test/fixtures/backquoted_irrefutable_tuple.ml
deleted file mode 100644 (file)
index f6764cb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-EXTEND Gram
-  abc: [ [ `(x,y) -> x + y ] ];
-END;
diff --git a/camlp4/test/fixtures/backquoted_record.ml b/camlp4/test/fixtures/backquoted_record.ml
deleted file mode 100644 (file)
index e056f73..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-EXTEND Gram
-  raw_string:
-  [[ `QUOTATION { Sig.Quotation.q_contents = c; q_name = n } -> (c, n) ]];
-END;
diff --git a/camlp4/test/fixtures/backquoted_tuple.ml b/camlp4/test/fixtures/backquoted_tuple.ml
deleted file mode 100644 (file)
index 72ae1a6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-EXTEND Gram
-  abc: [ [ `(A,y) -> y ] ];
-END;
diff --git a/camlp4/test/fixtures/big-tab1.ml b/camlp4/test/fixtures/big-tab1.ml
deleted file mode 100644 (file)
index 254da82..0000000
+++ /dev/null
@@ -1,704 +0,0 @@
-[|
-aaa;
-aab;
-aac;
-aad;
-aae;
-aaf;
-aag;
-aah;
-aai;
-aaj;
-aak;
-aal;
-aam;
-aan;
-aao;
-aap;
-aaq;
-aar;
-aas;
-aat;
-aau;
-aav;
-aaw;
-aax;
-aay;
-aaz;
-aba;
-abb;
-abc;
-abd;
-abe;
-abf;
-abg;
-abh;
-abi;
-abj;
-abk;
-abl;
-abm;
-abn;
-abo;
-abp;
-abq;
-abr;
-abs;
-abt;
-abu;
-abv;
-abw;
-abx;
-aby;
-abz;
-aca;
-acb;
-acc;
-acd;
-ace;
-acf;
-acg;
-ach;
-aci;
-acj;
-ack;
-acl;
-acm;
-acn;
-aco;
-acp;
-acq;
-acr;
-acs;
-act;
-acu;
-acv;
-acw;
-acx;
-acy;
-acz;
-ada;
-adb;
-adc;
-add;
-ade;
-adf;
-adg;
-adh;
-adi;
-adj;
-adk;
-adl;
-adm;
-adn;
-ado;
-adp;
-adq;
-adr;
-ads;
-adt;
-adu;
-adv;
-adw;
-adx;
-ady;
-adz;
-aea;
-aeb;
-aec;
-aed;
-aee;
-aef;
-aeg;
-aeh;
-aei;
-aej;
-aek;
-ael;
-aem;
-aen;
-aeo;
-aep;
-aeq;
-aer;
-aes;
-aet;
-aeu;
-aev;
-aew;
-aex;
-aey;
-aez;
-afa;
-afb;
-afc;
-afd;
-afe;
-aff;
-afg;
-afh;
-afi;
-afj;
-afk;
-afl;
-afm;
-afn;
-afo;
-afp;
-afq;
-afr;
-afs;
-aft;
-afu;
-afv;
-afw;
-afx;
-afy;
-afz;
-aga;
-agb;
-agc;
-agd;
-age;
-agf;
-agg;
-agh;
-agi;
-agj;
-agk;
-agl;
-agm;
-agn;
-ago;
-agp;
-agq;
-agr;
-ags;
-agt;
-agu;
-agv;
-agw;
-agx;
-agy;
-agz;
-aha;
-ahb;
-ahc;
-ahd;
-ahe;
-ahf;
-ahg;
-ahh;
-ahi;
-ahj;
-ahk;
-ahl;
-ahm;
-ahn;
-aho;
-ahp;
-ahq;
-ahr;
-ahs;
-aht;
-ahu;
-ahv;
-ahw;
-ahx;
-ahy;
-ahz;
-aia;
-aib;
-aic;
-aid;
-aie;
-aif;
-aig;
-aih;
-aii;
-aij;
-aik;
-ail;
-aim;
-ain;
-aio;
-aip;
-aiq;
-air;
-ais;
-ait;
-aiu;
-aiv;
-aiw;
-aix;
-aiy;
-aiz;
-aja;
-ajb;
-ajc;
-ajd;
-aje;
-ajf;
-ajg;
-ajh;
-aji;
-ajj;
-ajk;
-ajl;
-ajm;
-ajn;
-ajo;
-ajp;
-ajq;
-ajr;
-ajs;
-ajt;
-aju;
-ajv;
-ajw;
-ajx;
-ajy;
-ajz;
-aka;
-akb;
-akc;
-akd;
-ake;
-akf;
-akg;
-akh;
-aki;
-akj;
-akk;
-akl;
-akm;
-akn;
-ako;
-akp;
-akq;
-akr;
-aks;
-akt;
-aku;
-akv;
-akw;
-akx;
-aky;
-akz;
-ala;
-alb;
-alc;
-ald;
-ale;
-alf;
-alg;
-alh;
-ali;
-alj;
-alk;
-all;
-alm;
-aln;
-alo;
-alp;
-alq;
-alr;
-als;
-alt;
-alu;
-alv;
-alw;
-alx;
-aly;
-alz;
-ama;
-amb;
-amc;
-amd;
-ame;
-amf;
-amg;
-amh;
-ami;
-amj;
-amk;
-aml;
-amm;
-amn;
-amo;
-amp;
-amq;
-amr;
-ams;
-amt;
-amu;
-amv;
-amw;
-amx;
-amy;
-amz;
-ana;
-anb;
-anc;
-ane;
-anf;
-ang;
-anh;
-ani;
-anj;
-ank;
-anl;
-anm;
-ann;
-ano;
-anp;
-anq;
-anr;
-ans;
-ant;
-anu;
-anv;
-anw;
-anx;
-any;
-anz;
-aoa;
-aob;
-aoc;
-aod;
-aoe;
-aof;
-aog;
-aoh;
-aoi;
-aoj;
-aok;
-aol;
-aom;
-aon;
-aoo;
-aop;
-aoq;
-aor;
-aos;
-aot;
-aou;
-aov;
-aow;
-aox;
-aoy;
-aoz;
-apa;
-apb;
-apc;
-apd;
-ape;
-apf;
-apg;
-aph;
-api;
-apj;
-apk;
-apl;
-apm;
-apn;
-apo;
-app;
-apq;
-apr;
-aps;
-apt;
-apu;
-apv;
-apw;
-apx;
-apy;
-apz;
-aqa;
-aqb;
-aqc;
-aqd;
-aqe;
-aqf;
-aqg;
-aqh;
-aqi;
-aqj;
-aqk;
-aql;
-aqm;
-aqn;
-aqo;
-aqp;
-aqq;
-aqr;
-aqs;
-aqt;
-aqu;
-aqv;
-aqw;
-aqx;
-aqy;
-aqz;
-ara;
-arb;
-arc;
-ard;
-are;
-arf;
-arg;
-arh;
-ari;
-arj;
-ark;
-arl;
-arm;
-arn;
-aro;
-arp;
-arq;
-arr;
-ars;
-art;
-aru;
-arv;
-arw;
-arx;
-ary;
-arz;
-asa;
-asb;
-asc;
-asd;
-ase;
-asf;
-asg;
-ash;
-asi;
-asj;
-ask;
-asl;
-asm;
-asn;
-aso;
-asp;
-asq;
-ass;
-ast;
-asu;
-asv;
-asw;
-asx;
-asy;
-asz;
-ata;
-atb;
-atc;
-atd;
-ate;
-atf;
-atg;
-ath;
-ati;
-atj;
-atk;
-atl;
-atm;
-atn;
-ato;
-atp;
-atq;
-atr;
-ats;
-att;
-atu;
-atv;
-atw;
-atx;
-aty;
-atz;
-aua;
-aub;
-auc;
-aud;
-aue;
-auf;
-aug;
-auh;
-aui;
-auj;
-auk;
-aul;
-aum;
-aun;
-auo;
-aup;
-auq;
-aur;
-aus;
-aut;
-auu;
-auv;
-auw;
-aux;
-auy;
-auz;
-ava;
-avb;
-avc;
-avd;
-ave;
-avf;
-avg;
-avh;
-avi;
-avj;
-avk;
-avl;
-avm;
-avn;
-avo;
-avp;
-avq;
-avr;
-avs;
-avt;
-avu;
-avv;
-avw;
-avx;
-avy;
-avz;
-awa;
-awb;
-awc;
-awd;
-awe;
-awf;
-awg;
-awh;
-awi;
-awj;
-awk;
-awl;
-awm;
-awn;
-awo;
-awp;
-awq;
-awr;
-aws;
-awt;
-awu;
-awv;
-aww;
-awx;
-awy;
-awz;
-axa;
-axb;
-axc;
-axd;
-axe;
-axf;
-axg;
-axh;
-axi;
-axj;
-axk;
-axl;
-axm;
-axn;
-axo;
-axp;
-axq;
-axr;
-axs;
-axt;
-axu;
-axv;
-axw;
-axx;
-axy;
-axz;
-aya;
-ayb;
-ayc;
-ayd;
-aye;
-ayf;
-ayg;
-ayh;
-ayi;
-ayj;
-ayk;
-ayl;
-aym;
-ayn;
-ayo;
-ayp;
-ayq;
-ayr;
-ays;
-ayt;
-ayu;
-ayv;
-ayw;
-ayx;
-ayy;
-ayz;
-aza;
-azb;
-azc;
-azd;
-aze;
-azf;
-azg;
-azh;
-azi;
-azj;
-azk;
-azl;
-azm;
-azn;
-azo;
-azp;
-azq;
-azr;
-azs;
-azt;
-azu;
-azv;
-azw;
-azx;
-azy;
-azz;
-baa;
-bab;
-bac;
-bad;
-bae;
-baf;
-bag;
-bah;
-bai;
-baj;
-bak;
-bal;
-bam;
-ban;
-bao;
-bap;
-baq;
-bar;
-bas;
-bat;
-bau;
-bav;
-baw;
-bax;
-bay;
-baz;
-bba;
-bbb
-|];
diff --git a/camlp4/test/fixtures/big-tab2.ml b/camlp4/test/fixtures/big-tab2.ml
deleted file mode 100644 (file)
index e640f34..0000000
+++ /dev/null
@@ -1,18282 +0,0 @@
-[|
-aaaa;
-aaab;
-aaac;
-aaad;
-aaae;
-aaaf;
-aaag;
-aaah;
-aaai;
-aaaj;
-aaak;
-aaal;
-aaam;
-aaan;
-aaao;
-aaap;
-aaaq;
-aaar;
-aaas;
-aaat;
-aaau;
-aaav;
-aaaw;
-aaax;
-aaay;
-aaaz;
-aaba;
-aabb;
-aabc;
-aabd;
-aabe;
-aabf;
-aabg;
-aabh;
-aabi;
-aabj;
-aabk;
-aabl;
-aabm;
-aabn;
-aabo;
-aabp;
-aabq;
-aabr;
-aabs;
-aabt;
-aabu;
-aabv;
-aabw;
-aabx;
-aaby;
-aabz;
-aaca;
-aacb;
-aacc;
-aacd;
-aace;
-aacf;
-aacg;
-aach;
-aaci;
-aacj;
-aack;
-aacl;
-aacm;
-aacn;
-aaco;
-aacp;
-aacq;
-aacr;
-aacs;
-aact;
-aacu;
-aacv;
-aacw;
-aacx;
-aacy;
-aacz;
-aada;
-aadb;
-aadc;
-aadd;
-aade;
-aadf;
-aadg;
-aadh;
-aadi;
-aadj;
-aadk;
-aadl;
-aadm;
-aadn;
-aado;
-aadp;
-aadq;
-aadr;
-aads;
-aadt;
-aadu;
-aadv;
-aadw;
-aadx;
-aady;
-aadz;
-aaea;
-aaeb;
-aaec;
-aaed;
-aaee;
-aaef;
-aaeg;
-aaeh;
-aaei;
-aaej;
-aaek;
-aael;
-aaem;
-aaen;
-aaeo;
-aaep;
-aaeq;
-aaer;
-aaes;
-aaet;
-aaeu;
-aaev;
-aaew;
-aaex;
-aaey;
-aaez;
-aafa;
-aafb;
-aafc;
-aafd;
-aafe;
-aaff;
-aafg;
-aafh;
-aafi;
-aafj;
-aafk;
-aafl;
-aafm;
-aafn;
-aafo;
-aafp;
-aafq;
-aafr;
-aafs;
-aaft;
-aafu;
-aafv;
-aafw;
-aafx;
-aafy;
-aafz;
-aaga;
-aagb;
-aagc;
-aagd;
-aage;
-aagf;
-aagg;
-aagh;
-aagi;
-aagj;
-aagk;
-aagl;
-aagm;
-aagn;
-aago;
-aagp;
-aagq;
-aagr;
-aags;
-aagt;
-aagu;
-aagv;
-aagw;
-aagx;
-aagy;
-aagz;
-aaha;
-aahb;
-aahc;
-aahd;
-aahe;
-aahf;
-aahg;
-aahh;
-aahi;
-aahj;
-aahk;
-aahl;
-aahm;
-aahn;
-aaho;
-aahp;
-aahq;
-aahr;
-aahs;
-aaht;
-aahu;
-aahv;
-aahw;
-aahx;
-aahy;
-aahz;
-aaia;
-aaib;
-aaic;
-aaid;
-aaie;
-aaif;
-aaig;
-aaih;
-aaii;
-aaij;
-aaik;
-aail;
-aaim;
-aain;
-aaio;
-aaip;
-aaiq;
-aair;
-aais;
-aait;
-aaiu;
-aaiv;
-aaiw;
-aaix;
-aaiy;
-aaiz;
-aaja;
-aajb;
-aajc;
-aajd;
-aaje;
-aajf;
-aajg;
-aajh;
-aaji;
-aajj;
-aajk;
-aajl;
-aajm;
-aajn;
-aajo;
-aajp;
-aajq;
-aajr;
-aajs;
-aajt;
-aaju;
-aajv;
-aajw;
-aajx;
-aajy;
-aajz;
-aaka;
-aakb;
-aakc;
-aakd;
-aake;
-aakf;
-aakg;
-aakh;
-aaki;
-aakj;
-aakk;
-aakl;
-aakm;
-aakn;
-aako;
-aakp;
-aakq;
-aakr;
-aaks;
-aakt;
-aaku;
-aakv;
-aakw;
-aakx;
-aaky;
-aakz;
-aala;
-aalb;
-aalc;
-aald;
-aale;
-aalf;
-aalg;
-aalh;
-aali;
-aalj;
-aalk;
-aall;
-aalm;
-aaln;
-aalo;
-aalp;
-aalq;
-aalr;
-aals;
-aalt;
-aalu;
-aalv;
-aalw;
-aalx;
-aaly;
-aalz;
-aama;
-aamb;
-aamc;
-aamd;
-aame;
-aamf;
-aamg;
-aamh;
-aami;
-aamj;
-aamk;
-aaml;
-aamm;
-aamn;
-aamo;
-aamp;
-aamq;
-aamr;
-aams;
-aamt;
-aamu;
-aamv;
-aamw;
-aamx;
-aamy;
-aamz;
-aana;
-aanb;
-aanc;
-aand;
-aane;
-aanf;
-aang;
-aanh;
-aani;
-aanj;
-aank;
-aanl;
-aanm;
-aann;
-aano;
-aanp;
-aanq;
-aanr;
-aans;
-aant;
-aanu;
-aanv;
-aanw;
-aanx;
-aany;
-aanz;
-aaoa;
-aaob;
-aaoc;
-aaod;
-aaoe;
-aaof;
-aaog;
-aaoh;
-aaoi;
-aaoj;
-aaok;
-aaol;
-aaom;
-aaon;
-aaoo;
-aaop;
-aaoq;
-aaor;
-aaos;
-aaot;
-aaou;
-aaov;
-aaow;
-aaox;
-aaoy;
-aaoz;
-aapa;
-aapb;
-aapc;
-aapd;
-aape;
-aapf;
-aapg;
-aaph;
-aapi;
-aapj;
-aapk;
-aapl;
-aapm;
-aapn;
-aapo;
-aapp;
-aapq;
-aapr;
-aaps;
-aapt;
-aapu;
-aapv;
-aapw;
-aapx;
-aapy;
-aapz;
-aaqa;
-aaqb;
-aaqc;
-aaqd;
-aaqe;
-aaqf;
-aaqg;
-aaqh;
-aaqi;
-aaqj;
-aaqk;
-aaql;
-aaqm;
-aaqn;
-aaqo;
-aaqp;
-aaqq;
-aaqr;
-aaqs;
-aaqt;
-aaqu;
-aaqv;
-aaqw;
-aaqx;
-aaqy;
-aaqz;
-aara;
-aarb;
-aarc;
-aard;
-aare;
-aarf;
-aarg;
-aarh;
-aari;
-aarj;
-aark;
-aarl;
-aarm;
-aarn;
-aaro;
-aarp;
-aarq;
-aarr;
-aars;
-aart;
-aaru;
-aarv;
-aarw;
-aarx;
-aary;
-aarz;
-aasa;
-aasb;
-aasc;
-aasd;
-aase;
-aasf;
-aasg;
-aash;
-aasi;
-aasj;
-aask;
-aasl;
-aasm;
-aasn;
-aaso;
-aasp;
-aasq;
-aasr;
-aass;
-aast;
-aasu;
-aasv;
-aasw;
-aasx;
-aasy;
-aasz;
-aata;
-aatb;
-aatc;
-aatd;
-aate;
-aatf;
-aatg;
-aath;
-aati;
-aatj;
-aatk;
-aatl;
-aatm;
-aatn;
-aato;
-aatp;
-aatq;
-aatr;
-aats;
-aatt;
-aatu;
-aatv;
-aatw;
-aatx;
-aaty;
-aatz;
-aaua;
-aaub;
-aauc;
-aaud;
-aaue;
-aauf;
-aaug;
-aauh;
-aaui;
-aauj;
-aauk;
-aaul;
-aaum;
-aaun;
-aauo;
-aaup;
-aauq;
-aaur;
-aaus;
-aaut;
-aauu;
-aauv;
-aauw;
-aaux;
-aauy;
-aauz;
-aava;
-aavb;
-aavc;
-aavd;
-aave;
-aavf;
-aavg;
-aavh;
-aavi;
-aavj;
-aavk;
-aavl;
-aavm;
-aavn;
-aavo;
-aavp;
-aavq;
-aavr;
-aavs;
-aavt;
-aavu;
-aavv;
-aavw;
-aavx;
-aavy;
-aavz;
-aawa;
-aawb;
-aawc;
-aawd;
-aawe;
-aawf;
-aawg;
-aawh;
-aawi;
-aawj;
-aawk;
-aawl;
-aawm;
-aawn;
-aawo;
-aawp;
-aawq;
-aawr;
-aaws;
-aawt;
-aawu;
-aawv;
-aaww;
-aawx;
-aawy;
-aawz;
-aaxa;
-aaxb;
-aaxc;
-aaxd;
-aaxe;
-aaxf;
-aaxg;
-aaxh;
-aaxi;
-aaxj;
-aaxk;
-aaxl;
-aaxm;
-aaxn;
-aaxo;
-aaxp;
-aaxq;
-aaxr;
-aaxs;
-aaxt;
-aaxu;
-aaxv;
-aaxw;
-aaxx;
-aaxy;
-aaxz;
-aaya;
-aayb;
-aayc;
-aayd;
-aaye;
-aayf;
-aayg;
-aayh;
-aayi;
-aayj;
-aayk;
-aayl;
-aaym;
-aayn;
-aayo;
-aayp;
-aayq;
-aayr;
-aays;
-aayt;
-aayu;
-aayv;
-aayw;
-aayx;
-aayy;
-aayz;
-aaza;
-aazb;
-aazc;
-aazd;
-aaze;
-aazf;
-aazg;
-aazh;
-aazi;
-aazj;
-aazk;
-aazl;
-aazm;
-aazn;
-aazo;
-aazp;
-aazq;
-aazr;
-aazs;
-aazt;
-aazu;
-aazv;
-aazw;
-aazx;
-aazy;
-aazz;
-abaa;
-abab;
-abac;
-abad;
-abae;
-abaf;
-abag;
-abah;
-abai;
-abaj;
-abak;
-abal;
-abam;
-aban;
-abao;
-abap;
-abaq;
-abar;
-abas;
-abat;
-abau;
-abav;
-abaw;
-abax;
-abay;
-abaz;
-abba;
-abbb;
-abbc;
-abbd;
-abbe;
-abbf;
-abbg;
-abbh;
-abbi;
-abbj;
-abbk;
-abbl;
-abbm;
-abbn;
-abbo;
-abbp;
-abbq;
-abbr;
-abbs;
-abbt;
-abbu;
-abbv;
-abbw;
-abbx;
-abby;
-abbz;
-abca;
-abcb;
-abcc;
-abcd;
-abce;
-abcf;
-abcg;
-abch;
-abci;
-abcj;
-abck;
-abcl;
-abcm;
-abcn;
-abco;
-abcp;
-abcq;
-abcr;
-abcs;
-abct;
-abcu;
-abcv;
-abcw;
-abcx;
-abcy;
-abcz;
-abda;
-abdb;
-abdc;
-abdd;
-abde;
-abdf;
-abdg;
-abdh;
-abdi;
-abdj;
-abdk;
-abdl;
-abdm;
-abdn;
-abdo;
-abdp;
-abdq;
-abdr;
-abds;
-abdt;
-abdu;
-abdv;
-abdw;
-abdx;
-abdy;
-abdz;
-abea;
-abeb;
-abec;
-abed;
-abee;
-abef;
-abeg;
-abeh;
-abei;
-abej;
-abek;
-abel;
-abem;
-aben;
-abeo;
-abep;
-abeq;
-aber;
-abes;
-abet;
-abeu;
-abev;
-abew;
-abex;
-abey;
-abez;
-abfa;
-abfb;
-abfc;
-abfd;
-abfe;
-abff;
-abfg;
-abfh;
-abfi;
-abfj;
-abfk;
-abfl;
-abfm;
-abfn;
-abfo;
-abfp;
-abfq;
-abfr;
-abfs;
-abft;
-abfu;
-abfv;
-abfw;
-abfx;
-abfy;
-abfz;
-abga;
-abgb;
-abgc;
-abgd;
-abge;
-abgf;
-abgg;
-abgh;
-abgi;
-abgj;
-abgk;
-abgl;
-abgm;
-abgn;
-abgo;
-abgp;
-abgq;
-abgr;
-abgs;
-abgt;
-abgu;
-abgv;
-abgw;
-abgx;
-abgy;
-abgz;
-abha;
-abhb;
-abhc;
-abhd;
-abhe;
-abhf;
-abhg;
-abhh;
-abhi;
-abhj;
-abhk;
-abhl;
-abhm;
-abhn;
-abho;
-abhp;
-abhq;
-abhr;
-abhs;
-abht;
-abhu;
-abhv;
-abhw;
-abhx;
-abhy;
-abhz;
-abia;
-abib;
-abic;
-abid;
-abie;
-abif;
-abig;
-abih;
-abii;
-abij;
-abik;
-abil;
-abim;
-abin;
-abio;
-abip;
-abiq;
-abir;
-abis;
-abit;
-abiu;
-abiv;
-abiw;
-abix;
-abiy;
-abiz;
-abja;
-abjb;
-abjc;
-abjd;
-abje;
-abjf;
-abjg;
-abjh;
-abji;
-abjj;
-abjk;
-abjl;
-abjm;
-abjn;
-abjo;
-abjp;
-abjq;
-abjr;
-abjs;
-abjt;
-abju;
-abjv;
-abjw;
-abjx;
-abjy;
-abjz;
-abka;
-abkb;
-abkc;
-abkd;
-abke;
-abkf;
-abkg;
-abkh;
-abki;
-abkj;
-abkk;
-abkl;
-abkm;
-abkn;
-abko;
-abkp;
-abkq;
-abkr;
-abks;
-abkt;
-abku;
-abkv;
-abkw;
-abkx;
-abky;
-abkz;
-abla;
-ablb;
-ablc;
-abld;
-able;
-ablf;
-ablg;
-ablh;
-abli;
-ablj;
-ablk;
-abll;
-ablm;
-abln;
-ablo;
-ablp;
-ablq;
-ablr;
-abls;
-ablt;
-ablu;
-ablv;
-ablw;
-ablx;
-ably;
-ablz;
-abma;
-abmb;
-abmc;
-abmd;
-abme;
-abmf;
-abmg;
-abmh;
-abmi;
-abmj;
-abmk;
-abml;
-abmm;
-abmn;
-abmo;
-abmp;
-abmq;
-abmr;
-abms;
-abmt;
-abmu;
-abmv;
-abmw;
-abmx;
-abmy;
-abmz;
-abna;
-abnb;
-abnc;
-abnd;
-abne;
-abnf;
-abng;
-abnh;
-abni;
-abnj;
-abnk;
-abnl;
-abnm;
-abnn;
-abno;
-abnp;
-abnq;
-abnr;
-abns;
-abnt;
-abnu;
-abnv;
-abnw;
-abnx;
-abny;
-abnz;
-aboa;
-abob;
-aboc;
-abod;
-aboe;
-abof;
-abog;
-aboh;
-aboi;
-aboj;
-abok;
-abol;
-abom;
-abon;
-aboo;
-abop;
-aboq;
-abor;
-abos;
-abot;
-abou;
-abov;
-abow;
-abox;
-aboy;
-aboz;
-abpa;
-abpb;
-abpc;
-abpd;
-abpe;
-abpf;
-abpg;
-abph;
-abpi;
-abpj;
-abpk;
-abpl;
-abpm;
-abpn;
-abpo;
-abpp;
-abpq;
-abpr;
-abps;
-abpt;
-abpu;
-abpv;
-abpw;
-abpx;
-abpy;
-abpz;
-abqa;
-abqb;
-abqc;
-abqd;
-abqe;
-abqf;
-abqg;
-abqh;
-abqi;
-abqj;
-abqk;
-abql;
-abqm;
-abqn;
-abqo;
-abqp;
-abqq;
-abqr;
-abqs;
-abqt;
-abqu;
-abqv;
-abqw;
-abqx;
-abqy;
-abqz;
-abra;
-abrb;
-abrc;
-abrd;
-abre;
-abrf;
-abrg;
-abrh;
-abri;
-abrj;
-abrk;
-abrl;
-abrm;
-abrn;
-abro;
-abrp;
-abrq;
-abrr;
-abrs;
-abrt;
-abru;
-abrv;
-abrw;
-abrx;
-abry;
-abrz;
-absa;
-absb;
-absc;
-absd;
-abse;
-absf;
-absg;
-absh;
-absi;
-absj;
-absk;
-absl;
-absm;
-absn;
-abso;
-absp;
-absq;
-absr;
-abss;
-abst;
-absu;
-absv;
-absw;
-absx;
-absy;
-absz;
-abta;
-abtb;
-abtc;
-abtd;
-abte;
-abtf;
-abtg;
-abth;
-abti;
-abtj;
-abtk;
-abtl;
-abtm;
-abtn;
-abto;
-abtp;
-abtq;
-abtr;
-abts;
-abtt;
-abtu;
-abtv;
-abtw;
-abtx;
-abty;
-abtz;
-abua;
-abub;
-abuc;
-abud;
-abue;
-abuf;
-abug;
-abuh;
-abui;
-abuj;
-abuk;
-abul;
-abum;
-abun;
-abuo;
-abup;
-abuq;
-abur;
-abus;
-abut;
-abuu;
-abuv;
-abuw;
-abux;
-abuy;
-abuz;
-abva;
-abvb;
-abvc;
-abvd;
-abve;
-abvf;
-abvg;
-abvh;
-abvi;
-abvj;
-abvk;
-abvl;
-abvm;
-abvn;
-abvo;
-abvp;
-abvq;
-abvr;
-abvs;
-abvt;
-abvu;
-abvv;
-abvw;
-abvx;
-abvy;
-abvz;
-abwa;
-abwb;
-abwc;
-abwd;
-abwe;
-abwf;
-abwg;
-abwh;
-abwi;
-abwj;
-abwk;
-abwl;
-abwm;
-abwn;
-abwo;
-abwp;
-abwq;
-abwr;
-abws;
-abwt;
-abwu;
-abwv;
-abww;
-abwx;
-abwy;
-abwz;
-abxa;
-abxb;
-abxc;
-abxd;
-abxe;
-abxf;
-abxg;
-abxh;
-abxi;
-abxj;
-abxk;
-abxl;
-abxm;
-abxn;
-abxo;
-abxp;
-abxq;
-abxr;
-abxs;
-abxt;
-abxu;
-abxv;
-abxw;
-abxx;
-abxy;
-abxz;
-abya;
-abyb;
-abyc;
-abyd;
-abye;
-abyf;
-abyg;
-abyh;
-abyi;
-abyj;
-abyk;
-abyl;
-abym;
-abyn;
-abyo;
-abyp;
-abyq;
-abyr;
-abys;
-abyt;
-abyu;
-abyv;
-abyw;
-abyx;
-abyy;
-abyz;
-abza;
-abzb;
-abzc;
-abzd;
-abze;
-abzf;
-abzg;
-abzh;
-abzi;
-abzj;
-abzk;
-abzl;
-abzm;
-abzn;
-abzo;
-abzp;
-abzq;
-abzr;
-abzs;
-abzt;
-abzu;
-abzv;
-abzw;
-abzx;
-abzy;
-abzz;
-acaa;
-acab;
-acac;
-acad;
-acae;
-acaf;
-acag;
-acah;
-acai;
-acaj;
-acak;
-acal;
-acam;
-acan;
-acao;
-acap;
-acaq;
-acar;
-acas;
-acat;
-acau;
-acav;
-acaw;
-acax;
-acay;
-acaz;
-acba;
-acbb;
-acbc;
-acbd;
-acbe;
-acbf;
-acbg;
-acbh;
-acbi;
-acbj;
-acbk;
-acbl;
-acbm;
-acbn;
-acbo;
-acbp;
-acbq;
-acbr;
-acbs;
-acbt;
-acbu;
-acbv;
-acbw;
-acbx;
-acby;
-acbz;
-acca;
-accb;
-accc;
-accd;
-acce;
-accf;
-accg;
-acch;
-acci;
-accj;
-acck;
-accl;
-accm;
-accn;
-acco;
-accp;
-accq;
-accr;
-accs;
-acct;
-accu;
-accv;
-accw;
-accx;
-accy;
-accz;
-acda;
-acdb;
-acdc;
-acdd;
-acde;
-acdf;
-acdg;
-acdh;
-acdi;
-acdj;
-acdk;
-acdl;
-acdm;
-acdn;
-acdo;
-acdp;
-acdq;
-acdr;
-acds;
-acdt;
-acdu;
-acdv;
-acdw;
-acdx;
-acdy;
-acdz;
-acea;
-aceb;
-acec;
-aced;
-acee;
-acef;
-aceg;
-aceh;
-acei;
-acej;
-acek;
-acel;
-acem;
-acen;
-aceo;
-acep;
-aceq;
-acer;
-aces;
-acet;
-aceu;
-acev;
-acew;
-acex;
-acey;
-acez;
-acfa;
-acfb;
-acfc;
-acfd;
-acfe;
-acff;
-acfg;
-acfh;
-acfi;
-acfj;
-acfk;
-acfl;
-acfm;
-acfn;
-acfo;
-acfp;
-acfq;
-acfr;
-acfs;
-acft;
-acfu;
-acfv;
-acfw;
-acfx;
-acfy;
-acfz;
-acga;
-acgb;
-acgc;
-acgd;
-acge;
-acgf;
-acgg;
-acgh;
-acgi;
-acgj;
-acgk;
-acgl;
-acgm;
-acgn;
-acgo;
-acgp;
-acgq;
-acgr;
-acgs;
-acgt;
-acgu;
-acgv;
-acgw;
-acgx;
-acgy;
-acgz;
-acha;
-achb;
-achc;
-achd;
-ache;
-achf;
-achg;
-achh;
-achi;
-achj;
-achk;
-achl;
-achm;
-achn;
-acho;
-achp;
-achq;
-achr;
-achs;
-acht;
-achu;
-achv;
-achw;
-achx;
-achy;
-achz;
-acia;
-acib;
-acic;
-acid;
-acie;
-acif;
-acig;
-acih;
-acii;
-acij;
-acik;
-acil;
-acim;
-acin;
-acio;
-acip;
-aciq;
-acir;
-acis;
-acit;
-aciu;
-aciv;
-aciw;
-acix;
-aciy;
-aciz;
-acja;
-acjb;
-acjc;
-acjd;
-acje;
-acjf;
-acjg;
-acjh;
-acji;
-acjj;
-acjk;
-acjl;
-acjm;
-acjn;
-acjo;
-acjp;
-acjq;
-acjr;
-acjs;
-acjt;
-acju;
-acjv;
-acjw;
-acjx;
-acjy;
-acjz;
-acka;
-ackb;
-ackc;
-ackd;
-acke;
-ackf;
-ackg;
-ackh;
-acki;
-ackj;
-ackk;
-ackl;
-ackm;
-ackn;
-acko;
-ackp;
-ackq;
-ackr;
-acks;
-ackt;
-acku;
-ackv;
-ackw;
-ackx;
-acky;
-ackz;
-acla;
-aclb;
-aclc;
-acld;
-acle;
-aclf;
-aclg;
-aclh;
-acli;
-aclj;
-aclk;
-acll;
-aclm;
-acln;
-aclo;
-aclp;
-aclq;
-aclr;
-acls;
-aclt;
-aclu;
-aclv;
-aclw;
-aclx;
-acly;
-aclz;
-acma;
-acmb;
-acmc;
-acmd;
-acme;
-acmf;
-acmg;
-acmh;
-acmi;
-acmj;
-acmk;
-acml;
-acmm;
-acmn;
-acmo;
-acmp;
-acmq;
-acmr;
-acms;
-acmt;
-acmu;
-acmv;
-acmw;
-acmx;
-acmy;
-acmz;
-acna;
-acnb;
-acnc;
-acnd;
-acne;
-acnf;
-acng;
-acnh;
-acni;
-acnj;
-acnk;
-acnl;
-acnm;
-acnn;
-acno;
-acnp;
-acnq;
-acnr;
-acns;
-acnt;
-acnu;
-acnv;
-acnw;
-acnx;
-acny;
-acnz;
-acoa;
-acob;
-acoc;
-acod;
-acoe;
-acof;
-acog;
-acoh;
-acoi;
-acoj;
-acok;
-acol;
-acom;
-acon;
-acoo;
-acop;
-acoq;
-acor;
-acos;
-acot;
-acou;
-acov;
-acow;
-acox;
-acoy;
-acoz;
-acpa;
-acpb;
-acpc;
-acpd;
-acpe;
-acpf;
-acpg;
-acph;
-acpi;
-acpj;
-acpk;
-acpl;
-acpm;
-acpn;
-acpo;
-acpp;
-acpq;
-acpr;
-acps;
-acpt;
-acpu;
-acpv;
-acpw;
-acpx;
-acpy;
-acpz;
-acqa;
-acqb;
-acqc;
-acqd;
-acqe;
-acqf;
-acqg;
-acqh;
-acqi;
-acqj;
-acqk;
-acql;
-acqm;
-acqn;
-acqo;
-acqp;
-acqq;
-acqr;
-acqs;
-acqt;
-acqu;
-acqv;
-acqw;
-acqx;
-acqy;
-acqz;
-acra;
-acrb;
-acrc;
-acrd;
-acre;
-acrf;
-acrg;
-acrh;
-acri;
-acrj;
-acrk;
-acrl;
-acrm;
-acrn;
-acro;
-acrp;
-acrq;
-acrr;
-acrs;
-acrt;
-acru;
-acrv;
-acrw;
-acrx;
-acry;
-acrz;
-acsa;
-acsb;
-acsc;
-acsd;
-acse;
-acsf;
-acsg;
-acsh;
-acsi;
-acsj;
-acsk;
-acsl;
-acsm;
-acsn;
-acso;
-acsp;
-acsq;
-acsr;
-acss;
-acst;
-acsu;
-acsv;
-acsw;
-acsx;
-acsy;
-acsz;
-acta;
-actb;
-actc;
-actd;
-acte;
-actf;
-actg;
-acth;
-acti;
-actj;
-actk;
-actl;
-actm;
-actn;
-acto;
-actp;
-actq;
-actr;
-acts;
-actt;
-actu;
-actv;
-actw;
-actx;
-acty;
-actz;
-acua;
-acub;
-acuc;
-acud;
-acue;
-acuf;
-acug;
-acuh;
-acui;
-acuj;
-acuk;
-acul;
-acum;
-acun;
-acuo;
-acup;
-acuq;
-acur;
-acus;
-acut;
-acuu;
-acuv;
-acuw;
-acux;
-acuy;
-acuz;
-acva;
-acvb;
-acvc;
-acvd;
-acve;
-acvf;
-acvg;
-acvh;
-acvi;
-acvj;
-acvk;
-acvl;
-acvm;
-acvn;
-acvo;
-acvp;
-acvq;
-acvr;
-acvs;
-acvt;
-acvu;
-acvv;
-acvw;
-acvx;
-acvy;
-acvz;
-acwa;
-acwb;
-acwc;
-acwd;
-acwe;
-acwf;
-acwg;
-acwh;
-acwi;
-acwj;
-acwk;
-acwl;
-acwm;
-acwn;
-acwo;
-acwp;
-acwq;
-acwr;
-acws;
-acwt;
-acwu;
-acwv;
-acww;
-acwx;
-acwy;
-acwz;
-acxa;
-acxb;
-acxc;
-acxd;
-acxe;
-acxf;
-acxg;
-acxh;
-acxi;
-acxj;
-acxk;
-acxl;
-acxm;
-acxn;
-acxo;
-acxp;
-acxq;
-acxr;
-acxs;
-acxt;
-acxu;
-acxv;
-acxw;
-acxx;
-acxy;
-acxz;
-acya;
-acyb;
-acyc;
-acyd;
-acye;
-acyf;
-acyg;
-acyh;
-acyi;
-acyj;
-acyk;
-acyl;
-acym;
-acyn;
-acyo;
-acyp;
-acyq;
-acyr;
-acys;
-acyt;
-acyu;
-acyv;
-acyw;
-acyx;
-acyy;
-acyz;
-acza;
-aczb;
-aczc;
-aczd;
-acze;
-aczf;
-aczg;
-aczh;
-aczi;
-aczj;
-aczk;
-aczl;
-aczm;
-aczn;
-aczo;
-aczp;
-aczq;
-aczr;
-aczs;
-aczt;
-aczu;
-aczv;
-aczw;
-aczx;
-aczy;
-aczz;
-adaa;
-adab;
-adac;
-adad;
-adae;
-adaf;
-adag;
-adah;
-adai;
-adaj;
-adak;
-adal;
-adam;
-adan;
-adao;
-adap;
-adaq;
-adar;
-adas;
-adat;
-adau;
-adav;
-adaw;
-adax;
-aday;
-adaz;
-adba;
-adbb;
-adbc;
-adbd;
-adbe;
-adbf;
-adbg;
-adbh;
-adbi;
-adbj;
-adbk;
-adbl;
-adbm;
-adbn;
-adbo;
-adbp;
-adbq;
-adbr;
-adbs;
-adbt;
-adbu;
-adbv;
-adbw;
-adbx;
-adby;
-adbz;
-adca;
-adcb;
-adcc;
-adcd;
-adce;
-adcf;
-adcg;
-adch;
-adci;
-adcj;
-adck;
-adcl;
-adcm;
-adcn;
-adco;
-adcp;
-adcq;
-adcr;
-adcs;
-adct;
-adcu;
-adcv;
-adcw;
-adcx;
-adcy;
-adcz;
-adda;
-addb;
-addc;
-addd;
-adde;
-addf;
-addg;
-addh;
-addi;
-addj;
-addk;
-addl;
-addm;
-addn;
-addo;
-addp;
-addq;
-addr;
-adds;
-addt;
-addu;
-addv;
-addw;
-addx;
-addy;
-addz;
-adea;
-adeb;
-adec;
-aded;
-adee;
-adef;
-adeg;
-adeh;
-adei;
-adej;
-adek;
-adel;
-adem;
-aden;
-adeo;
-adep;
-adeq;
-ader;
-ades;
-adet;
-adeu;
-adev;
-adew;
-adex;
-adey;
-adez;
-adfa;
-adfb;
-adfc;
-adfd;
-adfe;
-adff;
-adfg;
-adfh;
-adfi;
-adfj;
-adfk;
-adfl;
-adfm;
-adfn;
-adfo;
-adfp;
-adfq;
-adfr;
-adfs;
-adft;
-adfu;
-adfv;
-adfw;
-adfx;
-adfy;
-adfz;
-adga;
-adgb;
-adgc;
-adgd;
-adge;
-adgf;
-adgg;
-adgh;
-adgi;
-adgj;
-adgk;
-adgl;
-adgm;
-adgn;
-adgo;
-adgp;
-adgq;
-adgr;
-adgs;
-adgt;
-adgu;
-adgv;
-adgw;
-adgx;
-adgy;
-adgz;
-adha;
-adhb;
-adhc;
-adhd;
-adhe;
-adhf;
-adhg;
-adhh;
-adhi;
-adhj;
-adhk;
-adhl;
-adhm;
-adhn;
-adho;
-adhp;
-adhq;
-adhr;
-adhs;
-adht;
-adhu;
-adhv;
-adhw;
-adhx;
-adhy;
-adhz;
-adia;
-adib;
-adic;
-adid;
-adie;
-adif;
-adig;
-adih;
-adii;
-adij;
-adik;
-adil;
-adim;
-adin;
-adio;
-adip;
-adiq;
-adir;
-adis;
-adit;
-adiu;
-adiv;
-adiw;
-adix;
-adiy;
-adiz;
-adja;
-adjb;
-adjc;
-adjd;
-adje;
-adjf;
-adjg;
-adjh;
-adji;
-adjj;
-adjk;
-adjl;
-adjm;
-adjn;
-adjo;
-adjp;
-adjq;
-adjr;
-adjs;
-adjt;
-adju;
-adjv;
-adjw;
-adjx;
-adjy;
-adjz;
-adka;
-adkb;
-adkc;
-adkd;
-adke;
-adkf;
-adkg;
-adkh;
-adki;
-adkj;
-adkk;
-adkl;
-adkm;
-adkn;
-adko;
-adkp;
-adkq;
-adkr;
-adks;
-adkt;
-adku;
-adkv;
-adkw;
-adkx;
-adky;
-adkz;
-adla;
-adlb;
-adlc;
-adld;
-adle;
-adlf;
-adlg;
-adlh;
-adli;
-adlj;
-adlk;
-adll;
-adlm;
-adln;
-adlo;
-adlp;
-adlq;
-adlr;
-adls;
-adlt;
-adlu;
-adlv;
-adlw;
-adlx;
-adly;
-adlz;
-adma;
-admb;
-admc;
-admd;
-adme;
-admf;
-admg;
-admh;
-admi;
-admj;
-admk;
-adml;
-admm;
-admn;
-admo;
-admp;
-admq;
-admr;
-adms;
-admt;
-admu;
-admv;
-admw;
-admx;
-admy;
-admz;
-adna;
-adnb;
-adnc;
-adnd;
-adne;
-adnf;
-adng;
-adnh;
-adni;
-adnj;
-adnk;
-adnl;
-adnm;
-adnn;
-adno;
-adnp;
-adnq;
-adnr;
-adns;
-adnt;
-adnu;
-adnv;
-adnw;
-adnx;
-adny;
-adnz;
-adoa;
-adob;
-adoc;
-adod;
-adoe;
-adof;
-adog;
-adoh;
-adoi;
-adoj;
-adok;
-adol;
-adom;
-adon;
-adoo;
-adop;
-adoq;
-ador;
-ados;
-adot;
-adou;
-adov;
-adow;
-adox;
-adoy;
-adoz;
-adpa;
-adpb;
-adpc;
-adpd;
-adpe;
-adpf;
-adpg;
-adph;
-adpi;
-adpj;
-adpk;
-adpl;
-adpm;
-adpn;
-adpo;
-adpp;
-adpq;
-adpr;
-adps;
-adpt;
-adpu;
-adpv;
-adpw;
-adpx;
-adpy;
-adpz;
-adqa;
-adqb;
-adqc;
-adqd;
-adqe;
-adqf;
-adqg;
-adqh;
-adqi;
-adqj;
-adqk;
-adql;
-adqm;
-adqn;
-adqo;
-adqp;
-adqq;
-adqr;
-adqs;
-adqt;
-adqu;
-adqv;
-adqw;
-adqx;
-adqy;
-adqz;
-adra;
-adrb;
-adrc;
-adrd;
-adre;
-adrf;
-adrg;
-adrh;
-adri;
-adrj;
-adrk;
-adrl;
-adrm;
-adrn;
-adro;
-adrp;
-adrq;
-adrr;
-adrs;
-adrt;
-adru;
-adrv;
-adrw;
-adrx;
-adry;
-adrz;
-adsa;
-adsb;
-adsc;
-adsd;
-adse;
-adsf;
-adsg;
-adsh;
-adsi;
-adsj;
-adsk;
-adsl;
-adsm;
-adsn;
-adso;
-adsp;
-adsq;
-adsr;
-adss;
-adst;
-adsu;
-adsv;
-adsw;
-adsx;
-adsy;
-adsz;
-adta;
-adtb;
-adtc;
-adtd;
-adte;
-adtf;
-adtg;
-adth;
-adti;
-adtj;
-adtk;
-adtl;
-adtm;
-adtn;
-adto;
-adtp;
-adtq;
-adtr;
-adts;
-adtt;
-adtu;
-adtv;
-adtw;
-adtx;
-adty;
-adtz;
-adua;
-adub;
-aduc;
-adud;
-adue;
-aduf;
-adug;
-aduh;
-adui;
-aduj;
-aduk;
-adul;
-adum;
-adun;
-aduo;
-adup;
-aduq;
-adur;
-adus;
-adut;
-aduu;
-aduv;
-aduw;
-adux;
-aduy;
-aduz;
-adva;
-advb;
-advc;
-advd;
-adve;
-advf;
-advg;
-advh;
-advi;
-advj;
-advk;
-advl;
-advm;
-advn;
-advo;
-advp;
-advq;
-advr;
-advs;
-advt;
-advu;
-advv;
-advw;
-advx;
-advy;
-advz;
-adwa;
-adwb;
-adwc;
-adwd;
-adwe;
-adwf;
-adwg;
-adwh;
-adwi;
-adwj;
-adwk;
-adwl;
-adwm;
-adwn;
-adwo;
-adwp;
-adwq;
-adwr;
-adws;
-adwt;
-adwu;
-adwv;
-adww;
-adwx;
-adwy;
-adwz;
-adxa;
-adxb;
-adxc;
-adxd;
-adxe;
-adxf;
-adxg;
-adxh;
-adxi;
-adxj;
-adxk;
-adxl;
-adxm;
-adxn;
-adxo;
-adxp;
-adxq;
-adxr;
-adxs;
-adxt;
-adxu;
-adxv;
-adxw;
-adxx;
-adxy;
-adxz;
-adya;
-adyb;
-adyc;
-adyd;
-adye;
-adyf;
-adyg;
-adyh;
-adyi;
-adyj;
-adyk;
-adyl;
-adym;
-adyn;
-adyo;
-adyp;
-adyq;
-adyr;
-adys;
-adyt;
-adyu;
-adyv;
-adyw;
-adyx;
-adyy;
-adyz;
-adza;
-adzb;
-adzc;
-adzd;
-adze;
-adzf;
-adzg;
-adzh;
-adzi;
-adzj;
-adzk;
-adzl;
-adzm;
-adzn;
-adzo;
-adzp;
-adzq;
-adzr;
-adzs;
-adzt;
-adzu;
-adzv;
-adzw;
-adzx;
-adzy;
-adzz;
-aeaa;
-aeab;
-aeac;
-aead;
-aeae;
-aeaf;
-aeag;
-aeah;
-aeai;
-aeaj;
-aeak;
-aeal;
-aeam;
-aean;
-aeao;
-aeap;
-aeaq;
-aear;
-aeas;
-aeat;
-aeau;
-aeav;
-aeaw;
-aeax;
-aeay;
-aeaz;
-aeba;
-aebb;
-aebc;
-aebd;
-aebe;
-aebf;
-aebg;
-aebh;
-aebi;
-aebj;
-aebk;
-aebl;
-aebm;
-aebn;
-aebo;
-aebp;
-aebq;
-aebr;
-aebs;
-aebt;
-aebu;
-aebv;
-aebw;
-aebx;
-aeby;
-aebz;
-aeca;
-aecb;
-aecc;
-aecd;
-aece;
-aecf;
-aecg;
-aech;
-aeci;
-aecj;
-aeck;
-aecl;
-aecm;
-aecn;
-aeco;
-aecp;
-aecq;
-aecr;
-aecs;
-aect;
-aecu;
-aecv;
-aecw;
-aecx;
-aecy;
-aecz;
-aeda;
-aedb;
-aedc;
-aedd;
-aede;
-aedf;
-aedg;
-aedh;
-aedi;
-aedj;
-aedk;
-aedl;
-aedm;
-aedn;
-aedo;
-aedp;
-aedq;
-aedr;
-aeds;
-aedt;
-aedu;
-aedv;
-aedw;
-aedx;
-aedy;
-aedz;
-aeea;
-aeeb;
-aeec;
-aeed;
-aeee;
-aeef;
-aeeg;
-aeeh;
-aeei;
-aeej;
-aeek;
-aeel;
-aeem;
-aeen;
-aeeo;
-aeep;
-aeeq;
-aeer;
-aees;
-aeet;
-aeeu;
-aeev;
-aeew;
-aeex;
-aeey;
-aeez;
-aefa;
-aefb;
-aefc;
-aefd;
-aefe;
-aeff;
-aefg;
-aefh;
-aefi;
-aefj;
-aefk;
-aefl;
-aefm;
-aefn;
-aefo;
-aefp;
-aefq;
-aefr;
-aefs;
-aeft;
-aefu;
-aefv;
-aefw;
-aefx;
-aefy;
-aefz;
-aega;
-aegb;
-aegc;
-aegd;
-aege;
-aegf;
-aegg;
-aegh;
-aegi;
-aegj;
-aegk;
-aegl;
-aegm;
-aegn;
-aego;
-aegp;
-aegq;
-aegr;
-aegs;
-aegt;
-aegu;
-aegv;
-aegw;
-aegx;
-aegy;
-aegz;
-aeha;
-aehb;
-aehc;
-aehd;
-aehe;
-aehf;
-aehg;
-aehh;
-aehi;
-aehj;
-aehk;
-aehl;
-aehm;
-aehn;
-aeho;
-aehp;
-aehq;
-aehr;
-aehs;
-aeht;
-aehu;
-aehv;
-aehw;
-aehx;
-aehy;
-aehz;
-aeia;
-aeib;
-aeic;
-aeid;
-aeie;
-aeif;
-aeig;
-aeih;
-aeii;
-aeij;
-aeik;
-aeil;
-aeim;
-aein;
-aeio;
-aeip;
-aeiq;
-aeir;
-aeis;
-aeit;
-aeiu;
-aeiv;
-aeiw;
-aeix;
-aeiy;
-aeiz;
-aeja;
-aejb;
-aejc;
-aejd;
-aeje;
-aejf;
-aejg;
-aejh;
-aeji;
-aejj;
-aejk;
-aejl;
-aejm;
-aejn;
-aejo;
-aejp;
-aejq;
-aejr;
-aejs;
-aejt;
-aeju;
-aejv;
-aejw;
-aejx;
-aejy;
-aejz;
-aeka;
-aekb;
-aekc;
-aekd;
-aeke;
-aekf;
-aekg;
-aekh;
-aeki;
-aekj;
-aekk;
-aekl;
-aekm;
-aekn;
-aeko;
-aekp;
-aekq;
-aekr;
-aeks;
-aekt;
-aeku;
-aekv;
-aekw;
-aekx;
-aeky;
-aekz;
-aela;
-aelb;
-aelc;
-aeld;
-aele;
-aelf;
-aelg;
-aelh;
-aeli;
-aelj;
-aelk;
-aell;
-aelm;
-aeln;
-aelo;
-aelp;
-aelq;
-aelr;
-aels;
-aelt;
-aelu;
-aelv;
-aelw;
-aelx;
-aely;
-aelz;
-aema;
-aemb;
-aemc;
-aemd;
-aeme;
-aemf;
-aemg;
-aemh;
-aemi;
-aemj;
-aemk;
-aeml;
-aemm;
-aemn;
-aemo;
-aemp;
-aemq;
-aemr;
-aems;
-aemt;
-aemu;
-aemv;
-aemw;
-aemx;
-aemy;
-aemz;
-aena;
-aenb;
-aenc;
-aend;
-aene;
-aenf;
-aeng;
-aenh;
-aeni;
-aenj;
-aenk;
-aenl;
-aenm;
-aenn;
-aeno;
-aenp;
-aenq;
-aenr;
-aens;
-aent;
-aenu;
-aenv;
-aenw;
-aenx;
-aeny;
-aenz;
-aeoa;
-aeob;
-aeoc;
-aeod;
-aeoe;
-aeof;
-aeog;
-aeoh;
-aeoi;
-aeoj;
-aeok;
-aeol;
-aeom;
-aeon;
-aeoo;
-aeop;
-aeoq;
-aeor;
-aeos;
-aeot;
-aeou;
-aeov;
-aeow;
-aeox;
-aeoy;
-aeoz;
-aepa;
-aepb;
-aepc;
-aepd;
-aepe;
-aepf;
-aepg;
-aeph;
-aepi;
-aepj;
-aepk;
-aepl;
-aepm;
-aepn;
-aepo;
-aepp;
-aepq;
-aepr;
-aeps;
-aept;
-aepu;
-aepv;
-aepw;
-aepx;
-aepy;
-aepz;
-aeqa;
-aeqb;
-aeqc;
-aeqd;
-aeqe;
-aeqf;
-aeqg;
-aeqh;
-aeqi;
-aeqj;
-aeqk;
-aeql;
-aeqm;
-aeqn;
-aeqo;
-aeqp;
-aeqq;
-aeqr;
-aeqs;
-aeqt;
-aequ;
-aeqv;
-aeqw;
-aeqx;
-aeqy;
-aeqz;
-aera;
-aerb;
-aerc;
-aerd;
-aere;
-aerf;
-aerg;
-aerh;
-aeri;
-aerj;
-aerk;
-aerl;
-aerm;
-aern;
-aero;
-aerp;
-aerq;
-aerr;
-aers;
-aert;
-aeru;
-aerv;
-aerw;
-aerx;
-aery;
-aerz;
-aesa;
-aesb;
-aesc;
-aesd;
-aese;
-aesf;
-aesg;
-aesh;
-aesi;
-aesj;
-aesk;
-aesl;
-aesm;
-aesn;
-aeso;
-aesp;
-aesq;
-aesr;
-aess;
-aest;
-aesu;
-aesv;
-aesw;
-aesx;
-aesy;
-aesz;
-aeta;
-aetb;
-aetc;
-aetd;
-aete;
-aetf;
-aetg;
-aeth;
-aeti;
-aetj;
-aetk;
-aetl;
-aetm;
-aetn;
-aeto;
-aetp;
-aetq;
-aetr;
-aets;
-aett;
-aetu;
-aetv;
-aetw;
-aetx;
-aety;
-aetz;
-aeua;
-aeub;
-aeuc;
-aeud;
-aeue;
-aeuf;
-aeug;
-aeuh;
-aeui;
-aeuj;
-aeuk;
-aeul;
-aeum;
-aeun;
-aeuo;
-aeup;
-aeuq;
-aeur;
-aeus;
-aeut;
-aeuu;
-aeuv;
-aeuw;
-aeux;
-aeuy;
-aeuz;
-aeva;
-aevb;
-aevc;
-aevd;
-aeve;
-aevf;
-aevg;
-aevh;
-aevi;
-aevj;
-aevk;
-aevl;
-aevm;
-aevn;
-aevo;
-aevp;
-aevq;
-aevr;
-aevs;
-aevt;
-aevu;
-aevv;
-aevw;
-aevx;
-aevy;
-aevz;
-aewa;
-aewb;
-aewc;
-aewd;
-aewe;
-aewf;
-aewg;
-aewh;
-aewi;
-aewj;
-aewk;
-aewl;
-aewm;
-aewn;
-aewo;
-aewp;
-aewq;
-aewr;
-aews;
-aewt;
-aewu;
-aewv;
-aeww;
-aewx;
-aewy;
-aewz;
-aexa;
-aexb;
-aexc;
-aexd;
-aexe;
-aexf;
-aexg;
-aexh;
-aexi;
-aexj;
-aexk;
-aexl;
-aexm;
-aexn;
-aexo;
-aexp;
-aexq;
-aexr;
-aexs;
-aext;
-aexu;
-aexv;
-aexw;
-aexx;
-aexy;
-aexz;
-aeya;
-aeyb;
-aeyc;
-aeyd;
-aeye;
-aeyf;
-aeyg;
-aeyh;
-aeyi;
-aeyj;
-aeyk;
-aeyl;
-aeym;
-aeyn;
-aeyo;
-aeyp;
-aeyq;
-aeyr;
-aeys;
-aeyt;
-aeyu;
-aeyv;
-aeyw;
-aeyx;
-aeyy;
-aeyz;
-aeza;
-aezb;
-aezc;
-aezd;
-aeze;
-aezf;
-aezg;
-aezh;
-aezi;
-aezj;
-aezk;
-aezl;
-aezm;
-aezn;
-aezo;
-aezp;
-aezq;
-aezr;
-aezs;
-aezt;
-aezu;
-aezv;
-aezw;
-aezx;
-aezy;
-aezz;
-afaa;
-afab;
-afac;
-afad;
-afae;
-afaf;
-afag;
-afah;
-afai;
-afaj;
-afak;
-afal;
-afam;
-afan;
-afao;
-afap;
-afaq;
-afar;
-afas;
-afat;
-afau;
-afav;
-afaw;
-afax;
-afay;
-afaz;
-afba;
-afbb;
-afbc;
-afbd;
-afbe;
-afbf;
-afbg;
-afbh;
-afbi;
-afbj;
-afbk;
-afbl;
-afbm;
-afbn;
-afbo;
-afbp;
-afbq;
-afbr;
-afbs;
-afbt;
-afbu;
-afbv;
-afbw;
-afbx;
-afby;
-afbz;
-afca;
-afcb;
-afcc;
-afcd;
-afce;
-afcf;
-afcg;
-afch;
-afci;
-afcj;
-afck;
-afcl;
-afcm;
-afcn;
-afco;
-afcp;
-afcq;
-afcr;
-afcs;
-afct;
-afcu;
-afcv;
-afcw;
-afcx;
-afcy;
-afcz;
-afda;
-afdb;
-afdc;
-afdd;
-afde;
-afdf;
-afdg;
-afdh;
-afdi;
-afdj;
-afdk;
-afdl;
-afdm;
-afdn;
-afdo;
-afdp;
-afdq;
-afdr;
-afds;
-afdt;
-afdu;
-afdv;
-afdw;
-afdx;
-afdy;
-afdz;
-afea;
-afeb;
-afec;
-afed;
-afee;
-afef;
-afeg;
-afeh;
-afei;
-afej;
-afek;
-afel;
-afem;
-afen;
-afeo;
-afep;
-afeq;
-afer;
-afes;
-afet;
-afeu;
-afev;
-afew;
-afex;
-afey;
-afez;
-affa;
-affb;
-affc;
-affd;
-affe;
-afff;
-affg;
-affh;
-affi;
-affj;
-affk;
-affl;
-affm;
-affn;
-affo;
-affp;
-affq;
-affr;
-affs;
-afft;
-affu;
-affv;
-affw;
-affx;
-affy;
-affz;
-afga;
-afgb;
-afgc;
-afgd;
-afge;
-afgf;
-afgg;
-afgh;
-afgi;
-afgj;
-afgk;
-afgl;
-afgm;
-afgn;
-afgo;
-afgp;
-afgq;
-afgr;
-afgs;
-afgt;
-afgu;
-afgv;
-afgw;
-afgx;
-afgy;
-afgz;
-afha;
-afhb;
-afhc;
-afhd;
-afhe;
-afhf;
-afhg;
-afhh;
-afhi;
-afhj;
-afhk;
-afhl;
-afhm;
-afhn;
-afho;
-afhp;
-afhq;
-afhr;
-afhs;
-afht;
-afhu;
-afhv;
-afhw;
-afhx;
-afhy;
-afhz;
-afia;
-afib;
-afic;
-afid;
-afie;
-afif;
-afig;
-afih;
-afii;
-afij;
-afik;
-afil;
-afim;
-afin;
-afio;
-afip;
-afiq;
-afir;
-afis;
-afit;
-afiu;
-afiv;
-afiw;
-afix;
-afiy;
-afiz;
-afja;
-afjb;
-afjc;
-afjd;
-afje;
-afjf;
-afjg;
-afjh;
-afji;
-afjj;
-afjk;
-afjl;
-afjm;
-afjn;
-afjo;
-afjp;
-afjq;
-afjr;
-afjs;
-afjt;
-afju;
-afjv;
-afjw;
-afjx;
-afjy;
-afjz;
-afka;
-afkb;
-afkc;
-afkd;
-afke;
-afkf;
-afkg;
-afkh;
-afki;
-afkj;
-afkk;
-afkl;
-afkm;
-afkn;
-afko;
-afkp;
-afkq;
-afkr;
-afks;
-afkt;
-afku;
-afkv;
-afkw;
-afkx;
-afky;
-afkz;
-afla;
-aflb;
-aflc;
-afld;
-afle;
-aflf;
-aflg;
-aflh;
-afli;
-aflj;
-aflk;
-afll;
-aflm;
-afln;
-aflo;
-aflp;
-aflq;
-aflr;
-afls;
-aflt;
-aflu;
-aflv;
-aflw;
-aflx;
-afly;
-aflz;
-afma;
-afmb;
-afmc;
-afmd;
-afme;
-afmf;
-afmg;
-afmh;
-afmi;
-afmj;
-afmk;
-afml;
-afmm;
-afmn;
-afmo;
-afmp;
-afmq;
-afmr;
-afms;
-afmt;
-afmu;
-afmv;
-afmw;
-afmx;
-afmy;
-afmz;
-afna;
-afnb;
-afnc;
-afnd;
-afne;
-afnf;
-afng;
-afnh;
-afni;
-afnj;
-afnk;
-afnl;
-afnm;
-afnn;
-afno;
-afnp;
-afnq;
-afnr;
-afns;
-afnt;
-afnu;
-afnv;
-afnw;
-afnx;
-afny;
-afnz;
-afoa;
-afob;
-afoc;
-afod;
-afoe;
-afof;
-afog;
-afoh;
-afoi;
-afoj;
-afok;
-afol;
-afom;
-afon;
-afoo;
-afop;
-afoq;
-afor;
-afos;
-afot;
-afou;
-afov;
-afow;
-afox;
-afoy;
-afoz;
-afpa;
-afpb;
-afpc;
-afpd;
-afpe;
-afpf;
-afpg;
-afph;
-afpi;
-afpj;
-afpk;
-afpl;
-afpm;
-afpn;
-afpo;
-afpp;
-afpq;
-afpr;
-afps;
-afpt;
-afpu;
-afpv;
-afpw;
-afpx;
-afpy;
-afpz;
-afqa;
-afqb;
-afqc;
-afqd;
-afqe;
-afqf;
-afqg;
-afqh;
-afqi;
-afqj;
-afqk;
-afql;
-afqm;
-afqn;
-afqo;
-afqp;
-afqq;
-afqr;
-afqs;
-afqt;
-afqu;
-afqv;
-afqw;
-afqx;
-afqy;
-afqz;
-afra;
-afrb;
-afrc;
-afrd;
-afre;
-afrf;
-afrg;
-afrh;
-afri;
-afrj;
-afrk;
-afrl;
-afrm;
-afrn;
-afro;
-afrp;
-afrq;
-afrr;
-afrs;
-afrt;
-afru;
-afrv;
-afrw;
-afrx;
-afry;
-afrz;
-afsa;
-afsb;
-afsc;
-afsd;
-afse;
-afsf;
-afsg;
-afsh;
-afsi;
-afsj;
-afsk;
-afsl;
-afsm;
-afsn;
-afso;
-afsp;
-afsq;
-afsr;
-afss;
-afst;
-afsu;
-afsv;
-afsw;
-afsx;
-afsy;
-afsz;
-afta;
-aftb;
-aftc;
-aftd;
-afte;
-aftf;
-aftg;
-afth;
-afti;
-aftj;
-aftk;
-aftl;
-aftm;
-aftn;
-afto;
-aftp;
-aftq;
-aftr;
-afts;
-aftt;
-aftu;
-aftv;
-aftw;
-aftx;
-afty;
-aftz;
-afua;
-afub;
-afuc;
-afud;
-afue;
-afuf;
-afug;
-afuh;
-afui;
-afuj;
-afuk;
-aful;
-afum;
-afun;
-afuo;
-afup;
-afuq;
-afur;
-afus;
-afut;
-afuu;
-afuv;
-afuw;
-afux;
-afuy;
-afuz;
-afva;
-afvb;
-afvc;
-afvd;
-afve;
-afvf;
-afvg;
-afvh;
-afvi;
-afvj;
-afvk;
-afvl;
-afvm;
-afvn;
-afvo;
-afvp;
-afvq;
-afvr;
-afvs;
-afvt;
-afvu;
-afvv;
-afvw;
-afvx;
-afvy;
-afvz;
-afwa;
-afwb;
-afwc;
-afwd;
-afwe;
-afwf;
-afwg;
-afwh;
-afwi;
-afwj;
-afwk;
-afwl;
-afwm;
-afwn;
-afwo;
-afwp;
-afwq;
-afwr;
-afws;
-afwt;
-afwu;
-afwv;
-afww;
-afwx;
-afwy;
-afwz;
-afxa;
-afxb;
-afxc;
-afxd;
-afxe;
-afxf;
-afxg;
-afxh;
-afxi;
-afxj;
-afxk;
-afxl;
-afxm;
-afxn;
-afxo;
-afxp;
-afxq;
-afxr;
-afxs;
-afxt;
-afxu;
-afxv;
-afxw;
-afxx;
-afxy;
-afxz;
-afya;
-afyb;
-afyc;
-afyd;
-afye;
-afyf;
-afyg;
-afyh;
-afyi;
-afyj;
-afyk;
-afyl;
-afym;
-afyn;
-afyo;
-afyp;
-afyq;
-afyr;
-afys;
-afyt;
-afyu;
-afyv;
-afyw;
-afyx;
-afyy;
-afyz;
-afza;
-afzb;
-afzc;
-afzd;
-afze;
-afzf;
-afzg;
-afzh;
-afzi;
-afzj;
-afzk;
-afzl;
-afzm;
-afzn;
-afzo;
-afzp;
-afzq;
-afzr;
-afzs;
-afzt;
-afzu;
-afzv;
-afzw;
-afzx;
-afzy;
-afzz;
-agaa;
-agab;
-agac;
-agad;
-agae;
-agaf;
-agag;
-agah;
-agai;
-agaj;
-agak;
-agal;
-agam;
-agan;
-agao;
-agap;
-agaq;
-agar;
-agas;
-agat;
-agau;
-agav;
-agaw;
-agax;
-agay;
-agaz;
-agba;
-agbb;
-agbc;
-agbd;
-agbe;
-agbf;
-agbg;
-agbh;
-agbi;
-agbj;
-agbk;
-agbl;
-agbm;
-agbn;
-agbo;
-agbp;
-agbq;
-agbr;
-agbs;
-agbt;
-agbu;
-agbv;
-agbw;
-agbx;
-agby;
-agbz;
-agca;
-agcb;
-agcc;
-agcd;
-agce;
-agcf;
-agcg;
-agch;
-agci;
-agcj;
-agck;
-agcl;
-agcm;
-agcn;
-agco;
-agcp;
-agcq;
-agcr;
-agcs;
-agct;
-agcu;
-agcv;
-agcw;
-agcx;
-agcy;
-agcz;
-agda;
-agdb;
-agdc;
-agdd;
-agde;
-agdf;
-agdg;
-agdh;
-agdi;
-agdj;
-agdk;
-agdl;
-agdm;
-agdn;
-agdo;
-agdp;
-agdq;
-agdr;
-agds;
-agdt;
-agdu;
-agdv;
-agdw;
-agdx;
-agdy;
-agdz;
-agea;
-ageb;
-agec;
-aged;
-agee;
-agef;
-ageg;
-ageh;
-agei;
-agej;
-agek;
-agel;
-agem;
-agen;
-ageo;
-agep;
-ageq;
-ager;
-ages;
-aget;
-ageu;
-agev;
-agew;
-agex;
-agey;
-agez;
-agfa;
-agfb;
-agfc;
-agfd;
-agfe;
-agff;
-agfg;
-agfh;
-agfi;
-agfj;
-agfk;
-agfl;
-agfm;
-agfn;
-agfo;
-agfp;
-agfq;
-agfr;
-agfs;
-agft;
-agfu;
-agfv;
-agfw;
-agfx;
-agfy;
-agfz;
-agga;
-aggb;
-aggc;
-aggd;
-agge;
-aggf;
-aggg;
-aggh;
-aggi;
-aggj;
-aggk;
-aggl;
-aggm;
-aggn;
-aggo;
-aggp;
-aggq;
-aggr;
-aggs;
-aggt;
-aggu;
-aggv;
-aggw;
-aggx;
-aggy;
-aggz;
-agha;
-aghb;
-aghc;
-aghd;
-aghe;
-aghf;
-aghg;
-aghh;
-aghi;
-aghj;
-aghk;
-aghl;
-aghm;
-aghn;
-agho;
-aghp;
-aghq;
-aghr;
-aghs;
-aght;
-aghu;
-aghv;
-aghw;
-aghx;
-aghy;
-aghz;
-agia;
-agib;
-agic;
-agid;
-agie;
-agif;
-agig;
-agih;
-agii;
-agij;
-agik;
-agil;
-agim;
-agin;
-agio;
-agip;
-agiq;
-agir;
-agis;
-agit;
-agiu;
-agiv;
-agiw;
-agix;
-agiy;
-agiz;
-agja;
-agjb;
-agjc;
-agjd;
-agje;
-agjf;
-agjg;
-agjh;
-agji;
-agjj;
-agjk;
-agjl;
-agjm;
-agjn;
-agjo;
-agjp;
-agjq;
-agjr;
-agjs;
-agjt;
-agju;
-agjv;
-agjw;
-agjx;
-agjy;
-agjz;
-agka;
-agkb;
-agkc;
-agkd;
-agke;
-agkf;
-agkg;
-agkh;
-agki;
-agkj;
-agkk;
-agkl;
-agkm;
-agkn;
-agko;
-agkp;
-agkq;
-agkr;
-agks;
-agkt;
-agku;
-agkv;
-agkw;
-agkx;
-agky;
-agkz;
-agla;
-aglb;
-aglc;
-agld;
-agle;
-aglf;
-aglg;
-aglh;
-agli;
-aglj;
-aglk;
-agll;
-aglm;
-agln;
-aglo;
-aglp;
-aglq;
-aglr;
-agls;
-aglt;
-aglu;
-aglv;
-aglw;
-aglx;
-agly;
-aglz;
-agma;
-agmb;
-agmc;
-agmd;
-agme;
-agmf;
-agmg;
-agmh;
-agmi;
-agmj;
-agmk;
-agml;
-agmm;
-agmn;
-agmo;
-agmp;
-agmq;
-agmr;
-agms;
-agmt;
-agmu;
-agmv;
-agmw;
-agmx;
-agmy;
-agmz;
-agna;
-agnb;
-agnc;
-agnd;
-agne;
-agnf;
-agng;
-agnh;
-agni;
-agnj;
-agnk;
-agnl;
-agnm;
-agnn;
-agno;
-agnp;
-agnq;
-agnr;
-agns;
-agnt;
-agnu;
-agnv;
-agnw;
-agnx;
-agny;
-agnz;
-agoa;
-agob;
-agoc;
-agod;
-agoe;
-agof;
-agog;
-agoh;
-agoi;
-agoj;
-agok;
-agol;
-agom;
-agon;
-agoo;
-agop;
-agoq;
-agor;
-agos;
-agot;
-agou;
-agov;
-agow;
-agox;
-agoy;
-agoz;
-agpa;
-agpb;
-agpc;
-agpd;
-agpe;
-agpf;
-agpg;
-agph;
-agpi;
-agpj;
-agpk;
-agpl;
-agpm;
-agpn;
-agpo;
-agpp;
-agpq;
-agpr;
-agps;
-agpt;
-agpu;
-agpv;
-agpw;
-agpx;
-agpy;
-agpz;
-agqa;
-agqb;
-agqc;
-agqd;
-agqe;
-agqf;
-agqg;
-agqh;
-agqi;
-agqj;
-agqk;
-agql;
-agqm;
-agqn;
-agqo;
-agqp;
-agqq;
-agqr;
-agqs;
-agqt;
-agqu;
-agqv;
-agqw;
-agqx;
-agqy;
-agqz;
-agra;
-agrb;
-agrc;
-agrd;
-agre;
-agrf;
-agrg;
-agrh;
-agri;
-agrj;
-agrk;
-agrl;
-agrm;
-agrn;
-agro;
-agrp;
-agrq;
-agrr;
-agrs;
-agrt;
-agru;
-agrv;
-agrw;
-agrx;
-agry;
-agrz;
-agsa;
-agsb;
-agsc;
-agsd;
-agse;
-agsf;
-agsg;
-agsh;
-agsi;
-agsj;
-agsk;
-agsl;
-agsm;
-agsn;
-agso;
-agsp;
-agsq;
-agsr;
-agss;
-agst;
-agsu;
-agsv;
-agsw;
-agsx;
-agsy;
-agsz;
-agta;
-agtb;
-agtc;
-agtd;
-agte;
-agtf;
-agtg;
-agth;
-agti;
-agtj;
-agtk;
-agtl;
-agtm;
-agtn;
-agto;
-agtp;
-agtq;
-agtr;
-agts;
-agtt;
-agtu;
-agtv;
-agtw;
-agtx;
-agty;
-agtz;
-agua;
-agub;
-aguc;
-agud;
-ague;
-aguf;
-agug;
-aguh;
-agui;
-aguj;
-aguk;
-agul;
-agum;
-agun;
-aguo;
-agup;
-aguq;
-agur;
-agus;
-agut;
-aguu;
-aguv;
-aguw;
-agux;
-aguy;
-aguz;
-agva;
-agvb;
-agvc;
-agvd;
-agve;
-agvf;
-agvg;
-agvh;
-agvi;
-agvj;
-agvk;
-agvl;
-agvm;
-agvn;
-agvo;
-agvp;
-agvq;
-agvr;
-agvs;
-agvt;
-agvu;
-agvv;
-agvw;
-agvx;
-agvy;
-agvz;
-agwa;
-agwb;
-agwc;
-agwd;
-agwe;
-agwf;
-agwg;
-agwh;
-agwi;
-agwj;
-agwk;
-agwl;
-agwm;
-agwn;
-agwo;
-agwp;
-agwq;
-agwr;
-agws;
-agwt;
-agwu;
-agwv;
-agww;
-agwx;
-agwy;
-agwz;
-agxa;
-agxb;
-agxc;
-agxd;
-agxe;
-agxf;
-agxg;
-agxh;
-agxi;
-agxj;
-agxk;
-agxl;
-agxm;
-agxn;
-agxo;
-agxp;
-agxq;
-agxr;
-agxs;
-agxt;
-agxu;
-agxv;
-agxw;
-agxx;
-agxy;
-agxz;
-agya;
-agyb;
-agyc;
-agyd;
-agye;
-agyf;
-agyg;
-agyh;
-agyi;
-agyj;
-agyk;
-agyl;
-agym;
-agyn;
-agyo;
-agyp;
-agyq;
-agyr;
-agys;
-agyt;
-agyu;
-agyv;
-agyw;
-agyx;
-agyy;
-agyz;
-agza;
-agzb;
-agzc;
-agzd;
-agze;
-agzf;
-agzg;
-agzh;
-agzi;
-agzj;
-agzk;
-agzl;
-agzm;
-agzn;
-agzo;
-agzp;
-agzq;
-agzr;
-agzs;
-agzt;
-agzu;
-agzv;
-agzw;
-agzx;
-agzy;
-agzz;
-ahaa;
-ahab;
-ahac;
-ahad;
-ahae;
-ahaf;
-ahag;
-ahah;
-ahai;
-ahaj;
-ahak;
-ahal;
-aham;
-ahan;
-ahao;
-ahap;
-ahaq;
-ahar;
-ahas;
-ahat;
-ahau;
-ahav;
-ahaw;
-ahax;
-ahay;
-ahaz;
-ahba;
-ahbb;
-ahbc;
-ahbd;
-ahbe;
-ahbf;
-ahbg;
-ahbh;
-ahbi;
-ahbj;
-ahbk;
-ahbl;
-ahbm;
-ahbn;
-ahbo;
-ahbp;
-ahbq;
-ahbr;
-ahbs;
-ahbt;
-ahbu;
-ahbv;
-ahbw;
-ahbx;
-ahby;
-ahbz;
-ahca;
-ahcb;
-ahcc;
-ahcd;
-ahce;
-ahcf;
-ahcg;
-ahch;
-ahci;
-ahcj;
-ahck;
-ahcl;
-ahcm;
-ahcn;
-ahco;
-ahcp;
-ahcq;
-ahcr;
-ahcs;
-ahct;
-ahcu;
-ahcv;
-ahcw;
-ahcx;
-ahcy;
-ahcz;
-ahda;
-ahdb;
-ahdc;
-ahdd;
-ahde;
-ahdf;
-ahdg;
-ahdh;
-ahdi;
-ahdj;
-ahdk;
-ahdl;
-ahdm;
-ahdn;
-ahdo;
-ahdp;
-ahdq;
-ahdr;
-ahds;
-ahdt;
-ahdu;
-ahdv;
-ahdw;
-ahdx;
-ahdy;
-ahdz;
-ahea;
-aheb;
-ahec;
-ahed;
-ahee;
-ahef;
-aheg;
-aheh;
-ahei;
-ahej;
-ahek;
-ahel;
-ahem;
-ahen;
-aheo;
-ahep;
-aheq;
-aher;
-ahes;
-ahet;
-aheu;
-ahev;
-ahew;
-ahex;
-ahey;
-ahez;
-ahfa;
-ahfb;
-ahfc;
-ahfd;
-ahfe;
-ahff;
-ahfg;
-ahfh;
-ahfi;
-ahfj;
-ahfk;
-ahfl;
-ahfm;
-ahfn;
-ahfo;
-ahfp;
-ahfq;
-ahfr;
-ahfs;
-ahft;
-ahfu;
-ahfv;
-ahfw;
-ahfx;
-ahfy;
-ahfz;
-ahga;
-ahgb;
-ahgc;
-ahgd;
-ahge;
-ahgf;
-ahgg;
-ahgh;
-ahgi;
-ahgj;
-ahgk;
-ahgl;
-ahgm;
-ahgn;
-ahgo;
-ahgp;
-ahgq;
-ahgr;
-ahgs;
-ahgt;
-ahgu;
-ahgv;
-ahgw;
-ahgx;
-ahgy;
-ahgz;
-ahha;
-ahhb;
-ahhc;
-ahhd;
-ahhe;
-ahhf;
-ahhg;
-ahhh;
-ahhi;
-ahhj;
-ahhk;
-ahhl;
-ahhm;
-ahhn;
-ahho;
-ahhp;
-ahhq;
-ahhr;
-ahhs;
-ahht;
-ahhu;
-ahhv;
-ahhw;
-ahhx;
-ahhy;
-ahhz;
-ahia;
-ahib;
-ahic;
-ahid;
-ahie;
-ahif;
-ahig;
-ahih;
-ahii;
-ahij;
-ahik;
-ahil;
-ahim;
-ahin;
-ahio;
-ahip;
-ahiq;
-ahir;
-ahis;
-ahit;
-ahiu;
-ahiv;
-ahiw;
-ahix;
-ahiy;
-ahiz;
-ahja;
-ahjb;
-ahjc;
-ahjd;
-ahje;
-ahjf;
-ahjg;
-ahjh;
-ahji;
-ahjj;
-ahjk;
-ahjl;
-ahjm;
-ahjn;
-ahjo;
-ahjp;
-ahjq;
-ahjr;
-ahjs;
-ahjt;
-ahju;
-ahjv;
-ahjw;
-ahjx;
-ahjy;
-ahjz;
-ahka;
-ahkb;
-ahkc;
-ahkd;
-ahke;
-ahkf;
-ahkg;
-ahkh;
-ahki;
-ahkj;
-ahkk;
-ahkl;
-ahkm;
-ahkn;
-ahko;
-ahkp;
-ahkq;
-ahkr;
-ahks;
-ahkt;
-ahku;
-ahkv;
-ahkw;
-ahkx;
-ahky;
-ahkz;
-ahla;
-ahlb;
-ahlc;
-ahld;
-ahle;
-ahlf;
-ahlg;
-ahlh;
-ahli;
-ahlj;
-ahlk;
-ahll;
-ahlm;
-ahln;
-ahlo;
-ahlp;
-ahlq;
-ahlr;
-ahls;
-ahlt;
-ahlu;
-ahlv;
-ahlw;
-ahlx;
-ahly;
-ahlz;
-ahma;
-ahmb;
-ahmc;
-ahmd;
-ahme;
-ahmf;
-ahmg;
-ahmh;
-ahmi;
-ahmj;
-ahmk;
-ahml;
-ahmm;
-ahmn;
-ahmo;
-ahmp;
-ahmq;
-ahmr;
-ahms;
-ahmt;
-ahmu;
-ahmv;
-ahmw;
-ahmx;
-ahmy;
-ahmz;
-ahna;
-ahnb;
-ahnc;
-ahnd;
-ahne;
-ahnf;
-ahng;
-ahnh;
-ahni;
-ahnj;
-ahnk;
-ahnl;
-ahnm;
-ahnn;
-ahno;
-ahnp;
-ahnq;
-ahnr;
-ahns;
-ahnt;
-ahnu;
-ahnv;
-ahnw;
-ahnx;
-ahny;
-ahnz;
-ahoa;
-ahob;
-ahoc;
-ahod;
-ahoe;
-ahof;
-ahog;
-ahoh;
-ahoi;
-ahoj;
-ahok;
-ahol;
-ahom;
-ahon;
-ahoo;
-ahop;
-ahoq;
-ahor;
-ahos;
-ahot;
-ahou;
-ahov;
-ahow;
-ahox;
-ahoy;
-ahoz;
-ahpa;
-ahpb;
-ahpc;
-ahpd;
-ahpe;
-ahpf;
-ahpg;
-ahph;
-ahpi;
-ahpj;
-ahpk;
-ahpl;
-ahpm;
-ahpn;
-ahpo;
-ahpp;
-ahpq;
-ahpr;
-ahps;
-ahpt;
-ahpu;
-ahpv;
-ahpw;
-ahpx;
-ahpy;
-ahpz;
-ahqa;
-ahqb;
-ahqc;
-ahqd;
-ahqe;
-ahqf;
-ahqg;
-ahqh;
-ahqi;
-ahqj;
-ahqk;
-ahql;
-ahqm;
-ahqn;
-ahqo;
-ahqp;
-ahqq;
-ahqr;
-ahqs;
-ahqt;
-ahqu;
-ahqv;
-ahqw;
-ahqx;
-ahqy;
-ahqz;
-ahra;
-ahrb;
-ahrc;
-ahrd;
-ahre;
-ahrf;
-ahrg;
-ahrh;
-ahri;
-ahrj;
-ahrk;
-ahrl;
-ahrm;
-ahrn;
-ahro;
-ahrp;
-ahrq;
-ahrr;
-ahrs;
-ahrt;
-ahru;
-ahrv;
-ahrw;
-ahrx;
-ahry;
-ahrz;
-ahsa;
-ahsb;
-ahsc;
-ahsd;
-ahse;
-ahsf;
-ahsg;
-ahsh;
-ahsi;
-ahsj;
-ahsk;
-ahsl;
-ahsm;
-ahsn;
-ahso;
-ahsp;
-ahsq;
-ahsr;
-ahss;
-ahst;
-ahsu;
-ahsv;
-ahsw;
-ahsx;
-ahsy;
-ahsz;
-ahta;
-ahtb;
-ahtc;
-ahtd;
-ahte;
-ahtf;
-ahtg;
-ahth;
-ahti;
-ahtj;
-ahtk;
-ahtl;
-ahtm;
-ahtn;
-ahto;
-ahtp;
-ahtq;
-ahtr;
-ahts;
-ahtt;
-ahtu;
-ahtv;
-ahtw;
-ahtx;
-ahty;
-ahtz;
-ahua;
-ahub;
-ahuc;
-ahud;
-ahue;
-ahuf;
-ahug;
-ahuh;
-ahui;
-ahuj;
-ahuk;
-ahul;
-ahum;
-ahun;
-ahuo;
-ahup;
-ahuq;
-ahur;
-ahus;
-ahut;
-ahuu;
-ahuv;
-ahuw;
-ahux;
-ahuy;
-ahuz;
-ahva;
-ahvb;
-ahvc;
-ahvd;
-ahve;
-ahvf;
-ahvg;
-ahvh;
-ahvi;
-ahvj;
-ahvk;
-ahvl;
-ahvm;
-ahvn;
-ahvo;
-ahvp;
-ahvq;
-ahvr;
-ahvs;
-ahvt;
-ahvu;
-ahvv;
-ahvw;
-ahvx;
-ahvy;
-ahvz;
-ahwa;
-ahwb;
-ahwc;
-ahwd;
-ahwe;
-ahwf;
-ahwg;
-ahwh;
-ahwi;
-ahwj;
-ahwk;
-ahwl;
-ahwm;
-ahwn;
-ahwo;
-ahwp;
-ahwq;
-ahwr;
-ahws;
-ahwt;
-ahwu;
-ahwv;
-ahww;
-ahwx;
-ahwy;
-ahwz;
-ahxa;
-ahxb;
-ahxc;
-ahxd;
-ahxe;
-ahxf;
-ahxg;
-ahxh;
-ahxi;
-ahxj;
-ahxk;
-ahxl;
-ahxm;
-ahxn;
-ahxo;
-ahxp;
-ahxq;
-ahxr;
-ahxs;
-ahxt;
-ahxu;
-ahxv;
-ahxw;
-ahxx;
-ahxy;
-ahxz;
-ahya;
-ahyb;
-ahyc;
-ahyd;
-ahye;
-ahyf;
-ahyg;
-ahyh;
-ahyi;
-ahyj;
-ahyk;
-ahyl;
-ahym;
-ahyn;
-ahyo;
-ahyp;
-ahyq;
-ahyr;
-ahys;
-ahyt;
-ahyu;
-ahyv;
-ahyw;
-ahyx;
-ahyy;
-ahyz;
-ahza;
-ahzb;
-ahzc;
-ahzd;
-ahze;
-ahzf;
-ahzg;
-ahzh;
-ahzi;
-ahzj;
-ahzk;
-ahzl;
-ahzm;
-ahzn;
-ahzo;
-ahzp;
-ahzq;
-ahzr;
-ahzs;
-ahzt;
-ahzu;
-ahzv;
-ahzw;
-ahzx;
-ahzy;
-ahzz;
-aiaa;
-aiab;
-aiac;
-aiad;
-aiae;
-aiaf;
-aiag;
-aiah;
-aiai;
-aiaj;
-aiak;
-aial;
-aiam;
-aian;
-aiao;
-aiap;
-aiaq;
-aiar;
-aias;
-aiat;
-aiau;
-aiav;
-aiaw;
-aiax;
-aiay;
-aiaz;
-aiba;
-aibb;
-aibc;
-aibd;
-aibe;
-aibf;
-aibg;
-aibh;
-aibi;
-aibj;
-aibk;
-aibl;
-aibm;
-aibn;
-aibo;
-aibp;
-aibq;
-aibr;
-aibs;
-aibt;
-aibu;
-aibv;
-aibw;
-aibx;
-aiby;
-aibz;
-aica;
-aicb;
-aicc;
-aicd;
-aice;
-aicf;
-aicg;
-aich;
-aici;
-aicj;
-aick;
-aicl;
-aicm;
-aicn;
-aico;
-aicp;
-aicq;
-aicr;
-aics;
-aict;
-aicu;
-aicv;
-aicw;
-aicx;
-aicy;
-aicz;
-aida;
-aidb;
-aidc;
-aidd;
-aide;
-aidf;
-aidg;
-aidh;
-aidi;
-aidj;
-aidk;
-aidl;
-aidm;
-aidn;
-aido;
-aidp;
-aidq;
-aidr;
-aids;
-aidt;
-aidu;
-aidv;
-aidw;
-aidx;
-aidy;
-aidz;
-aiea;
-aieb;
-aiec;
-aied;
-aiee;
-aief;
-aieg;
-aieh;
-aiei;
-aiej;
-aiek;
-aiel;
-aiem;
-aien;
-aieo;
-aiep;
-aieq;
-aier;
-aies;
-aiet;
-aieu;
-aiev;
-aiew;
-aiex;
-aiey;
-aiez;
-aifa;
-aifb;
-aifc;
-aifd;
-aife;
-aiff;
-aifg;
-aifh;
-aifi;
-aifj;
-aifk;
-aifl;
-aifm;
-aifn;
-aifo;
-aifp;
-aifq;
-aifr;
-aifs;
-aift;
-aifu;
-aifv;
-aifw;
-aifx;
-aify;
-aifz;
-aiga;
-aigb;
-aigc;
-aigd;
-aige;
-aigf;
-aigg;
-aigh;
-aigi;
-aigj;
-aigk;
-aigl;
-aigm;
-aign;
-aigo;
-aigp;
-aigq;
-aigr;
-aigs;
-aigt;
-aigu;
-aigv;
-aigw;
-aigx;
-aigy;
-aigz;
-aiha;
-aihb;
-aihc;
-aihd;
-aihe;
-aihf;
-aihg;
-aihh;
-aihi;
-aihj;
-aihk;
-aihl;
-aihm;
-aihn;
-aiho;
-aihp;
-aihq;
-aihr;
-aihs;
-aiht;
-aihu;
-aihv;
-aihw;
-aihx;
-aihy;
-aihz;
-aiia;
-aiib;
-aiic;
-aiid;
-aiie;
-aiif;
-aiig;
-aiih;
-aiii;
-aiij;
-aiik;
-aiil;
-aiim;
-aiin;
-aiio;
-aiip;
-aiiq;
-aiir;
-aiis;
-aiit;
-aiiu;
-aiiv;
-aiiw;
-aiix;
-aiiy;
-aiiz;
-aija;
-aijb;
-aijc;
-aijd;
-aije;
-aijf;
-aijg;
-aijh;
-aiji;
-aijj;
-aijk;
-aijl;
-aijm;
-aijn;
-aijo;
-aijp;
-aijq;
-aijr;
-aijs;
-aijt;
-aiju;
-aijv;
-aijw;
-aijx;
-aijy;
-aijz;
-aika;
-aikb;
-aikc;
-aikd;
-aike;
-aikf;
-aikg;
-aikh;
-aiki;
-aikj;
-aikk;
-aikl;
-aikm;
-aikn;
-aiko;
-aikp;
-aikq;
-aikr;
-aiks;
-aikt;
-aiku;
-aikv;
-aikw;
-aikx;
-aiky;
-aikz;
-aila;
-ailb;
-ailc;
-aild;
-aile;
-ailf;
-ailg;
-ailh;
-aili;
-ailj;
-ailk;
-aill;
-ailm;
-ailn;
-ailo;
-ailp;
-ailq;
-ailr;
-ails;
-ailt;
-ailu;
-ailv;
-ailw;
-ailx;
-aily;
-ailz;
-aima;
-aimb;
-aimc;
-aimd;
-aime;
-aimf;
-aimg;
-aimh;
-aimi;
-aimj;
-aimk;
-aiml;
-aimm;
-aimn;
-aimo;
-aimp;
-aimq;
-aimr;
-aims;
-aimt;
-aimu;
-aimv;
-aimw;
-aimx;
-aimy;
-aimz;
-aina;
-ainb;
-ainc;
-aind;
-aine;
-ainf;
-aing;
-ainh;
-aini;
-ainj;
-aink;
-ainl;
-ainm;
-ainn;
-aino;
-ainp;
-ainq;
-ainr;
-ains;
-aint;
-ainu;
-ainv;
-ainw;
-ainx;
-ainy;
-ainz;
-aioa;
-aiob;
-aioc;
-aiod;
-aioe;
-aiof;
-aiog;
-aioh;
-aioi;
-aioj;
-aiok;
-aiol;
-aiom;
-aion;
-aioo;
-aiop;
-aioq;
-aior;
-aios;
-aiot;
-aiou;
-aiov;
-aiow;
-aiox;
-aioy;
-aioz;
-aipa;
-aipb;
-aipc;
-aipd;
-aipe;
-aipf;
-aipg;
-aiph;
-aipi;
-aipj;
-aipk;
-aipl;
-aipm;
-aipn;
-aipo;
-aipp;
-aipq;
-aipr;
-aips;
-aipt;
-aipu;
-aipv;
-aipw;
-aipx;
-aipy;
-aipz;
-aiqa;
-aiqb;
-aiqc;
-aiqd;
-aiqe;
-aiqf;
-aiqg;
-aiqh;
-aiqi;
-aiqj;
-aiqk;
-aiql;
-aiqm;
-aiqn;
-aiqo;
-aiqp;
-aiqq;
-aiqr;
-aiqs;
-aiqt;
-aiqu;
-aiqv;
-aiqw;
-aiqx;
-aiqy;
-aiqz;
-aira;
-airb;
-airc;
-aird;
-aire;
-airf;
-airg;
-airh;
-airi;
-airj;
-airk;
-airl;
-airm;
-airn;
-airo;
-airp;
-airq;
-airr;
-airs;
-airt;
-airu;
-airv;
-airw;
-airx;
-airy;
-airz;
-aisa;
-aisb;
-aisc;
-aisd;
-aise;
-aisf;
-aisg;
-aish;
-aisi;
-aisj;
-aisk;
-aisl;
-aism;
-aisn;
-aiso;
-aisp;
-aisq;
-aisr;
-aiss;
-aist;
-aisu;
-aisv;
-aisw;
-aisx;
-aisy;
-aisz;
-aita;
-aitb;
-aitc;
-aitd;
-aite;
-aitf;
-aitg;
-aith;
-aiti;
-aitj;
-aitk;
-aitl;
-aitm;
-aitn;
-aito;
-aitp;
-aitq;
-aitr;
-aits;
-aitt;
-aitu;
-aitv;
-aitw;
-aitx;
-aity;
-aitz;
-aiua;
-aiub;
-aiuc;
-aiud;
-aiue;
-aiuf;
-aiug;
-aiuh;
-aiui;
-aiuj;
-aiuk;
-aiul;
-aium;
-aiun;
-aiuo;
-aiup;
-aiuq;
-aiur;
-aius;
-aiut;
-aiuu;
-aiuv;
-aiuw;
-aiux;
-aiuy;
-aiuz;
-aiva;
-aivb;
-aivc;
-aivd;
-aive;
-aivf;
-aivg;
-aivh;
-aivi;
-aivj;
-aivk;
-aivl;
-aivm;
-aivn;
-aivo;
-aivp;
-aivq;
-aivr;
-aivs;
-aivt;
-aivu;
-aivv;
-aivw;
-aivx;
-aivy;
-aivz;
-aiwa;
-aiwb;
-aiwc;
-aiwd;
-aiwe;
-aiwf;
-aiwg;
-aiwh;
-aiwi;
-aiwj;
-aiwk;
-aiwl;
-aiwm;
-aiwn;
-aiwo;
-aiwp;
-aiwq;
-aiwr;
-aiws;
-aiwt;
-aiwu;
-aiwv;
-aiww;
-aiwx;
-aiwy;
-aiwz;
-aixa;
-aixb;
-aixc;
-aixd;
-aixe;
-aixf;
-aixg;
-aixh;
-aixi;
-aixj;
-aixk;
-aixl;
-aixm;
-aixn;
-aixo;
-aixp;
-aixq;
-aixr;
-aixs;
-aixt;
-aixu;
-aixv;
-aixw;
-aixx;
-aixy;
-aixz;
-aiya;
-aiyb;
-aiyc;
-aiyd;
-aiye;
-aiyf;
-aiyg;
-aiyh;
-aiyi;
-aiyj;
-aiyk;
-aiyl;
-aiym;
-aiyn;
-aiyo;
-aiyp;
-aiyq;
-aiyr;
-aiys;
-aiyt;
-aiyu;
-aiyv;
-aiyw;
-aiyx;
-aiyy;
-aiyz;
-aiza;
-aizb;
-aizc;
-aizd;
-aize;
-aizf;
-aizg;
-aizh;
-aizi;
-aizj;
-aizk;
-aizl;
-aizm;
-aizn;
-aizo;
-aizp;
-aizq;
-aizr;
-aizs;
-aizt;
-aizu;
-aizv;
-aizw;
-aizx;
-aizy;
-aizz;
-ajaa;
-ajab;
-ajac;
-ajad;
-ajae;
-ajaf;
-ajag;
-ajah;
-ajai;
-ajaj;
-ajak;
-ajal;
-ajam;
-ajan;
-ajao;
-ajap;
-ajaq;
-ajar;
-ajas;
-ajat;
-ajau;
-ajav;
-ajaw;
-ajax;
-ajay;
-ajaz;
-ajba;
-ajbb;
-ajbc;
-ajbd;
-ajbe;
-ajbf;
-ajbg;
-ajbh;
-ajbi;
-ajbj;
-ajbk;
-ajbl;
-ajbm;
-ajbn;
-ajbo;
-ajbp;
-ajbq;
-ajbr;
-ajbs;
-ajbt;
-ajbu;
-ajbv;
-ajbw;
-ajbx;
-ajby;
-ajbz;
-ajca;
-ajcb;
-ajcc;
-ajcd;
-ajce;
-ajcf;
-ajcg;
-ajch;
-ajci;
-ajcj;
-ajck;
-ajcl;
-ajcm;
-ajcn;
-ajco;
-ajcp;
-ajcq;
-ajcr;
-ajcs;
-ajct;
-ajcu;
-ajcv;
-ajcw;
-ajcx;
-ajcy;
-ajcz;
-ajda;
-ajdb;
-ajdc;
-ajdd;
-ajde;
-ajdf;
-ajdg;
-ajdh;
-ajdi;
-ajdj;
-ajdk;
-ajdl;
-ajdm;
-ajdn;
-ajdo;
-ajdp;
-ajdq;
-ajdr;
-ajds;
-ajdt;
-ajdu;
-ajdv;
-ajdw;
-ajdx;
-ajdy;
-ajdz;
-ajea;
-ajeb;
-ajec;
-ajed;
-ajee;
-ajef;
-ajeg;
-ajeh;
-ajei;
-ajej;
-ajek;
-ajel;
-ajem;
-ajen;
-ajeo;
-ajep;
-ajeq;
-ajer;
-ajes;
-ajet;
-ajeu;
-ajev;
-ajew;
-ajex;
-ajey;
-ajez;
-ajfa;
-ajfb;
-ajfc;
-ajfd;
-ajfe;
-ajff;
-ajfg;
-ajfh;
-ajfi;
-ajfj;
-ajfk;
-ajfl;
-ajfm;
-ajfn;
-ajfo;
-ajfp;
-ajfq;
-ajfr;
-ajfs;
-ajft;
-ajfu;
-ajfv;
-ajfw;
-ajfx;
-ajfy;
-ajfz;
-ajga;
-ajgb;
-ajgc;
-ajgd;
-ajge;
-ajgf;
-ajgg;
-ajgh;
-ajgi;
-ajgj;
-ajgk;
-ajgl;
-ajgm;
-ajgn;
-ajgo;
-ajgp;
-ajgq;
-ajgr;
-ajgs;
-ajgt;
-ajgu;
-ajgv;
-ajgw;
-ajgx;
-ajgy;
-ajgz;
-ajha;
-ajhb;
-ajhc;
-ajhd;
-ajhe;
-ajhf;
-ajhg;
-ajhh;
-ajhi;
-ajhj;
-ajhk;
-ajhl;
-ajhm;
-ajhn;
-ajho;
-ajhp;
-ajhq;
-ajhr;
-ajhs;
-ajht;
-ajhu;
-ajhv;
-ajhw;
-ajhx;
-ajhy;
-ajhz;
-ajia;
-ajib;
-ajic;
-ajid;
-ajie;
-ajif;
-ajig;
-ajih;
-ajii;
-ajij;
-ajik;
-ajil;
-ajim;
-ajin;
-ajio;
-ajip;
-ajiq;
-ajir;
-ajis;
-ajit;
-ajiu;
-ajiv;
-ajiw;
-ajix;
-ajiy;
-ajiz;
-ajja;
-ajjb;
-ajjc;
-ajjd;
-ajje;
-ajjf;
-ajjg;
-ajjh;
-ajji;
-ajjj;
-ajjk;
-ajjl;
-ajjm;
-ajjn;
-ajjo;
-ajjp;
-ajjq;
-ajjr;
-ajjs;
-ajjt;
-ajju;
-ajjv;
-ajjw;
-ajjx;
-ajjy;
-ajjz;
-ajka;
-ajkb;
-ajkc;
-ajkd;
-ajke;
-ajkf;
-ajkg;
-ajkh;
-ajki;
-ajkj;
-ajkk;
-ajkl;
-ajkm;
-ajkn;
-ajko;
-ajkp;
-ajkq;
-ajkr;
-ajks;
-ajkt;
-ajku;
-ajkv;
-ajkw;
-ajkx;
-ajky;
-ajkz;
-ajla;
-ajlb;
-ajlc;
-ajld;
-ajle;
-ajlf;
-ajlg;
-ajlh;
-ajli;
-ajlj;
-ajlk;
-ajll;
-ajlm;
-ajln;
-ajlo;
-ajlp;
-ajlq;
-ajlr;
-ajls;
-ajlt;
-ajlu;
-ajlv;
-ajlw;
-ajlx;
-ajly;
-ajlz;
-ajma;
-ajmb;
-ajmc;
-ajmd;
-ajme;
-ajmf;
-ajmg;
-ajmh;
-ajmi;
-ajmj;
-ajmk;
-ajml;
-ajmm;
-ajmn;
-ajmo;
-ajmp;
-ajmq;
-ajmr;
-ajms;
-ajmt;
-ajmu;
-ajmv;
-ajmw;
-ajmx;
-ajmy;
-ajmz;
-ajna;
-ajnb;
-ajnc;
-ajnd;
-ajne;
-ajnf;
-ajng;
-ajnh;
-ajni;
-ajnj;
-ajnk;
-ajnl;
-ajnm;
-ajnn;
-ajno;
-ajnp;
-ajnq;
-ajnr;
-ajns;
-ajnt;
-ajnu;
-ajnv;
-ajnw;
-ajnx;
-ajny;
-ajnz;
-ajoa;
-ajob;
-ajoc;
-ajod;
-ajoe;
-ajof;
-ajog;
-ajoh;
-ajoi;
-ajoj;
-ajok;
-ajol;
-ajom;
-ajon;
-ajoo;
-ajop;
-ajoq;
-ajor;
-ajos;
-ajot;
-ajou;
-ajov;
-ajow;
-ajox;
-ajoy;
-ajoz;
-ajpa;
-ajpb;
-ajpc;
-ajpd;
-ajpe;
-ajpf;
-ajpg;
-ajph;
-ajpi;
-ajpj;
-ajpk;
-ajpl;
-ajpm;
-ajpn;
-ajpo;
-ajpp;
-ajpq;
-ajpr;
-ajps;
-ajpt;
-ajpu;
-ajpv;
-ajpw;
-ajpx;
-ajpy;
-ajpz;
-ajqa;
-ajqb;
-ajqc;
-ajqd;
-ajqe;
-ajqf;
-ajqg;
-ajqh;
-ajqi;
-ajqj;
-ajqk;
-ajql;
-ajqm;
-ajqn;
-ajqo;
-ajqp;
-ajqq;
-ajqr;
-ajqs;
-ajqt;
-ajqu;
-ajqv;
-ajqw;
-ajqx;
-ajqy;
-ajqz;
-ajra;
-ajrb;
-ajrc;
-ajrd;
-ajre;
-ajrf;
-ajrg;
-ajrh;
-ajri;
-ajrj;
-ajrk;
-ajrl;
-ajrm;
-ajrn;
-ajro;
-ajrp;
-ajrq;
-ajrr;
-ajrs;
-ajrt;
-ajru;
-ajrv;
-ajrw;
-ajrx;
-ajry;
-ajrz;
-ajsa;
-ajsb;
-ajsc;
-ajsd;
-ajse;
-ajsf;
-ajsg;
-ajsh;
-ajsi;
-ajsj;
-ajsk;
-ajsl;
-ajsm;
-ajsn;
-ajso;
-ajsp;
-ajsq;
-ajsr;
-ajss;
-ajst;
-ajsu;
-ajsv;
-ajsw;
-ajsx;
-ajsy;
-ajsz;
-ajta;
-ajtb;
-ajtc;
-ajtd;
-ajte;
-ajtf;
-ajtg;
-ajth;
-ajti;
-ajtj;
-ajtk;
-ajtl;
-ajtm;
-ajtn;
-ajto;
-ajtp;
-ajtq;
-ajtr;
-ajts;
-ajtt;
-ajtu;
-ajtv;
-ajtw;
-ajtx;
-ajty;
-ajtz;
-ajua;
-ajub;
-ajuc;
-ajud;
-ajue;
-ajuf;
-ajug;
-ajuh;
-ajui;
-ajuj;
-ajuk;
-ajul;
-ajum;
-ajun;
-ajuo;
-ajup;
-ajuq;
-ajur;
-ajus;
-ajut;
-ajuu;
-ajuv;
-ajuw;
-ajux;
-ajuy;
-ajuz;
-ajva;
-ajvb;
-ajvc;
-ajvd;
-ajve;
-ajvf;
-ajvg;
-ajvh;
-ajvi;
-ajvj;
-ajvk;
-ajvl;
-ajvm;
-ajvn;
-ajvo;
-ajvp;
-ajvq;
-ajvr;
-ajvs;
-ajvt;
-ajvu;
-ajvv;
-ajvw;
-ajvx;
-ajvy;
-ajvz;
-ajwa;
-ajwb;
-ajwc;
-ajwd;
-ajwe;
-ajwf;
-ajwg;
-ajwh;
-ajwi;
-ajwj;
-ajwk;
-ajwl;
-ajwm;
-ajwn;
-ajwo;
-ajwp;
-ajwq;
-ajwr;
-ajws;
-ajwt;
-ajwu;
-ajwv;
-ajww;
-ajwx;
-ajwy;
-ajwz;
-ajxa;
-ajxb;
-ajxc;
-ajxd;
-ajxe;
-ajxf;
-ajxg;
-ajxh;
-ajxi;
-ajxj;
-ajxk;
-ajxl;
-ajxm;
-ajxn;
-ajxo;
-ajxp;
-ajxq;
-ajxr;
-ajxs;
-ajxt;
-ajxu;
-ajxv;
-ajxw;
-ajxx;
-ajxy;
-ajxz;
-ajya;
-ajyb;
-ajyc;
-ajyd;
-ajye;
-ajyf;
-ajyg;
-ajyh;
-ajyi;
-ajyj;
-ajyk;
-ajyl;
-ajym;
-ajyn;
-ajyo;
-ajyp;
-ajyq;
-ajyr;
-ajys;
-ajyt;
-ajyu;
-ajyv;
-ajyw;
-ajyx;
-ajyy;
-ajyz;
-ajza;
-ajzb;
-ajzc;
-ajzd;
-ajze;
-ajzf;
-ajzg;
-ajzh;
-ajzi;
-ajzj;
-ajzk;
-ajzl;
-ajzm;
-ajzn;
-ajzo;
-ajzp;
-ajzq;
-ajzr;
-ajzs;
-ajzt;
-ajzu;
-ajzv;
-ajzw;
-ajzx;
-ajzy;
-ajzz;
-akaa;
-akab;
-akac;
-akad;
-akae;
-akaf;
-akag;
-akah;
-akai;
-akaj;
-akak;
-akal;
-akam;
-akan;
-akao;
-akap;
-akaq;
-akar;
-akas;
-akat;
-akau;
-akav;
-akaw;
-akax;
-akay;
-akaz;
-akba;
-akbb;
-akbc;
-akbd;
-akbe;
-akbf;
-akbg;
-akbh;
-akbi;
-akbj;
-akbk;
-akbl;
-akbm;
-akbn;
-akbo;
-akbp;
-akbq;
-akbr;
-akbs;
-akbt;
-akbu;
-akbv;
-akbw;
-akbx;
-akby;
-akbz;
-akca;
-akcb;
-akcc;
-akcd;
-akce;
-akcf;
-akcg;
-akch;
-akci;
-akcj;
-akck;
-akcl;
-akcm;
-akcn;
-akco;
-akcp;
-akcq;
-akcr;
-akcs;
-akct;
-akcu;
-akcv;
-akcw;
-akcx;
-akcy;
-akcz;
-akda;
-akdb;
-akdc;
-akdd;
-akde;
-akdf;
-akdg;
-akdh;
-akdi;
-akdj;
-akdk;
-akdl;
-akdm;
-akdn;
-akdo;
-akdp;
-akdq;
-akdr;
-akds;
-akdt;
-akdu;
-akdv;
-akdw;
-akdx;
-akdy;
-akdz;
-akea;
-akeb;
-akec;
-aked;
-akee;
-akef;
-akeg;
-akeh;
-akei;
-akej;
-akek;
-akel;
-akem;
-aken;
-akeo;
-akep;
-akeq;
-aker;
-akes;
-aket;
-akeu;
-akev;
-akew;
-akex;
-akey;
-akez;
-akfa;
-akfb;
-akfc;
-akfd;
-akfe;
-akff;
-akfg;
-akfh;
-akfi;
-akfj;
-akfk;
-akfl;
-akfm;
-akfn;
-akfo;
-akfp;
-akfq;
-akfr;
-akfs;
-akft;
-akfu;
-akfv;
-akfw;
-akfx;
-akfy;
-akfz;
-akga;
-akgb;
-akgc;
-akgd;
-akge;
-akgf;
-akgg;
-akgh;
-akgi;
-akgj;
-akgk;
-akgl;
-akgm;
-akgn;
-akgo;
-akgp;
-akgq;
-akgr;
-akgs;
-akgt;
-akgu;
-akgv;
-akgw;
-akgx;
-akgy;
-akgz;
-akha;
-akhb;
-akhc;
-akhd;
-akhe;
-akhf;
-akhg;
-akhh;
-akhi;
-akhj;
-akhk;
-akhl;
-akhm;
-akhn;
-akho;
-akhp;
-akhq;
-akhr;
-akhs;
-akht;
-akhu;
-akhv;
-akhw;
-akhx;
-akhy;
-akhz;
-akia;
-akib;
-akic;
-akid;
-akie;
-akif;
-akig;
-akih;
-akii;
-akij;
-akik;
-akil;
-akim;
-akin;
-akio;
-akip;
-akiq;
-akir;
-akis;
-akit;
-akiu;
-akiv;
-akiw;
-akix;
-akiy;
-akiz;
-akja;
-akjb;
-akjc;
-akjd;
-akje;
-akjf;
-akjg;
-akjh;
-akji;
-akjj;
-akjk;
-akjl;
-akjm;
-akjn;
-akjo;
-akjp;
-akjq;
-akjr;
-akjs;
-akjt;
-akju;
-akjv;
-akjw;
-akjx;
-akjy;
-akjz;
-akka;
-akkb;
-akkc;
-akkd;
-akke;
-akkf;
-akkg;
-akkh;
-akki;
-akkj;
-akkk;
-akkl;
-akkm;
-akkn;
-akko;
-akkp;
-akkq;
-akkr;
-akks;
-akkt;
-akku;
-akkv;
-akkw;
-akkx;
-akky;
-akkz;
-akla;
-aklb;
-aklc;
-akld;
-akle;
-aklf;
-aklg;
-aklh;
-akli;
-aklj;
-aklk;
-akll;
-aklm;
-akln;
-aklo;
-aklp;
-aklq;
-aklr;
-akls;
-aklt;
-aklu;
-aklv;
-aklw;
-aklx;
-akly;
-aklz;
-akma;
-akmb;
-akmc;
-akmd;
-akme;
-akmf;
-akmg;
-akmh;
-akmi;
-akmj;
-akmk;
-akml;
-akmm;
-akmn;
-akmo;
-akmp;
-akmq;
-akmr;
-akms;
-akmt;
-akmu;
-akmv;
-akmw;
-akmx;
-akmy;
-akmz;
-akna;
-aknb;
-aknc;
-aknd;
-akne;
-aknf;
-akng;
-aknh;
-akni;
-aknj;
-aknk;
-aknl;
-aknm;
-aknn;
-akno;
-aknp;
-aknq;
-aknr;
-akns;
-aknt;
-aknu;
-aknv;
-aknw;
-aknx;
-akny;
-aknz;
-akoa;
-akob;
-akoc;
-akod;
-akoe;
-akof;
-akog;
-akoh;
-akoi;
-akoj;
-akok;
-akol;
-akom;
-akon;
-akoo;
-akop;
-akoq;
-akor;
-akos;
-akot;
-akou;
-akov;
-akow;
-akox;
-akoy;
-akoz;
-akpa;
-akpb;
-akpc;
-akpd;
-akpe;
-akpf;
-akpg;
-akph;
-akpi;
-akpj;
-akpk;
-akpl;
-akpm;
-akpn;
-akpo;
-akpp;
-akpq;
-akpr;
-akps;
-akpt;
-akpu;
-akpv;
-akpw;
-akpx;
-akpy;
-akpz;
-akqa;
-akqb;
-akqc;
-akqd;
-akqe;
-akqf;
-akqg;
-akqh;
-akqi;
-akqj;
-akqk;
-akql;
-akqm;
-akqn;
-akqo;
-akqp;
-akqq;
-akqr;
-akqs;
-akqt;
-akqu;
-akqv;
-akqw;
-akqx;
-akqy;
-akqz;
-akra;
-akrb;
-akrc;
-akrd;
-akre;
-akrf;
-akrg;
-akrh;
-akri;
-akrj;
-akrk;
-akrl;
-akrm;
-akrn;
-akro;
-akrp;
-akrq;
-akrr;
-akrs;
-akrt;
-akru;
-akrv;
-akrw;
-akrx;
-akry;
-akrz;
-aksa;
-aksb;
-aksc;
-aksd;
-akse;
-aksf;
-aksg;
-aksh;
-aksi;
-aksj;
-aksk;
-aksl;
-aksm;
-aksn;
-akso;
-aksp;
-aksq;
-aksr;
-akss;
-akst;
-aksu;
-aksv;
-aksw;
-aksx;
-aksy;
-aksz;
-akta;
-aktb;
-aktc;
-aktd;
-akte;
-aktf;
-aktg;
-akth;
-akti;
-aktj;
-aktk;
-aktl;
-aktm;
-aktn;
-akto;
-aktp;
-aktq;
-aktr;
-akts;
-aktt;
-aktu;
-aktv;
-aktw;
-aktx;
-akty;
-aktz;
-akua;
-akub;
-akuc;
-akud;
-akue;
-akuf;
-akug;
-akuh;
-akui;
-akuj;
-akuk;
-akul;
-akum;
-akun;
-akuo;
-akup;
-akuq;
-akur;
-akus;
-akut;
-akuu;
-akuv;
-akuw;
-akux;
-akuy;
-akuz;
-akva;
-akvb;
-akvc;
-akvd;
-akve;
-akvf;
-akvg;
-akvh;
-akvi;
-akvj;
-akvk;
-akvl;
-akvm;
-akvn;
-akvo;
-akvp;
-akvq;
-akvr;
-akvs;
-akvt;
-akvu;
-akvv;
-akvw;
-akvx;
-akvy;
-akvz;
-akwa;
-akwb;
-akwc;
-akwd;
-akwe;
-akwf;
-akwg;
-akwh;
-akwi;
-akwj;
-akwk;
-akwl;
-akwm;
-akwn;
-akwo;
-akwp;
-akwq;
-akwr;
-akws;
-akwt;
-akwu;
-akwv;
-akww;
-akwx;
-akwy;
-akwz;
-akxa;
-akxb;
-akxc;
-akxd;
-akxe;
-akxf;
-akxg;
-akxh;
-akxi;
-akxj;
-akxk;
-akxl;
-akxm;
-akxn;
-akxo;
-akxp;
-akxq;
-akxr;
-akxs;
-akxt;
-akxu;
-akxv;
-akxw;
-akxx;
-akxy;
-akxz;
-akya;
-akyb;
-akyc;
-akyd;
-akye;
-akyf;
-akyg;
-akyh;
-akyi;
-akyj;
-akyk;
-akyl;
-akym;
-akyn;
-akyo;
-akyp;
-akyq;
-akyr;
-akys;
-akyt;
-akyu;
-akyv;
-akyw;
-akyx;
-akyy;
-akyz;
-akza;
-akzb;
-akzc;
-akzd;
-akze;
-akzf;
-akzg;
-akzh;
-akzi;
-akzj;
-akzk;
-akzl;
-akzm;
-akzn;
-akzo;
-akzp;
-akzq;
-akzr;
-akzs;
-akzt;
-akzu;
-akzv;
-akzw;
-akzx;
-akzy;
-akzz;
-alaa;
-alab;
-alac;
-alad;
-alae;
-alaf;
-alag;
-alah;
-alai;
-alaj;
-alak;
-alal;
-alam;
-alan;
-alao;
-alap;
-alaq;
-alar;
-alas;
-alat;
-alau;
-alav;
-alaw;
-alax;
-alay;
-alaz;
-alba;
-albb;
-albc;
-albd;
-albe;
-albf;
-albg;
-albh;
-albi;
-albj;
-albk;
-albl;
-albm;
-albn;
-albo;
-albp;
-albq;
-albr;
-albs;
-albt;
-albu;
-albv;
-albw;
-albx;
-alby;
-albz;
-alca;
-alcb;
-alcc;
-alcd;
-alce;
-alcf;
-alcg;
-alch;
-alci;
-alcj;
-alck;
-alcl;
-alcm;
-alcn;
-alco;
-alcp;
-alcq;
-alcr;
-alcs;
-alct;
-alcu;
-alcv;
-alcw;
-alcx;
-alcy;
-alcz;
-alda;
-aldb;
-aldc;
-aldd;
-alde;
-aldf;
-aldg;
-aldh;
-aldi;
-aldj;
-aldk;
-aldl;
-aldm;
-aldn;
-aldo;
-aldp;
-aldq;
-aldr;
-alds;
-aldt;
-aldu;
-aldv;
-aldw;
-aldx;
-aldy;
-aldz;
-alea;
-aleb;
-alec;
-aled;
-alee;
-alef;
-aleg;
-aleh;
-alei;
-alej;
-alek;
-alel;
-alem;
-alen;
-aleo;
-alep;
-aleq;
-aler;
-ales;
-alet;
-aleu;
-alev;
-alew;
-alex;
-aley;
-alez;
-alfa;
-alfb;
-alfc;
-alfd;
-alfe;
-alff;
-alfg;
-alfh;
-alfi;
-alfj;
-alfk;
-alfl;
-alfm;
-alfn;
-alfo;
-alfp;
-alfq;
-alfr;
-alfs;
-alft;
-alfu;
-alfv;
-alfw;
-alfx;
-alfy;
-alfz;
-alga;
-algb;
-algc;
-algd;
-alge;
-algf;
-algg;
-algh;
-algi;
-algj;
-algk;
-algl;
-algm;
-algn;
-algo;
-algp;
-algq;
-algr;
-algs;
-algt;
-algu;
-algv;
-algw;
-algx;
-algy;
-algz;
-alha;
-alhb;
-alhc;
-alhd;
-alhe;
-alhf;
-alhg;
-alhh;
-alhi;
-alhj;
-alhk;
-alhl;
-alhm;
-alhn;
-alho;
-alhp;
-alhq;
-alhr;
-alhs;
-alht;
-alhu;
-alhv;
-alhw;
-alhx;
-alhy;
-alhz;
-alia;
-alib;
-alic;
-alid;
-alie;
-alif;
-alig;
-alih;
-alii;
-alij;
-alik;
-alil;
-alim;
-alin;
-alio;
-alip;
-aliq;
-alir;
-alis;
-alit;
-aliu;
-aliv;
-aliw;
-alix;
-aliy;
-aliz;
-alja;
-aljb;
-aljc;
-aljd;
-alje;
-aljf;
-aljg;
-aljh;
-alji;
-aljj;
-aljk;
-aljl;
-aljm;
-aljn;
-aljo;
-aljp;
-aljq;
-aljr;
-aljs;
-aljt;
-alju;
-aljv;
-aljw;
-aljx;
-aljy;
-aljz;
-alka;
-alkb;
-alkc;
-alkd;
-alke;
-alkf;
-alkg;
-alkh;
-alki;
-alkj;
-alkk;
-alkl;
-alkm;
-alkn;
-alko;
-alkp;
-alkq;
-alkr;
-alks;
-alkt;
-alku;
-alkv;
-alkw;
-alkx;
-alky;
-alkz;
-alla;
-allb;
-allc;
-alld;
-alle;
-allf;
-allg;
-allh;
-alli;
-allj;
-allk;
-alll;
-allm;
-alln;
-allo;
-allp;
-allq;
-allr;
-alls;
-allt;
-allu;
-allv;
-allw;
-allx;
-ally;
-allz;
-alma;
-almb;
-almc;
-almd;
-alme;
-almf;
-almg;
-almh;
-almi;
-almj;
-almk;
-alml;
-almm;
-almn;
-almo;
-almp;
-almq;
-almr;
-alms;
-almt;
-almu;
-almv;
-almw;
-almx;
-almy;
-almz;
-alna;
-alnb;
-alnc;
-alnd;
-alne;
-alnf;
-alng;
-alnh;
-alni;
-alnj;
-alnk;
-alnl;
-alnm;
-alnn;
-alno;
-alnp;
-alnq;
-alnr;
-alns;
-alnt;
-alnu;
-alnv;
-alnw;
-alnx;
-alny;
-alnz;
-aloa;
-alob;
-aloc;
-alod;
-aloe;
-alof;
-alog;
-aloh;
-aloi;
-aloj;
-alok;
-alol;
-alom;
-alon;
-aloo;
-alop;
-aloq;
-alor;
-alos;
-alot;
-alou;
-alov;
-alow;
-alox;
-aloy;
-aloz;
-alpa;
-alpb;
-alpc;
-alpd;
-alpe;
-alpf;
-alpg;
-alph;
-alpi;
-alpj;
-alpk;
-alpl;
-alpm;
-alpn;
-alpo;
-alpp;
-alpq;
-alpr;
-alps;
-alpt;
-alpu;
-alpv;
-alpw;
-alpx;
-alpy;
-alpz;
-alqa;
-alqb;
-alqc;
-alqd;
-alqe;
-alqf;
-alqg;
-alqh;
-alqi;
-alqj;
-alqk;
-alql;
-alqm;
-alqn;
-alqo;
-alqp;
-alqq;
-alqr;
-alqs;
-alqt;
-alqu;
-alqv;
-alqw;
-alqx;
-alqy;
-alqz;
-alra;
-alrb;
-alrc;
-alrd;
-alre;
-alrf;
-alrg;
-alrh;
-alri;
-alrj;
-alrk;
-alrl;
-alrm;
-alrn;
-alro;
-alrp;
-alrq;
-alrr;
-alrs;
-alrt;
-alru;
-alrv;
-alrw;
-alrx;
-alry;
-alrz;
-alsa;
-alsb;
-alsc;
-alsd;
-alse;
-alsf;
-alsg;
-alsh;
-alsi;
-alsj;
-alsk;
-alsl;
-alsm;
-alsn;
-also;
-alsp;
-alsq;
-alsr;
-alss;
-alst;
-alsu;
-alsv;
-alsw;
-alsx;
-alsy;
-alsz;
-alta;
-altb;
-altc;
-altd;
-alte;
-altf;
-altg;
-alth;
-alti;
-altj;
-altk;
-altl;
-altm;
-altn;
-alto;
-altp;
-altq;
-altr;
-alts;
-altt;
-altu;
-altv;
-altw;
-altx;
-alty;
-altz;
-alua;
-alub;
-aluc;
-alud;
-alue;
-aluf;
-alug;
-aluh;
-alui;
-aluj;
-aluk;
-alul;
-alum;
-alun;
-aluo;
-alup;
-aluq;
-alur;
-alus;
-alut;
-aluu;
-aluv;
-aluw;
-alux;
-aluy;
-aluz;
-alva;
-alvb;
-alvc;
-alvd;
-alve;
-alvf;
-alvg;
-alvh;
-alvi;
-alvj;
-alvk;
-alvl;
-alvm;
-alvn;
-alvo;
-alvp;
-alvq;
-alvr;
-alvs;
-alvt;
-alvu;
-alvv;
-alvw;
-alvx;
-alvy;
-alvz;
-alwa;
-alwb;
-alwc;
-alwd;
-alwe;
-alwf;
-alwg;
-alwh;
-alwi;
-alwj;
-alwk;
-alwl;
-alwm;
-alwn;
-alwo;
-alwp;
-alwq;
-alwr;
-alws;
-alwt;
-alwu;
-alwv;
-alww;
-alwx;
-alwy;
-alwz;
-alxa;
-alxb;
-alxc;
-alxd;
-alxe;
-alxf;
-alxg;
-alxh;
-alxi;
-alxj;
-alxk;
-alxl;
-alxm;
-alxn;
-alxo;
-alxp;
-alxq;
-alxr;
-alxs;
-alxt;
-alxu;
-alxv;
-alxw;
-alxx;
-alxy;
-alxz;
-alya;
-alyb;
-alyc;
-alyd;
-alye;
-alyf;
-alyg;
-alyh;
-alyi;
-alyj;
-alyk;
-alyl;
-alym;
-alyn;
-alyo;
-alyp;
-alyq;
-alyr;
-alys;
-alyt;
-alyu;
-alyv;
-alyw;
-alyx;
-alyy;
-alyz;
-alza;
-alzb;
-alzc;
-alzd;
-alze;
-alzf;
-alzg;
-alzh;
-alzi;
-alzj;
-alzk;
-alzl;
-alzm;
-alzn;
-alzo;
-alzp;
-alzq;
-alzr;
-alzs;
-alzt;
-alzu;
-alzv;
-alzw;
-alzx;
-alzy;
-alzz;
-amaa;
-amab;
-amac;
-amad;
-amae;
-amaf;
-amag;
-amah;
-amai;
-amaj;
-amak;
-amal;
-amam;
-aman;
-amao;
-amap;
-amaq;
-amar;
-amas;
-amat;
-amau;
-amav;
-amaw;
-amax;
-amay;
-amaz;
-amba;
-ambb;
-ambc;
-ambd;
-ambe;
-ambf;
-ambg;
-ambh;
-ambi;
-ambj;
-ambk;
-ambl;
-ambm;
-ambn;
-ambo;
-ambp;
-ambq;
-ambr;
-ambs;
-ambt;
-ambu;
-ambv;
-ambw;
-ambx;
-amby;
-ambz;
-amca;
-amcb;
-amcc;
-amcd;
-amce;
-amcf;
-amcg;
-amch;
-amci;
-amcj;
-amck;
-amcl;
-amcm;
-amcn;
-amco;
-amcp;
-amcq;
-amcr;
-amcs;
-amct;
-amcu;
-amcv;
-amcw;
-amcx;
-amcy;
-amcz;
-amda;
-amdb;
-amdc;
-amdd;
-amde;
-amdf;
-amdg;
-amdh;
-amdi;
-amdj;
-amdk;
-amdl;
-amdm;
-amdn;
-amdo;
-amdp;
-amdq;
-amdr;
-amds;
-amdt;
-amdu;
-amdv;
-amdw;
-amdx;
-amdy;
-amdz;
-amea;
-ameb;
-amec;
-amed;
-amee;
-amef;
-ameg;
-ameh;
-amei;
-amej;
-amek;
-amel;
-amem;
-amen;
-ameo;
-amep;
-ameq;
-amer;
-ames;
-amet;
-ameu;
-amev;
-amew;
-amex;
-amey;
-amez;
-amfa;
-amfb;
-amfc;
-amfd;
-amfe;
-amff;
-amfg;
-amfh;
-amfi;
-amfj;
-amfk;
-amfl;
-amfm;
-amfn;
-amfo;
-amfp;
-amfq;
-amfr;
-amfs;
-amft;
-amfu;
-amfv;
-amfw;
-amfx;
-amfy;
-amfz;
-amga;
-amgb;
-amgc;
-amgd;
-amge;
-amgf;
-amgg;
-amgh;
-amgi;
-amgj;
-amgk;
-amgl;
-amgm;
-amgn;
-amgo;
-amgp;
-amgq;
-amgr;
-amgs;
-amgt;
-amgu;
-amgv;
-amgw;
-amgx;
-amgy;
-amgz;
-amha;
-amhb;
-amhc;
-amhd;
-amhe;
-amhf;
-amhg;
-amhh;
-amhi;
-amhj;
-amhk;
-amhl;
-amhm;
-amhn;
-amho;
-amhp;
-amhq;
-amhr;
-amhs;
-amht;
-amhu;
-amhv;
-amhw;
-amhx;
-amhy;
-amhz;
-amia;
-amib;
-amic;
-amid;
-amie;
-amif;
-amig;
-amih;
-amii;
-amij;
-amik;
-amil;
-amim;
-amin;
-amio;
-amip;
-amiq;
-amir;
-amis;
-amit;
-amiu;
-amiv;
-amiw;
-amix;
-amiy;
-amiz;
-amja;
-amjb;
-amjc;
-amjd;
-amje;
-amjf;
-amjg;
-amjh;
-amji;
-amjj;
-amjk;
-amjl;
-amjm;
-amjn;
-amjo;
-amjp;
-amjq;
-amjr;
-amjs;
-amjt;
-amju;
-amjv;
-amjw;
-amjx;
-amjy;
-amjz;
-amka;
-amkb;
-amkc;
-amkd;
-amke;
-amkf;
-amkg;
-amkh;
-amki;
-amkj;
-amkk;
-amkl;
-amkm;
-amkn;
-amko;
-amkp;
-amkq;
-amkr;
-amks;
-amkt;
-amku;
-amkv;
-amkw;
-amkx;
-amky;
-amkz;
-amla;
-amlb;
-amlc;
-amld;
-amle;
-amlf;
-amlg;
-amlh;
-amli;
-amlj;
-amlk;
-amll;
-amlm;
-amln;
-amlo;
-amlp;
-amlq;
-amlr;
-amls;
-amlt;
-amlu;
-amlv;
-amlw;
-amlx;
-amly;
-amlz;
-amma;
-ammb;
-ammc;
-ammd;
-amme;
-ammf;
-ammg;
-ammh;
-ammi;
-ammj;
-ammk;
-amml;
-ammm;
-ammn;
-ammo;
-ammp;
-ammq;
-ammr;
-amms;
-ammt;
-ammu;
-ammv;
-ammw;
-ammx;
-ammy;
-ammz;
-amna;
-amnb;
-amnc;
-amnd;
-amne;
-amnf;
-amng;
-amnh;
-amni;
-amnj;
-amnk;
-amnl;
-amnm;
-amnn;
-amno;
-amnp;
-amnq;
-amnr;
-amns;
-amnt;
-amnu;
-amnv;
-amnw;
-amnx;
-amny;
-amnz;
-amoa;
-amob;
-amoc;
-amod;
-amoe;
-amof;
-amog;
-amoh;
-amoi;
-amoj;
-amok;
-amol;
-amom;
-amon;
-amoo;
-amop;
-amoq;
-amor;
-amos;
-amot;
-amou;
-amov;
-amow;
-amox;
-amoy;
-amoz;
-ampa;
-ampb;
-ampc;
-ampd;
-ampe;
-ampf;
-ampg;
-amph;
-ampi;
-ampj;
-ampk;
-ampl;
-ampm;
-ampn;
-ampo;
-ampp;
-ampq;
-ampr;
-amps;
-ampt;
-ampu;
-ampv;
-ampw;
-ampx;
-ampy;
-ampz;
-amqa;
-amqb;
-amqc;
-amqd;
-amqe;
-amqf;
-amqg;
-amqh;
-amqi;
-amqj;
-amqk;
-amql;
-amqm;
-amqn;
-amqo;
-amqp;
-amqq;
-amqr;
-amqs;
-amqt;
-amqu;
-amqv;
-amqw;
-amqx;
-amqy;
-amqz;
-amra;
-amrb;
-amrc;
-amrd;
-amre;
-amrf;
-amrg;
-amrh;
-amri;
-amrj;
-amrk;
-amrl;
-amrm;
-amrn;
-amro;
-amrp;
-amrq;
-amrr;
-amrs;
-amrt;
-amru;
-amrv;
-amrw;
-amrx;
-amry;
-amrz;
-amsa;
-amsb;
-amsc;
-amsd;
-amse;
-amsf;
-amsg;
-amsh;
-amsi;
-amsj;
-amsk;
-amsl;
-amsm;
-amsn;
-amso;
-amsp;
-amsq;
-amsr;
-amss;
-amst;
-amsu;
-amsv;
-amsw;
-amsx;
-amsy;
-amsz;
-amta;
-amtb;
-amtc;
-amtd;
-amte;
-amtf;
-amtg;
-amth;
-amti;
-amtj;
-amtk;
-amtl;
-amtm;
-amtn;
-amto;
-amtp;
-amtq;
-amtr;
-amts;
-amtt;
-amtu;
-amtv;
-amtw;
-amtx;
-amty;
-amtz;
-amua;
-amub;
-amuc;
-amud;
-amue;
-amuf;
-amug;
-amuh;
-amui;
-amuj;
-amuk;
-amul;
-amum;
-amun;
-amuo;
-amup;
-amuq;
-amur;
-amus;
-amut;
-amuu;
-amuv;
-amuw;
-amux;
-amuy;
-amuz;
-amva;
-amvb;
-amvc;
-amvd;
-amve;
-amvf;
-amvg;
-amvh;
-amvi;
-amvj;
-amvk;
-amvl;
-amvm;
-amvn;
-amvo;
-amvp;
-amvq;
-amvr;
-amvs;
-amvt;
-amvu;
-amvv;
-amvw;
-amvx;
-amvy;
-amvz;
-amwa;
-amwb;
-amwc;
-amwd;
-amwe;
-amwf;
-amwg;
-amwh;
-amwi;
-amwj;
-amwk;
-amwl;
-amwm;
-amwn;
-amwo;
-amwp;
-amwq;
-amwr;
-amws;
-amwt;
-amwu;
-amwv;
-amww;
-amwx;
-amwy;
-amwz;
-amxa;
-amxb;
-amxc;
-amxd;
-amxe;
-amxf;
-amxg;
-amxh;
-amxi;
-amxj;
-amxk;
-amxl;
-amxm;
-amxn;
-amxo;
-amxp;
-amxq;
-amxr;
-amxs;
-amxt;
-amxu;
-amxv;
-amxw;
-amxx;
-amxy;
-amxz;
-amya;
-amyb;
-amyc;
-amyd;
-amye;
-amyf;
-amyg;
-amyh;
-amyi;
-amyj;
-amyk;
-amyl;
-amym;
-amyn;
-amyo;
-amyp;
-amyq;
-amyr;
-amys;
-amyt;
-amyu;
-amyv;
-amyw;
-amyx;
-amyy;
-amyz;
-amza;
-amzb;
-amzc;
-amzd;
-amze;
-amzf;
-amzg;
-amzh;
-amzi;
-amzj;
-amzk;
-amzl;
-amzm;
-amzn;
-amzo;
-amzp;
-amzq;
-amzr;
-amzs;
-amzt;
-amzu;
-amzv;
-amzw;
-amzx;
-amzy;
-amzz;
-anaa;
-anab;
-anac;
-anad;
-anae;
-anaf;
-anag;
-anah;
-anai;
-anaj;
-anak;
-anal;
-anam;
-anan;
-anao;
-anap;
-anaq;
-anar;
-anas;
-anat;
-anau;
-anav;
-anaw;
-anax;
-anay;
-anaz;
-anba;
-anbb;
-anbc;
-anbd;
-anbe;
-anbf;
-anbg;
-anbh;
-anbi;
-anbj;
-anbk;
-anbl;
-anbm;
-anbn;
-anbo;
-anbp;
-anbq;
-anbr;
-anbs;
-anbt;
-anbu;
-anbv;
-anbw;
-anbx;
-anby;
-anbz;
-anca;
-ancb;
-ancc;
-ancd;
-ance;
-ancf;
-ancg;
-anch;
-anci;
-ancj;
-anck;
-ancl;
-ancm;
-ancn;
-anco;
-ancp;
-ancq;
-ancr;
-ancs;
-anct;
-ancu;
-ancv;
-ancw;
-ancx;
-ancy;
-ancz;
-anda;
-andb;
-andc;
-andd;
-ande;
-andf;
-andg;
-andh;
-andi;
-andj;
-andk;
-andl;
-andm;
-andn;
-ando;
-andp;
-andq;
-andr;
-ands;
-andt;
-andu;
-andv;
-andw;
-andx;
-andy;
-andz;
-anea;
-aneb;
-anec;
-aned;
-anee;
-anef;
-aneg;
-aneh;
-anei;
-anej;
-anek;
-anel;
-anem;
-anen;
-aneo;
-anep;
-aneq;
-aner;
-anes;
-anet;
-aneu;
-anev;
-anew;
-anex;
-aney;
-anez;
-anfa;
-anfb;
-anfc;
-anfd;
-anfe;
-anff;
-anfg;
-anfh;
-anfi;
-anfj;
-anfk;
-anfl;
-anfm;
-anfn;
-anfo;
-anfp;
-anfq;
-anfr;
-anfs;
-anft;
-anfu;
-anfv;
-anfw;
-anfx;
-anfy;
-anfz;
-anga;
-angb;
-angc;
-angd;
-ange;
-angf;
-angg;
-angh;
-angi;
-angj;
-angk;
-angl;
-angm;
-angn;
-ango;
-angp;
-angq;
-angr;
-angs;
-angt;
-angu;
-angv;
-angw;
-angx;
-angy;
-angz;
-anha;
-anhb;
-anhc;
-anhd;
-anhe;
-anhf;
-anhg;
-anhh;
-anhi;
-anhj;
-anhk;
-anhl;
-anhm;
-anhn;
-anho;
-anhp;
-anhq;
-anhr;
-anhs;
-anht;
-anhu;
-anhv;
-anhw;
-anhx;
-anhy;
-anhz;
-ania;
-anib;
-anic;
-anid;
-anie;
-anif;
-anig;
-anih;
-anii;
-anij;
-anik;
-anil;
-anim;
-anin;
-anio;
-anip;
-aniq;
-anir;
-anis;
-anit;
-aniu;
-aniv;
-aniw;
-anix;
-aniy;
-aniz;
-anja;
-anjb;
-anjc;
-anjd;
-anje;
-anjf;
-anjg;
-anjh;
-anji;
-anjj;
-anjk;
-anjl;
-anjm;
-anjn;
-anjo;
-anjp;
-anjq;
-anjr;
-anjs;
-anjt;
-anju;
-anjv;
-anjw;
-anjx;
-anjy;
-anjz;
-anka;
-ankb;
-ankc;
-ankd;
-anke;
-ankf;
-ankg;
-ankh;
-anki;
-ankj;
-ankk;
-ankl;
-ankm;
-ankn;
-anko;
-ankp;
-ankq;
-ankr;
-anks;
-ankt;
-anku;
-ankv;
-ankw;
-ankx;
-anky;
-ankz;
-anla;
-anlb;
-anlc;
-anld;
-anle;
-anlf;
-anlg;
-anlh;
-anli;
-anlj;
-anlk;
-anll;
-anlm;
-anln;
-anlo;
-anlp;
-anlq;
-anlr;
-anls;
-anlt;
-anlu;
-anlv;
-anlw;
-anlx;
-anly;
-anlz;
-anma;
-anmb;
-anmc;
-anmd;
-anme;
-anmf;
-anmg;
-anmh;
-anmi;
-anmj;
-anmk;
-anml;
-anmm;
-anmn;
-anmo;
-anmp;
-anmq;
-anmr;
-anms;
-anmt;
-anmu;
-anmv;
-anmw;
-anmx;
-anmy;
-anmz;
-anna;
-annb;
-annc;
-annd;
-anne;
-annf;
-anng;
-annh;
-anni;
-annj;
-annk;
-annl;
-annm;
-annn;
-anno;
-annp;
-annq;
-annr;
-anns;
-annt;
-annu;
-annv;
-annw;
-annx;
-anny;
-annz;
-anoa;
-anob;
-anoc;
-anod;
-anoe;
-anof;
-anog;
-anoh;
-anoi;
-anoj;
-anok;
-anol;
-anom;
-anon;
-anoo;
-anop;
-anoq;
-anor;
-anos;
-anot;
-anou;
-anov;
-anow;
-anox;
-anoy;
-anoz;
-anpa;
-anpb;
-anpc;
-anpd;
-anpe;
-anpf;
-anpg;
-anph;
-anpi;
-anpj;
-anpk;
-anpl;
-anpm;
-anpn;
-anpo;
-anpp;
-anpq;
-anpr;
-anps;
-anpt;
-anpu;
-anpv;
-anpw;
-anpx;
-anpy;
-anpz;
-anqa;
-anqb;
-anqc;
-anqd;
-anqe;
-anqf;
-anqg;
-anqh;
-anqi;
-anqj;
-anqk;
-anql;
-anqm;
-anqn;
-anqo;
-anqp;
-anqq;
-anqr;
-anqs;
-anqt;
-anqu;
-anqv;
-anqw;
-anqx;
-anqy;
-anqz;
-anra;
-anrb;
-anrc;
-anrd;
-anre;
-anrf;
-anrg;
-anrh;
-anri;
-anrj;
-anrk;
-anrl;
-anrm;
-anrn;
-anro;
-anrp;
-anrq;
-anrr;
-anrs;
-anrt;
-anru;
-anrv;
-anrw;
-anrx;
-anry;
-anrz;
-ansa;
-ansb;
-ansc;
-ansd;
-anse;
-ansf;
-ansg;
-ansh;
-ansi;
-ansj;
-ansk;
-ansl;
-ansm;
-ansn;
-anso;
-ansp;
-ansq;
-ansr;
-anss;
-anst;
-ansu;
-ansv;
-answ;
-ansx;
-ansy;
-ansz;
-anta;
-antb;
-antc;
-antd;
-ante;
-antf;
-antg;
-anth;
-anti;
-antj;
-antk;
-antl;
-antm;
-antn;
-anto;
-antp;
-antq;
-antr;
-ants;
-antt;
-antu;
-antv;
-antw;
-antx;
-anty;
-antz;
-anua;
-anub;
-anuc;
-anud;
-anue;
-anuf;
-anug;
-anuh;
-anui;
-anuj;
-anuk;
-anul;
-anum;
-anun;
-anuo;
-anup;
-anuq;
-anur;
-anus;
-anut;
-anuu;
-anuv;
-anuw;
-anux;
-anuy;
-anuz;
-anva;
-anvb;
-anvc;
-anvd;
-anve;
-anvf;
-anvg;
-anvh;
-anvi;
-anvj;
-anvk;
-anvl;
-anvm;
-anvn;
-anvo;
-anvp;
-anvq;
-anvr;
-anvs;
-anvt;
-anvu;
-anvv;
-anvw;
-anvx;
-anvy;
-anvz;
-anwa;
-anwb;
-anwc;
-anwd;
-anwe;
-anwf;
-anwg;
-anwh;
-anwi;
-anwj;
-anwk;
-anwl;
-anwm;
-anwn;
-anwo;
-anwp;
-anwq;
-anwr;
-anws;
-anwt;
-anwu;
-anwv;
-anww;
-anwx;
-anwy;
-anwz;
-anxa;
-anxb;
-anxc;
-anxd;
-anxe;
-anxf;
-anxg;
-anxh;
-anxi;
-anxj;
-anxk;
-anxl;
-anxm;
-anxn;
-anxo;
-anxp;
-anxq;
-anxr;
-anxs;
-anxt;
-anxu;
-anxv;
-anxw;
-anxx;
-anxy;
-anxz;
-anya;
-anyb;
-anyc;
-anyd;
-anye;
-anyf;
-anyg;
-anyh;
-anyi;
-anyj;
-anyk;
-anyl;
-anym;
-anyn;
-anyo;
-anyp;
-anyq;
-anyr;
-anys;
-anyt;
-anyu;
-anyv;
-anyw;
-anyx;
-anyy;
-anyz;
-anza;
-anzb;
-anzc;
-anzd;
-anze;
-anzf;
-anzg;
-anzh;
-anzi;
-anzj;
-anzk;
-anzl;
-anzm;
-anzn;
-anzo;
-anzp;
-anzq;
-anzr;
-anzs;
-anzt;
-anzu;
-anzv;
-anzw;
-anzx;
-anzy;
-anzz;
-aoaa;
-aoab;
-aoac;
-aoad;
-aoae;
-aoaf;
-aoag;
-aoah;
-aoai;
-aoaj;
-aoak;
-aoal;
-aoam;
-aoan;
-aoao;
-aoap;
-aoaq;
-aoar;
-aoas;
-aoat;
-aoau;
-aoav;
-aoaw;
-aoax;
-aoay;
-aoaz;
-aoba;
-aobb;
-aobc;
-aobd;
-aobe;
-aobf;
-aobg;
-aobh;
-aobi;
-aobj;
-aobk;
-aobl;
-aobm;
-aobn;
-aobo;
-aobp;
-aobq;
-aobr;
-aobs;
-aobt;
-aobu;
-aobv;
-aobw;
-aobx;
-aoby;
-aobz;
-aoca;
-aocb;
-aocc;
-aocd;
-aoce;
-aocf;
-aocg;
-aoch;
-aoci;
-aocj;
-aock;
-aocl;
-aocm;
-aocn;
-aoco;
-aocp;
-aocq;
-aocr;
-aocs;
-aoct;
-aocu;
-aocv;
-aocw;
-aocx;
-aocy;
-aocz;
-aoda;
-aodb;
-aodc;
-aodd;
-aode;
-aodf;
-aodg;
-aodh;
-aodi;
-aodj;
-aodk;
-aodl;
-aodm;
-aodn;
-aodo;
-aodp;
-aodq;
-aodr;
-aods;
-aodt;
-aodu;
-aodv;
-aodw;
-aodx;
-aody;
-aodz;
-aoea;
-aoeb;
-aoec;
-aoed;
-aoee;
-aoef;
-aoeg;
-aoeh;
-aoei;
-aoej;
-aoek;
-aoel;
-aoem;
-aoen;
-aoeo;
-aoep;
-aoeq;
-aoer;
-aoes;
-aoet;
-aoeu;
-aoev;
-aoew;
-aoex;
-aoey;
-aoez;
-aofa;
-aofb;
-aofc;
-aofd;
-aofe;
-aoff;
-aofg;
-aofh;
-aofi;
-aofj;
-aofk;
-aofl;
-aofm;
-aofn;
-aofo;
-aofp;
-aofq;
-aofr;
-aofs;
-aoft;
-aofu;
-aofv;
-aofw;
-aofx;
-aofy;
-aofz;
-aoga;
-aogb;
-aogc;
-aogd;
-aoge;
-aogf;
-aogg;
-aogh;
-aogi;
-aogj;
-aogk;
-aogl;
-aogm;
-aogn;
-aogo;
-aogp;
-aogq;
-aogr;
-aogs;
-aogt;
-aogu;
-aogv;
-aogw;
-aogx;
-aogy;
-aogz;
-aoha;
-aohb;
-aohc;
-aohd;
-aohe;
-aohf;
-aohg;
-aohh;
-aohi;
-aohj;
-aohk;
-aohl;
-aohm;
-aohn;
-aoho;
-aohp;
-aohq;
-aohr;
-aohs;
-aoht;
-aohu;
-aohv;
-aohw;
-aohx;
-aohy;
-aohz;
-aoia;
-aoib;
-aoic;
-aoid;
-aoie;
-aoif;
-aoig;
-aoih;
-aoii;
-aoij;
-aoik;
-aoil;
-aoim;
-aoin;
-aoio;
-aoip;
-aoiq;
-aoir;
-aois;
-aoit;
-aoiu;
-aoiv;
-aoiw;
-aoix;
-aoiy;
-aoiz;
-aoja;
-aojb;
-aojc;
-aojd;
-aoje;
-aojf;
-aojg;
-aojh;
-aoji;
-aojj;
-aojk;
-aojl;
-aojm;
-aojn;
-aojo;
-aojp;
-aojq;
-aojr;
-aojs;
-aojt;
-aoju;
-aojv;
-aojw;
-aojx;
-aojy;
-aojz;
-aoka;
-aokb;
-aokc;
-aokd;
-aoke;
-aokf;
-aokg;
-aokh;
-aoki;
-aokj;
-aokk;
-aokl;
-aokm;
-aokn;
-aoko;
-aokp;
-aokq;
-aokr;
-aoks;
-aokt;
-aoku;
-aokv;
-aokw;
-aokx;
-aoky;
-aokz;
-aola;
-aolb;
-aolc;
-aold;
-aole;
-aolf;
-aolg;
-aolh;
-aoli;
-aolj;
-aolk;
-aoll;
-aolm;
-aoln;
-aolo;
-aolp;
-aolq;
-aolr;
-aols;
-aolt;
-aolu;
-aolv;
-aolw;
-aolx;
-aoly;
-aolz;
-aoma;
-aomb;
-aomc;
-aomd;
-aome;
-aomf;
-aomg;
-aomh;
-aomi;
-aomj;
-aomk;
-aoml;
-aomm;
-aomn;
-aomo;
-aomp;
-aomq;
-aomr;
-aoms;
-aomt;
-aomu;
-aomv;
-aomw;
-aomx;
-aomy;
-aomz;
-aona;
-aonb;
-aonc;
-aond;
-aone;
-aonf;
-aong;
-aonh;
-aoni;
-aonj;
-aonk;
-aonl;
-aonm;
-aonn;
-aono;
-aonp;
-aonq;
-aonr;
-aons;
-aont;
-aonu;
-aonv;
-aonw;
-aonx;
-aony;
-aonz;
-aooa;
-aoob;
-aooc;
-aood;
-aooe;
-aoof;
-aoog;
-aooh;
-aooi;
-aooj;
-aook;
-aool;
-aoom;
-aoon;
-aooo;
-aoop;
-aooq;
-aoor;
-aoos;
-aoot;
-aoou;
-aoov;
-aoow;
-aoox;
-aooy;
-aooz;
-aopa;
-aopb;
-aopc;
-aopd;
-aope;
-aopf;
-aopg;
-aoph;
-aopi;
-aopj;
-aopk;
-aopl;
-aopm;
-aopn;
-aopo;
-aopp;
-aopq;
-aopr;
-aops;
-aopt;
-aopu;
-aopv;
-aopw;
-aopx;
-aopy;
-aopz;
-aoqa;
-aoqb;
-aoqc;
-aoqd;
-aoqe;
-aoqf;
-aoqg;
-aoqh;
-aoqi;
-aoqj;
-aoqk;
-aoql;
-aoqm;
-aoqn;
-aoqo;
-aoqp;
-aoqq;
-aoqr;
-aoqs;
-aoqt;
-aoqu;
-aoqv;
-aoqw;
-aoqx;
-aoqy;
-aoqz;
-aora;
-aorb;
-aorc;
-aord;
-aore;
-aorf;
-aorg;
-aorh;
-aori;
-aorj;
-aork;
-aorl;
-aorm;
-aorn;
-aoro;
-aorp;
-aorq;
-aorr;
-aors;
-aort;
-aoru;
-aorv;
-aorw;
-aorx;
-aory;
-aorz;
-aosa;
-aosb;
-aosc;
-aosd;
-aose;
-aosf;
-aosg;
-aosh;
-aosi;
-aosj;
-aosk;
-aosl;
-aosm;
-aosn;
-aoso;
-aosp;
-aosq;
-aosr;
-aoss;
-aost;
-aosu;
-aosv;
-aosw;
-aosx;
-aosy;
-aosz;
-aota;
-aotb;
-aotc;
-aotd;
-aote;
-aotf;
-aotg;
-aoth;
-aoti;
-aotj;
-aotk;
-aotl;
-aotm;
-aotn;
-aoto;
-aotp;
-aotq;
-aotr;
-aots;
-aott;
-aotu;
-aotv;
-aotw;
-aotx;
-aoty;
-aotz;
-aoua;
-aoub;
-aouc;
-aoud;
-aoue;
-aouf;
-aoug;
-aouh;
-aoui;
-aouj;
-aouk;
-aoul;
-aoum;
-aoun;
-aouo;
-aoup;
-aouq;
-aour;
-aous;
-aout;
-aouu;
-aouv;
-aouw;
-aoux;
-aouy;
-aouz;
-aova;
-aovb;
-aovc;
-aovd;
-aove;
-aovf;
-aovg;
-aovh;
-aovi;
-aovj;
-aovk;
-aovl;
-aovm;
-aovn;
-aovo;
-aovp;
-aovq;
-aovr;
-aovs;
-aovt;
-aovu;
-aovv;
-aovw;
-aovx;
-aovy;
-aovz;
-aowa;
-aowb;
-aowc;
-aowd;
-aowe;
-aowf;
-aowg;
-aowh;
-aowi;
-aowj;
-aowk;
-aowl;
-aowm;
-aown;
-aowo;
-aowp;
-aowq;
-aowr;
-aows;
-aowt;
-aowu;
-aowv;
-aoww;
-aowx;
-aowy;
-aowz;
-aoxa;
-aoxb;
-aoxc;
-aoxd;
-aoxe;
-aoxf;
-aoxg;
-aoxh;
-aoxi;
-aoxj;
-aoxk;
-aoxl;
-aoxm;
-aoxn;
-aoxo;
-aoxp;
-aoxq;
-aoxr;
-aoxs;
-aoxt;
-aoxu;
-aoxv;
-aoxw;
-aoxx;
-aoxy;
-aoxz;
-aoya;
-aoyb;
-aoyc;
-aoyd;
-aoye;
-aoyf;
-aoyg;
-aoyh;
-aoyi;
-aoyj;
-aoyk;
-aoyl;
-aoym;
-aoyn;
-aoyo;
-aoyp;
-aoyq;
-aoyr;
-aoys;
-aoyt;
-aoyu;
-aoyv;
-aoyw;
-aoyx;
-aoyy;
-aoyz;
-aoza;
-aozb;
-aozc;
-aozd;
-aoze;
-aozf;
-aozg;
-aozh;
-aozi;
-aozj;
-aozk;
-aozl;
-aozm;
-aozn;
-aozo;
-aozp;
-aozq;
-aozr;
-aozs;
-aozt;
-aozu;
-aozv;
-aozw;
-aozx;
-aozy;
-aozz;
-apaa;
-apab;
-apac;
-apad;
-apae;
-apaf;
-apag;
-apah;
-apai;
-apaj;
-apak;
-apal;
-apam;
-apan;
-apao;
-apap;
-apaq;
-apar;
-apas;
-apat;
-apau;
-apav;
-apaw;
-apax;
-apay;
-apaz;
-apba;
-apbb;
-apbc;
-apbd;
-apbe;
-apbf;
-apbg;
-apbh;
-apbi;
-apbj;
-apbk;
-apbl;
-apbm;
-apbn;
-apbo;
-apbp;
-apbq;
-apbr;
-apbs;
-apbt;
-apbu;
-apbv;
-apbw;
-apbx;
-apby;
-apbz;
-apca;
-apcb;
-apcc;
-apcd;
-apce;
-apcf;
-apcg;
-apch;
-apci;
-apcj;
-apck;
-apcl;
-apcm;
-apcn;
-apco;
-apcp;
-apcq;
-apcr;
-apcs;
-apct;
-apcu;
-apcv;
-apcw;
-apcx;
-apcy;
-apcz;
-apda;
-apdb;
-apdc;
-apdd;
-apde;
-apdf;
-apdg;
-apdh;
-apdi;
-apdj;
-apdk;
-apdl;
-apdm;
-apdn;
-apdo;
-apdp;
-apdq;
-apdr;
-apds;
-apdt;
-apdu;
-apdv;
-apdw;
-apdx;
-apdy;
-apdz;
-apea;
-apeb;
-apec;
-aped;
-apee;
-apef;
-apeg;
-apeh;
-apei;
-apej;
-apek;
-apel;
-apem;
-apen;
-apeo;
-apep;
-apeq;
-aper;
-apes;
-apet;
-apeu;
-apev;
-apew;
-apex;
-apey;
-apez;
-apfa;
-apfb;
-apfc;
-apfd;
-apfe;
-apff;
-apfg;
-apfh;
-apfi;
-apfj;
-apfk;
-apfl;
-apfm;
-apfn;
-apfo;
-apfp;
-apfq;
-apfr;
-apfs;
-apft;
-apfu;
-apfv;
-apfw;
-apfx;
-apfy;
-apfz;
-apga;
-apgb;
-apgc;
-apgd;
-apge;
-apgf;
-apgg;
-apgh;
-apgi;
-apgj;
-apgk;
-apgl;
-apgm;
-apgn;
-apgo;
-apgp;
-apgq;
-apgr;
-apgs;
-apgt;
-apgu;
-apgv;
-apgw;
-apgx;
-apgy;
-apgz;
-apha;
-aphb;
-aphc;
-aphd;
-aphe;
-aphf;
-aphg;
-aphh;
-aphi;
-aphj;
-aphk;
-aphl;
-aphm;
-aphn;
-apho;
-aphp;
-aphq;
-aphr;
-aphs;
-apht;
-aphu;
-aphv;
-aphw;
-aphx;
-aphy;
-aphz;
-apia;
-apib;
-apic;
-apid;
-apie;
-apif;
-apig;
-apih;
-apii;
-apij;
-apik;
-apil;
-apim;
-apin;
-apio;
-apip;
-apiq;
-apir;
-apis;
-apit;
-apiu;
-apiv;
-apiw;
-apix;
-apiy;
-apiz;
-apja;
-apjb;
-apjc;
-apjd;
-apje;
-apjf;
-apjg;
-apjh;
-apji;
-apjj;
-apjk;
-apjl;
-apjm;
-apjn;
-apjo;
-apjp;
-apjq;
-apjr;
-apjs;
-apjt;
-apju;
-apjv;
-apjw;
-apjx;
-apjy;
-apjz;
-apka;
-apkb;
-apkc;
-apkd;
-apke;
-apkf;
-apkg;
-apkh;
-apki;
-apkj;
-apkk;
-apkl;
-apkm;
-apkn;
-apko;
-apkp;
-apkq;
-apkr;
-apks;
-apkt;
-apku;
-apkv;
-apkw;
-apkx;
-apky;
-apkz;
-apla;
-aplb;
-aplc;
-apld;
-aple;
-aplf;
-aplg;
-aplh;
-apli;
-aplj;
-aplk;
-apll;
-aplm;
-apln;
-aplo;
-aplp;
-aplq;
-aplr;
-apls;
-aplt;
-aplu;
-aplv;
-aplw;
-aplx;
-aply;
-aplz;
-apma;
-apmb;
-apmc;
-apmd;
-apme;
-apmf;
-apmg;
-apmh;
-apmi;
-apmj;
-apmk;
-apml;
-apmm;
-apmn;
-apmo;
-apmp;
-apmq;
-apmr;
-apms;
-apmt;
-apmu;
-apmv;
-apmw;
-apmx;
-apmy;
-apmz;
-apna;
-apnb;
-apnc;
-apnd;
-apne;
-apnf;
-apng;
-apnh;
-apni;
-apnj;
-apnk;
-apnl;
-apnm;
-apnn;
-apno;
-apnp;
-apnq;
-apnr;
-apns;
-apnt;
-apnu;
-apnv;
-apnw;
-apnx;
-apny;
-apnz;
-apoa;
-apob;
-apoc;
-apod;
-apoe;
-apof;
-apog;
-apoh;
-apoi;
-apoj;
-apok;
-apol;
-apom;
-apon;
-apoo;
-apop;
-apoq;
-apor;
-apos;
-apot;
-apou;
-apov;
-apow;
-apox;
-apoy;
-apoz;
-appa;
-appb;
-appc;
-appd;
-appe;
-appf;
-appg;
-apph;
-appi;
-appj;
-appk;
-appl;
-appm;
-appn;
-appo;
-appp;
-appq;
-appr;
-apps;
-appt;
-appu;
-appv;
-appw;
-appx;
-appy;
-appz;
-apqa;
-apqb;
-apqc;
-apqd;
-apqe;
-apqf;
-apqg;
-apqh;
-apqi;
-apqj;
-apqk;
-apql;
-apqm;
-apqn;
-apqo;
-apqp;
-apqq;
-apqr;
-apqs;
-apqt;
-apqu;
-apqv;
-apqw;
-apqx;
-apqy;
-apqz;
-apra;
-aprb;
-aprc;
-aprd;
-apre;
-aprf;
-aprg;
-aprh;
-apri;
-aprj;
-aprk;
-aprl;
-aprm;
-aprn;
-apro;
-aprp;
-aprq;
-aprr;
-aprs;
-aprt;
-apru;
-aprv;
-aprw;
-aprx;
-apry;
-aprz;
-apsa;
-apsb;
-apsc;
-apsd;
-apse;
-apsf;
-apsg;
-apsh;
-apsi;
-apsj;
-apsk;
-apsl;
-apsm;
-apsn;
-apso;
-apsp;
-apsq;
-apsr;
-apss;
-apst;
-apsu;
-apsv;
-apsw;
-apsx;
-apsy;
-apsz;
-apta;
-aptb;
-aptc;
-aptd;
-apte;
-aptf;
-aptg;
-apth;
-apti;
-aptj;
-aptk;
-aptl;
-aptm;
-aptn;
-apto;
-aptp;
-aptq;
-aptr;
-apts;
-aptt;
-aptu;
-aptv;
-aptw;
-aptx;
-apty;
-aptz;
-apua;
-apub;
-apuc;
-apud;
-apue;
-apuf;
-apug;
-apuh;
-apui;
-apuj;
-apuk;
-apul;
-apum;
-apun;
-apuo;
-apup;
-apuq;
-apur;
-apus;
-aput;
-apuu;
-apuv;
-apuw;
-apux;
-apuy;
-apuz;
-apva;
-apvb;
-apvc;
-apvd;
-apve;
-apvf;
-apvg;
-apvh;
-apvi;
-apvj;
-apvk;
-apvl;
-apvm;
-apvn;
-apvo;
-apvp;
-apvq;
-apvr;
-apvs;
-apvt;
-apvu;
-apvv;
-apvw;
-apvx;
-apvy;
-apvz;
-apwa;
-apwb;
-apwc;
-apwd;
-apwe;
-apwf;
-apwg;
-apwh;
-apwi;
-apwj;
-apwk;
-apwl;
-apwm;
-apwn;
-apwo;
-apwp;
-apwq;
-apwr;
-apws;
-apwt;
-apwu;
-apwv;
-apww;
-apwx;
-apwy;
-apwz;
-apxa;
-apxb;
-apxc;
-apxd;
-apxe;
-apxf;
-apxg;
-apxh;
-apxi;
-apxj;
-apxk;
-apxl;
-apxm;
-apxn;
-apxo;
-apxp;
-apxq;
-apxr;
-apxs;
-apxt;
-apxu;
-apxv;
-apxw;
-apxx;
-apxy;
-apxz;
-apya;
-apyb;
-apyc;
-apyd;
-apye;
-apyf;
-apyg;
-apyh;
-apyi;
-apyj;
-apyk;
-apyl;
-apym;
-apyn;
-apyo;
-apyp;
-apyq;
-apyr;
-apys;
-apyt;
-apyu;
-apyv;
-apyw;
-apyx;
-apyy;
-apyz;
-apza;
-apzb;
-apzc;
-apzd;
-apze;
-apzf;
-apzg;
-apzh;
-apzi;
-apzj;
-apzk;
-apzl;
-apzm;
-apzn;
-apzo;
-apzp;
-apzq;
-apzr;
-apzs;
-apzt;
-apzu;
-apzv;
-apzw;
-apzx;
-apzy;
-apzz;
-aqaa;
-aqab;
-aqac;
-aqad;
-aqae;
-aqaf;
-aqag;
-aqah;
-aqai;
-aqaj;
-aqak;
-aqal;
-aqam;
-aqan;
-aqao;
-aqap;
-aqaq;
-aqar;
-aqas;
-aqat;
-aqau;
-aqav;
-aqaw;
-aqax;
-aqay;
-aqaz;
-aqba;
-aqbb;
-aqbc;
-aqbd;
-aqbe;
-aqbf;
-aqbg;
-aqbh;
-aqbi;
-aqbj;
-aqbk;
-aqbl;
-aqbm;
-aqbn;
-aqbo;
-aqbp;
-aqbq;
-aqbr;
-aqbs;
-aqbt;
-aqbu;
-aqbv;
-aqbw;
-aqbx;
-aqby;
-aqbz;
-aqca;
-aqcb;
-aqcc;
-aqcd;
-aqce;
-aqcf;
-aqcg;
-aqch;
-aqci;
-aqcj;
-aqck;
-aqcl;
-aqcm;
-aqcn;
-aqco;
-aqcp;
-aqcq;
-aqcr;
-aqcs;
-aqct;
-aqcu;
-aqcv;
-aqcw;
-aqcx;
-aqcy;
-aqcz;
-aqda;
-aqdb;
-aqdc;
-aqdd;
-aqde;
-aqdf;
-aqdg;
-aqdh;
-aqdi;
-aqdj;
-aqdk;
-aqdl;
-aqdm;
-aqdn;
-aqdo;
-aqdp;
-aqdq;
-aqdr;
-aqds;
-aqdt;
-aqdu;
-aqdv;
-aqdw;
-aqdx;
-aqdy;
-aqdz;
-aqea;
-aqeb;
-aqec;
-aqed;
-aqee;
-aqef;
-aqeg;
-aqeh;
-aqei;
-aqej;
-aqek;
-aqel;
-aqem;
-aqen;
-aqeo;
-aqep;
-aqeq;
-aqer;
-aqes;
-aqet;
-aqeu;
-aqev;
-aqew;
-aqex;
-aqey;
-aqez;
-aqfa;
-aqfb;
-aqfc;
-aqfd;
-aqfe;
-aqff;
-aqfg;
-aqfh;
-aqfi;
-aqfj;
-aqfk;
-aqfl;
-aqfm;
-aqfn;
-aqfo;
-aqfp;
-aqfq;
-aqfr;
-aqfs;
-aqft;
-aqfu;
-aqfv;
-aqfw;
-aqfx;
-aqfy;
-aqfz;
-aqga;
-aqgb;
-aqgc;
-aqgd;
-aqge;
-aqgf;
-aqgg;
-aqgh;
-aqgi;
-aqgj;
-aqgk;
-aqgl;
-aqgm;
-aqgn;
-aqgo;
-aqgp;
-aqgq;
-aqgr;
-aqgs;
-aqgt;
-aqgu;
-aqgv;
-aqgw;
-aqgx;
-aqgy;
-aqgz;
-aqha;
-aqhb;
-aqhc;
-aqhd;
-aqhe;
-aqhf;
-aqhg;
-aqhh;
-aqhi;
-aqhj;
-aqhk;
-aqhl;
-aqhm;
-aqhn;
-aqho;
-aqhp;
-aqhq;
-aqhr;
-aqhs;
-aqht;
-aqhu;
-aqhv;
-aqhw;
-aqhx;
-aqhy;
-aqhz;
-aqia;
-aqib;
-aqic;
-aqid;
-aqie;
-aqif;
-aqig;
-aqih;
-aqii;
-aqij;
-aqik;
-aqil;
-aqim;
-aqin;
-aqio;
-aqip;
-aqiq;
-aqir;
-aqis;
-aqit;
-aqiu;
-aqiv;
-aqiw;
-aqix;
-aqiy;
-aqiz;
-aqja;
-aqjb;
-aqjc;
-aqjd;
-aqje;
-aqjf;
-aqjg;
-aqjh;
-aqji;
-aqjj;
-aqjk;
-aqjl;
-aqjm;
-aqjn;
-aqjo;
-aqjp;
-aqjq;
-aqjr;
-aqjs;
-aqjt;
-aqju;
-aqjv;
-aqjw;
-aqjx;
-aqjy;
-aqjz;
-aqka;
-aqkb;
-aqkc;
-aqkd;
-aqke;
-aqkf;
-aqkg;
-aqkh;
-aqki;
-aqkj;
-aqkk;
-aqkl;
-aqkm;
-aqkn;
-aqko;
-aqkp;
-aqkq;
-aqkr;
-aqks;
-aqkt;
-aqku;
-aqkv;
-aqkw;
-aqkx;
-aqky;
-aqkz;
-aqla;
-aqlb;
-aqlc;
-aqld;
-aqle;
-aqlf;
-aqlg;
-aqlh;
-aqli;
-aqlj;
-aqlk;
-aqll;
-aqlm;
-aqln;
-aqlo;
-aqlp;
-aqlq;
-aqlr;
-aqls;
-aqlt;
-aqlu;
-aqlv;
-aqlw;
-aqlx;
-aqly;
-aqlz;
-aqma;
-aqmb;
-aqmc;
-aqmd;
-aqme;
-aqmf;
-aqmg;
-aqmh;
-aqmi;
-aqmj;
-aqmk;
-aqml;
-aqmm;
-aqmn;
-aqmo;
-aqmp;
-aqmq;
-aqmr;
-aqms;
-aqmt;
-aqmu;
-aqmv;
-aqmw;
-aqmx;
-aqmy;
-aqmz;
-aqna;
-aqnb;
-aqnc;
-aqnd;
-aqne;
-aqnf;
-aqng;
-aqnh;
-aqni;
-aqnj;
-aqnk;
-aqnl;
-aqnm;
-aqnn;
-aqno;
-aqnp;
-aqnq;
-aqnr;
-aqns;
-aqnt;
-aqnu;
-aqnv;
-aqnw;
-aqnx;
-aqny;
-aqnz;
-aqoa;
-aqob;
-aqoc;
-aqod;
-aqoe;
-aqof;
-aqog;
-aqoh;
-aqoi;
-aqoj;
-aqok;
-aqol;
-aqom;
-aqon;
-aqoo;
-aqop;
-aqoq;
-aqor;
-aqos;
-aqot;
-aqou;
-aqov;
-aqow;
-aqox;
-aqoy;
-aqoz;
-aqpa;
-aqpb;
-aqpc;
-aqpd;
-aqpe;
-aqpf;
-aqpg;
-aqph;
-aqpi;
-aqpj;
-aqpk;
-aqpl;
-aqpm;
-aqpn;
-aqpo;
-aqpp;
-aqpq;
-aqpr;
-aqps;
-aqpt;
-aqpu;
-aqpv;
-aqpw;
-aqpx;
-aqpy;
-aqpz;
-aqqa;
-aqqb;
-aqqc;
-aqqd;
-aqqe;
-aqqf;
-aqqg;
-aqqh;
-aqqi;
-aqqj;
-aqqk;
-aqql;
-aqqm;
-aqqn;
-aqqo;
-aqqp;
-aqqq;
-aqqr;
-aqqs;
-aqqt;
-aqqu;
-aqqv;
-aqqw;
-aqqx;
-aqqy;
-aqqz;
-aqra;
-aqrb;
-aqrc;
-aqrd;
-aqre;
-aqrf;
-aqrg;
-aqrh;
-aqri;
-aqrj;
-aqrk;
-aqrl;
-aqrm;
-aqrn;
-aqro;
-aqrp;
-aqrq;
-aqrr;
-aqrs;
-aqrt;
-aqru;
-aqrv;
-aqrw;
-aqrx;
-aqry;
-aqrz;
-aqsa;
-aqsb;
-aqsc;
-aqsd;
-aqse;
-aqsf;
-aqsg;
-aqsh;
-aqsi;
-aqsj;
-aqsk;
-aqsl;
-aqsm;
-aqsn;
-aqso;
-aqsp;
-aqsq;
-aqsr;
-aqss;
-aqst;
-aqsu;
-aqsv;
-aqsw;
-aqsx;
-aqsy;
-aqsz;
-aqta;
-aqtb;
-aqtc;
-aqtd;
-aqte;
-aqtf;
-aqtg;
-aqth;
-aqti;
-aqtj;
-aqtk;
-aqtl;
-aqtm;
-aqtn;
-aqto;
-aqtp;
-aqtq;
-aqtr;
-aqts;
-aqtt;
-aqtu;
-aqtv;
-aqtw;
-aqtx;
-aqty;
-aqtz;
-aqua;
-aqub;
-aquc;
-aqud;
-aque;
-aquf;
-aqug;
-aquh;
-aqui;
-aquj;
-aquk;
-aqul;
-aqum;
-aqun;
-aquo;
-aqup;
-aquq;
-aqur;
-aqus;
-aqut;
-aquu;
-aquv;
-aquw;
-aqux;
-aquy;
-aquz;
-aqva;
-aqvb;
-aqvc;
-aqvd;
-aqve;
-aqvf;
-aqvg;
-aqvh;
-aqvi;
-aqvj;
-aqvk;
-aqvl;
-aqvm;
-aqvn;
-aqvo;
-aqvp;
-aqvq;
-aqvr;
-aqvs;
-aqvt;
-aqvu;
-aqvv;
-aqvw;
-aqvx;
-aqvy;
-aqvz;
-aqwa;
-aqwb;
-aqwc;
-aqwd;
-aqwe;
-aqwf;
-aqwg;
-aqwh;
-aqwi;
-aqwj;
-aqwk;
-aqwl;
-aqwm;
-aqwn;
-aqwo;
-aqwp;
-aqwq;
-aqwr;
-aqws;
-aqwt;
-aqwu;
-aqwv;
-aqww;
-aqwx;
-aqwy;
-aqwz;
-aqxa;
-aqxb;
-aqxc;
-aqxd;
-aqxe;
-aqxf;
-aqxg;
-aqxh;
-aqxi;
-aqxj;
-aqxk;
-aqxl;
-aqxm;
-aqxn;
-aqxo;
-aqxp;
-aqxq;
-aqxr;
-aqxs;
-aqxt;
-aqxu;
-aqxv;
-aqxw;
-aqxx;
-aqxy;
-aqxz;
-aqya;
-aqyb;
-aqyc;
-aqyd;
-aqye;
-aqyf;
-aqyg;
-aqyh;
-aqyi;
-aqyj;
-aqyk;
-aqyl;
-aqym;
-aqyn;
-aqyo;
-aqyp;
-aqyq;
-aqyr;
-aqys;
-aqyt;
-aqyu;
-aqyv;
-aqyw;
-aqyx;
-aqyy;
-aqyz;
-aqza;
-aqzb;
-aqzc;
-aqzd;
-aqze;
-aqzf;
-aqzg;
-aqzh;
-aqzi;
-aqzj;
-aqzk;
-aqzl;
-aqzm;
-aqzn;
-aqzo;
-aqzp;
-aqzq;
-aqzr;
-aqzs;
-aqzt;
-aqzu;
-aqzv;
-aqzw;
-aqzx;
-aqzy;
-aqzz;
-araa;
-arab;
-arac;
-arad;
-arae;
-araf;
-arag;
-arah;
-arai;
-araj;
-arak;
-aral;
-aram;
-aran;
-arao;
-arap;
-araq;
-arar;
-aras;
-arat;
-arau;
-arav;
-araw;
-arax;
-aray;
-araz;
-arba;
-arbb;
-arbc;
-arbd;
-arbe;
-arbf;
-arbg;
-arbh;
-arbi;
-arbj;
-arbk;
-arbl;
-arbm;
-arbn;
-arbo;
-arbp;
-arbq;
-arbr;
-arbs;
-arbt;
-arbu;
-arbv;
-arbw;
-arbx;
-arby;
-arbz;
-arca;
-arcb;
-arcc;
-arcd;
-arce;
-arcf;
-arcg;
-arch;
-arci;
-arcj;
-arck;
-arcl;
-arcm;
-arcn;
-arco;
-arcp;
-arcq;
-arcr;
-arcs;
-arct;
-arcu;
-arcv;
-arcw;
-arcx;
-arcy;
-arcz;
-arda;
-ardb;
-ardc;
-ardd;
-arde;
-ardf;
-ardg;
-ardh;
-ardi;
-ardj;
-ardk;
-ardl;
-ardm;
-ardn;
-ardo;
-ardp;
-ardq;
-ardr;
-ards;
-ardt;
-ardu;
-ardv;
-ardw;
-ardx;
-ardy;
-ardz;
-area;
-areb;
-arec;
-ared;
-aree;
-aref;
-areg;
-areh;
-arei;
-arej;
-arek;
-arel;
-arem;
-aren;
-areo;
-arep;
-areq;
-arer;
-ares;
-aret;
-areu;
-arev;
-arew;
-arex;
-arey;
-arez;
-arfa;
-arfb;
-arfc;
-arfd;
-arfe;
-arff;
-arfg;
-arfh;
-arfi;
-arfj;
-arfk;
-arfl;
-arfm;
-arfn;
-arfo;
-arfp;
-arfq;
-arfr;
-arfs;
-arft;
-arfu;
-arfv;
-arfw;
-arfx;
-arfy;
-arfz;
-arga;
-argb;
-argc;
-argd;
-arge;
-argf;
-argg;
-argh;
-argi;
-argj;
-argk;
-argl;
-argm;
-argn;
-argo;
-argp;
-argq;
-argr;
-args;
-argt;
-argu;
-argv;
-argw;
-argx;
-argy;
-argz;
-arha;
-arhb;
-arhc;
-arhd;
-arhe;
-arhf;
-arhg;
-arhh;
-arhi;
-arhj;
-arhk;
-arhl;
-arhm;
-arhn;
-arho;
-arhp;
-arhq;
-arhr;
-arhs;
-arht;
-arhu;
-arhv;
-arhw;
-arhx;
-arhy;
-arhz;
-aria;
-arib;
-aric;
-arid;
-arie;
-arif;
-arig;
-arih;
-arii;
-arij;
-arik;
-aril;
-arim;
-arin;
-ario;
-arip;
-ariq;
-arir;
-aris;
-arit;
-ariu;
-ariv;
-ariw;
-arix;
-ariy;
-ariz;
-arja;
-arjb;
-arjc;
-arjd;
-arje;
-arjf;
-arjg;
-arjh;
-arji;
-arjj;
-arjk;
-arjl;
-arjm;
-arjn;
-arjo;
-arjp;
-arjq;
-arjr;
-arjs;
-arjt;
-arju;
-arjv;
-arjw;
-arjx;
-arjy;
-arjz;
-arka;
-arkb;
-arkc;
-arkd;
-arke;
-arkf;
-arkg;
-arkh;
-arki;
-arkj;
-arkk;
-arkl;
-arkm;
-arkn;
-arko;
-arkp;
-arkq;
-arkr;
-arks;
-arkt;
-arku;
-arkv;
-arkw;
-arkx;
-arky;
-arkz;
-arla;
-arlb;
-arlc;
-arld;
-arle;
-arlf;
-arlg;
-arlh;
-arli;
-arlj;
-arlk;
-arll;
-arlm;
-arln;
-arlo;
-arlp;
-arlq;
-arlr;
-arls;
-arlt;
-arlu;
-arlv;
-arlw;
-arlx;
-arly;
-arlz;
-arma;
-armb;
-armc;
-armd;
-arme;
-armf;
-armg;
-armh;
-armi;
-armj;
-armk;
-arml;
-armm;
-armn;
-armo;
-armp;
-armq;
-armr;
-arms;
-armt;
-armu;
-armv;
-armw;
-armx;
-army;
-armz;
-arna;
-arnb;
-arnc;
-arnd;
-arne;
-arnf;
-arng;
-arnh;
-arni;
-arnj;
-arnk;
-arnl;
-arnm;
-arnn;
-arno;
-arnp;
-arnq;
-arnr;
-arns;
-arnt;
-arnu;
-arnv;
-arnw;
-arnx;
-arny;
-arnz;
-aroa;
-arob;
-aroc;
-arod;
-aroe;
-arof;
-arog;
-aroh;
-aroi;
-aroj;
-arok;
-arol;
-arom;
-aron;
-aroo;
-arop;
-aroq;
-aror;
-aros;
-arot;
-arou;
-arov;
-arow;
-arox;
-aroy;
-aroz;
-arpa;
-arpb;
-arpc;
-arpd;
-arpe;
-arpf;
-arpg;
-arph;
-arpi;
-arpj;
-arpk;
-arpl;
-arpm;
-arpn;
-arpo;
-arpp;
-arpq;
-arpr;
-arps;
-arpt;
-arpu;
-arpv;
-arpw;
-arpx;
-arpy;
-arpz;
-arqa;
-arqb;
-arqc;
-arqd;
-arqe;
-arqf;
-arqg;
-arqh;
-arqi;
-arqj;
-arqk;
-arql;
-arqm;
-arqn;
-arqo;
-arqp;
-arqq;
-arqr;
-arqs;
-arqt;
-arqu;
-arqv;
-arqw;
-arqx;
-arqy;
-arqz;
-arra;
-arrb;
-arrc;
-arrd;
-arre;
-arrf;
-arrg;
-arrh;
-arri;
-arrj;
-arrk;
-arrl;
-arrm;
-arrn;
-arro;
-arrp;
-arrq;
-arrr;
-arrs;
-arrt;
-arru;
-arrv;
-arrw;
-arrx;
-arry;
-arrz;
-arsa;
-arsb;
-arsc;
-arsd;
-arse;
-arsf;
-arsg;
-arsh;
-arsi;
-arsj;
-arsk;
-arsl;
-arsm;
-arsn;
-arso;
-arsp;
-arsq;
-arsr;
-arss;
-arst;
-arsu;
-arsv;
-arsw;
-arsx;
-arsy;
-arsz;
-arta;
-artb;
-artc;
-artd;
-arte;
-artf;
-artg;
-arth;
-arti;
-artj;
-artk;
-artl;
-artm;
-artn;
-arto;
-artp;
-artq;
-artr;
-arts;
-artt;
-artu;
-artv;
-artw;
-artx;
-arty;
-artz;
-arua;
-arub;
-aruc;
-arud;
-arue;
-aruf;
-arug;
-aruh;
-arui;
-aruj;
-aruk;
-arul;
-arum;
-arun;
-aruo;
-arup;
-aruq;
-arur;
-arus;
-arut;
-aruu;
-aruv;
-aruw;
-arux;
-aruy;
-aruz;
-arva;
-arvb;
-arvc;
-arvd;
-arve;
-arvf;
-arvg;
-arvh;
-arvi;
-arvj;
-arvk;
-arvl;
-arvm;
-arvn;
-arvo;
-arvp;
-arvq;
-arvr;
-arvs;
-arvt;
-arvu;
-arvv;
-arvw;
-arvx;
-arvy;
-arvz;
-arwa;
-arwb;
-arwc;
-arwd;
-arwe;
-arwf;
-arwg;
-arwh;
-arwi;
-arwj;
-arwk;
-arwl;
-arwm;
-arwn;
-arwo;
-arwp;
-arwq;
-arwr;
-arws;
-arwt;
-arwu;
-arwv;
-arww;
-arwx;
-arwy;
-arwz;
-arxa;
-arxb;
-arxc;
-arxd;
-arxe;
-arxf;
-arxg;
-arxh;
-arxi;
-arxj;
-arxk;
-arxl;
-arxm;
-arxn;
-arxo;
-arxp;
-arxq;
-arxr;
-arxs;
-arxt;
-arxu;
-arxv;
-arxw;
-arxx;
-arxy;
-arxz;
-arya;
-aryb;
-aryc;
-aryd;
-arye;
-aryf;
-aryg;
-aryh;
-aryi;
-aryj;
-aryk;
-aryl;
-arym;
-aryn;
-aryo;
-aryp;
-aryq;
-aryr;
-arys;
-aryt;
-aryu;
-aryv;
-aryw;
-aryx;
-aryy;
-aryz;
-arza;
-arzb;
-arzc;
-arzd;
-arze;
-arzf;
-arzg;
-arzh;
-arzi;
-arzj;
-arzk;
-arzl;
-arzm;
-arzn;
-arzo;
-arzp;
-arzq;
-arzr;
-arzs;
-arzt;
-arzu;
-arzv;
-arzw;
-arzx;
-arzy;
-arzz;
-asaa;
-asab;
-asac;
-asad;
-asae;
-asaf;
-asag;
-asah;
-asai;
-asaj;
-asak;
-asal;
-asam;
-asan;
-asao;
-asap;
-asaq;
-asar;
-asas;
-asat;
-asau;
-asav;
-asaw;
-asax;
-asay;
-asaz;
-asba;
-asbb;
-asbc;
-asbd;
-asbe;
-asbf;
-asbg;
-asbh;
-asbi;
-asbj;
-asbk;
-asbl;
-asbm;
-asbn;
-asbo;
-asbp;
-asbq;
-asbr;
-asbs;
-asbt;
-asbu;
-asbv;
-asbw;
-asbx;
-asby;
-asbz;
-asca;
-ascb;
-ascc;
-ascd;
-asce;
-ascf;
-ascg;
-asch;
-asci;
-ascj;
-asck;
-ascl;
-ascm;
-ascn;
-asco;
-ascp;
-ascq;
-ascr;
-ascs;
-asct;
-ascu;
-ascv;
-ascw;
-ascx;
-ascy;
-ascz;
-asda;
-asdb;
-asdc;
-asdd;
-asde;
-asdf;
-asdg;
-asdh;
-asdi;
-asdj;
-asdk;
-asdl;
-asdm;
-asdn;
-asdo;
-asdp;
-asdq;
-asdr;
-asds;
-asdt;
-asdu;
-asdv;
-asdw;
-asdx;
-asdy;
-asdz;
-asea;
-aseb;
-asec;
-ased;
-asee;
-asef;
-aseg;
-aseh;
-asei;
-asej;
-asek;
-asel;
-asem;
-asen;
-aseo;
-asep;
-aseq;
-aser;
-ases;
-aset;
-aseu;
-asev;
-asew;
-asex;
-asey;
-asez;
-asfa;
-asfb;
-asfc;
-asfd;
-asfe;
-asff;
-asfg;
-asfh;
-asfi;
-asfj;
-asfk;
-asfl;
-asfm;
-asfn;
-asfo;
-asfp;
-asfq;
-asfr;
-asfs;
-asft;
-asfu;
-asfv;
-asfw;
-asfx;
-asfy;
-asfz;
-asga;
-asgb;
-asgc;
-asgd;
-asge;
-asgf;
-asgg;
-asgh;
-asgi;
-asgj;
-asgk;
-asgl;
-asgm;
-asgn;
-asgo;
-asgp;
-asgq;
-asgr;
-asgs;
-asgt;
-asgu;
-asgv;
-asgw;
-asgx;
-asgy;
-asgz;
-asha;
-ashb;
-ashc;
-ashd;
-ashe;
-ashf;
-ashg;
-ashh;
-ashi;
-ashj;
-ashk;
-ashl;
-ashm;
-ashn;
-asho;
-ashp;
-ashq;
-ashr;
-ashs;
-asht;
-ashu;
-ashv;
-ashw;
-ashx;
-ashy;
-ashz;
-asia;
-asib;
-asic;
-asid;
-asie;
-asif;
-asig;
-asih;
-asii;
-asij;
-asik;
-asil;
-asim;
-asin;
-asio;
-asip;
-asiq;
-asir;
-asis;
-asit;
-asiu;
-asiv;
-asiw;
-asix;
-asiy;
-asiz;
-asja;
-asjb;
-asjc;
-asjd;
-asje;
-asjf;
-asjg;
-asjh;
-asji;
-asjj;
-asjk;
-asjl;
-asjm;
-asjn;
-asjo;
-asjp;
-asjq;
-asjr;
-asjs;
-asjt;
-asju;
-asjv;
-asjw;
-asjx;
-asjy;
-asjz;
-aska;
-askb;
-askc;
-askd;
-aske;
-askf;
-askg;
-askh;
-aski;
-askj;
-askk;
-askl;
-askm;
-askn;
-asko;
-askp;
-askq;
-askr;
-asks;
-askt;
-asku;
-askv;
-askw;
-askx;
-asky;
-askz;
-asla;
-aslb;
-aslc;
-asld;
-asle;
-aslf;
-aslg;
-aslh;
-asli;
-aslj;
-aslk;
-asll;
-aslm;
-asln;
-aslo;
-aslp;
-aslq;
-aslr;
-asls;
-aslt;
-aslu;
-aslv;
-aslw;
-aslx;
-asly;
-aslz;
-asma;
-asmb;
-asmc;
-asmd;
-asme;
-asmf;
-asmg;
-asmh;
-asmi;
-asmj;
-asmk;
-asml;
-asmm;
-asmn;
-asmo;
-asmp;
-asmq;
-asmr;
-asms;
-asmt;
-asmu;
-asmv;
-asmw;
-asmx;
-asmy;
-asmz;
-asna;
-asnb;
-asnc;
-asnd;
-asne;
-asnf;
-asng;
-asnh;
-asni;
-asnj;
-asnk;
-asnl;
-asnm;
-asnn;
-asno;
-asnp;
-asnq;
-asnr;
-asns;
-asnt;
-asnu;
-asnv;
-asnw;
-asnx;
-asny;
-asnz;
-asoa;
-asob;
-asoc;
-asod;
-asoe;
-asof;
-asog;
-asoh;
-asoi;
-asoj;
-asok;
-asol;
-asom;
-ason;
-asoo;
-asop;
-asoq;
-asor;
-asos;
-asot;
-asou;
-asov;
-asow;
-asox;
-asoy;
-asoz;
-aspa;
-aspb;
-aspc;
-aspd;
-aspe;
-aspf;
-aspg;
-asph;
-aspi;
-aspj;
-aspk;
-aspl;
-aspm;
-aspn;
-aspo;
-aspp;
-aspq;
-aspr;
-asps;
-aspt;
-aspu;
-aspv;
-aspw;
-aspx;
-aspy;
-aspz;
-asqa;
-asqb;
-asqc;
-asqd;
-asqe;
-asqf;
-asqg;
-asqh;
-asqi;
-asqj;
-asqk;
-asql;
-asqm;
-asqn;
-asqo;
-asqp;
-asqq;
-asqr;
-asqs;
-asqt;
-asqu;
-asqv;
-asqw;
-asqx;
-asqy;
-asqz;
-asra;
-asrb;
-asrc;
-asrd;
-asre;
-asrf;
-asrg;
-asrh;
-asri;
-asrj;
-asrk;
-asrl;
-asrm;
-asrn;
-asro;
-asrp;
-asrq;
-asrr;
-asrs;
-asrt;
-asru;
-asrv;
-asrw;
-asrx;
-asry;
-asrz;
-assa;
-assb;
-assc;
-assd;
-asse;
-assf;
-assg;
-assh;
-assi;
-assj;
-assk;
-assl;
-assm;
-assn;
-asso;
-assp;
-assq;
-assr;
-asss;
-asst;
-assu;
-assv;
-assw;
-assx;
-assy;
-assz;
-asta;
-astb;
-astc;
-astd;
-aste;
-astf;
-astg;
-asth;
-asti;
-astj;
-astk;
-astl;
-astm;
-astn;
-asto;
-astp;
-astq;
-astr;
-asts;
-astt;
-astu;
-astv;
-astw;
-astx;
-asty;
-astz;
-asua;
-asub;
-asuc;
-asud;
-asue;
-asuf;
-asug;
-asuh;
-asui;
-asuj;
-asuk;
-asul;
-asum;
-asun;
-asuo;
-asup;
-asuq;
-asur;
-asus;
-asut;
-asuu;
-asuv;
-asuw;
-asux;
-asuy;
-asuz;
-asva;
-asvb;
-asvc;
-asvd;
-asve;
-asvf;
-asvg;
-asvh;
-asvi;
-asvj;
-asvk;
-asvl;
-asvm;
-asvn;
-asvo;
-asvp;
-asvq;
-asvr;
-asvs;
-asvt;
-asvu;
-asvv;
-asvw;
-asvx;
-asvy;
-asvz;
-aswa;
-aswb;
-aswc;
-aswd;
-aswe;
-aswf;
-aswg;
-aswh;
-aswi;
-aswj;
-aswk;
-aswl;
-aswm;
-aswn;
-aswo;
-aswp;
-aswq;
-aswr;
-asws;
-aswt;
-aswu;
-aswv;
-asww;
-aswx;
-aswy;
-aswz;
-asxa;
-asxb;
-asxc;
-asxd;
-asxe;
-asxf;
-asxg;
-asxh;
-asxi;
-asxj;
-asxk;
-asxl;
-asxm;
-asxn;
-asxo;
-asxp;
-asxq;
-asxr;
-asxs;
-asxt;
-asxu;
-asxv;
-asxw;
-asxx;
-asxy;
-asxz;
-asya;
-asyb;
-asyc;
-asyd;
-asye;
-asyf;
-asyg;
-asyh;
-asyi;
-asyj;
-asyk;
-asyl;
-asym;
-asyn;
-asyo;
-asyp;
-asyq;
-asyr;
-asys;
-asyt;
-asyu;
-asyv;
-asyw;
-asyx;
-asyy;
-asyz;
-asza;
-aszb;
-aszc;
-aszd;
-asze;
-aszf;
-aszg;
-aszh;
-aszi;
-aszj;
-aszk;
-aszl;
-aszm;
-aszn;
-aszo;
-aszp;
-aszq;
-aszr;
-aszs;
-aszt;
-aszu;
-aszv;
-aszw;
-aszx;
-aszy;
-aszz;
-ataa;
-atab;
-atac;
-atad;
-atae;
-ataf;
-atag;
-atah;
-atai;
-ataj;
-atak;
-atal;
-atam;
-atan;
-atao;
-atap;
-ataq;
-atar;
-atas;
-atat;
-atau;
-atav;
-ataw;
-atax;
-atay;
-ataz;
-atba;
-atbb;
-atbc;
-atbd;
-atbe;
-atbf;
-atbg;
-atbh;
-atbi;
-atbj;
-atbk;
-atbl;
-atbm;
-atbn;
-atbo;
-atbp;
-atbq;
-atbr;
-atbs;
-atbt;
-atbu;
-atbv;
-atbw;
-atbx;
-atby;
-atbz;
-atca;
-atcb;
-atcc;
-atcd;
-atce;
-atcf;
-atcg;
-atch;
-atci;
-atcj;
-atck;
-atcl;
-atcm;
-atcn;
-atco;
-atcp;
-atcq;
-atcr;
-atcs;
-atct;
-atcu;
-atcv;
-atcw;
-atcx;
-atcy;
-atcz;
-atda;
-atdb;
-atdc;
-atdd;
-atde;
-atdf;
-atdg;
-atdh;
-atdi;
-atdj;
-atdk;
-atdl;
-atdm;
-atdn;
-atdo;
-atdp;
-atdq;
-atdr;
-atds;
-atdt;
-atdu;
-atdv;
-atdw;
-atdx;
-atdy;
-atdz;
-atea;
-ateb;
-atec;
-ated;
-atee;
-atef;
-ateg;
-ateh;
-atei;
-atej;
-atek;
-atel;
-atem;
-aten;
-ateo;
-atep;
-ateq;
-ater;
-ates;
-atet;
-ateu;
-atev;
-atew;
-atex;
-atey;
-atez;
-atfa;
-atfb;
-atfc;
-atfd;
-atfe;
-atff;
-atfg;
-atfh;
-atfi;
-atfj;
-atfk;
-atfl;
-atfm;
-atfn;
-atfo;
-atfp;
-atfq;
-atfr;
-atfs;
-atft;
-atfu;
-atfv;
-atfw;
-atfx;
-atfy;
-atfz;
-atga;
-atgb;
-atgc;
-atgd;
-atge;
-atgf;
-atgg;
-atgh;
-atgi;
-atgj;
-atgk;
-atgl;
-atgm;
-atgn;
-atgo;
-atgp;
-atgq;
-atgr;
-atgs;
-atgt;
-atgu;
-atgv;
-atgw;
-atgx;
-atgy;
-atgz;
-atha;
-athb;
-athc;
-athd;
-athe;
-athf;
-athg;
-athh;
-athi;
-athj;
-athk;
-athl;
-athm;
-athn;
-atho;
-athp;
-athq;
-athr;
-aths;
-atht;
-athu;
-athv;
-athw;
-athx;
-athy;
-athz;
-atia;
-atib;
-atic;
-atid;
-atie;
-atif;
-atig;
-atih;
-atii;
-atij;
-atik;
-atil;
-atim;
-atin;
-atio;
-atip;
-atiq;
-atir;
-atis;
-atit;
-atiu;
-ativ;
-atiw;
-atix;
-atiy;
-atiz;
-atja;
-atjb;
-atjc;
-atjd;
-atje;
-atjf;
-atjg;
-atjh;
-atji;
-atjj;
-atjk;
-atjl;
-atjm;
-atjn;
-atjo;
-atjp;
-atjq;
-atjr;
-atjs;
-atjt;
-atju;
-atjv;
-atjw;
-atjx;
-atjy;
-atjz;
-atka;
-atkb;
-atkc;
-atkd;
-atke;
-atkf;
-atkg;
-atkh;
-atki;
-atkj;
-atkk;
-atkl;
-atkm;
-atkn;
-atko;
-atkp;
-atkq;
-atkr;
-atks;
-atkt;
-atku;
-atkv;
-atkw;
-atkx;
-atky;
-atkz;
-atla;
-atlb;
-atlc;
-atld;
-atle;
-atlf;
-atlg;
-atlh;
-atli;
-atlj;
-atlk;
-atll;
-atlm;
-atln;
-atlo;
-atlp;
-atlq;
-atlr;
-atls;
-atlt;
-atlu;
-atlv;
-atlw;
-atlx;
-atly;
-atlz;
-atma;
-atmb;
-atmc;
-atmd;
-atme;
-atmf;
-atmg;
-atmh;
-atmi;
-atmj;
-atmk;
-atml;
-atmm;
-atmn;
-atmo;
-atmp;
-atmq;
-atmr;
-atms;
-atmt;
-atmu;
-atmv;
-atmw;
-atmx;
-atmy;
-atmz;
-atna;
-atnb;
-atnc;
-atnd;
-atne;
-atnf;
-atng;
-atnh;
-atni;
-atnj;
-atnk;
-atnl;
-atnm;
-atnn;
-atno;
-atnp;
-atnq;
-atnr;
-atns;
-atnt;
-atnu;
-atnv;
-atnw;
-atnx;
-atny;
-atnz;
-atoa;
-atob;
-atoc;
-atod;
-atoe;
-atof;
-atog;
-atoh;
-atoi;
-atoj;
-atok;
-atol;
-atom;
-aton;
-atoo;
-atop;
-atoq;
-ator;
-atos;
-atot;
-atou;
-atov;
-atow;
-atox;
-atoy;
-atoz;
-atpa;
-atpb;
-atpc;
-atpd;
-atpe;
-atpf;
-atpg;
-atph;
-atpi;
-atpj;
-atpk;
-atpl;
-atpm;
-atpn;
-atpo;
-atpp;
-atpq;
-atpr;
-atps;
-atpt;
-atpu;
-atpv;
-atpw;
-atpx;
-atpy;
-atpz;
-atqa;
-atqb;
-atqc;
-atqd;
-atqe;
-atqf;
-atqg;
-atqh;
-atqi;
-atqj;
-atqk;
-atql;
-atqm;
-atqn;
-atqo;
-atqp;
-atqq;
-atqr;
-atqs;
-atqt;
-atqu;
-atqv;
-atqw;
-atqx;
-atqy;
-atqz;
-atra;
-atrb;
-atrc;
-atrd;
-atre;
-atrf;
-atrg;
-atrh;
-atri;
-atrj;
-atrk;
-atrl;
-atrm;
-atrn;
-atro;
-atrp;
-atrq;
-atrr;
-atrs;
-atrt;
-atru;
-atrv;
-atrw;
-atrx;
-atry;
-atrz;
-atsa;
-atsb;
-atsc;
-atsd;
-atse;
-atsf;
-atsg;
-atsh;
-atsi;
-atsj;
-atsk;
-atsl;
-atsm;
-atsn;
-atso;
-atsp;
-atsq;
-atsr;
-atss;
-atst;
-atsu;
-atsv;
-atsw;
-atsx;
-atsy;
-atsz;
-atta;
-attb;
-attc;
-attd;
-atte;
-attf;
-attg;
-atth;
-atti;
-attj;
-attk;
-attl;
-attm;
-attn;
-atto;
-attp;
-attq;
-attr;
-atts;
-attt;
-attu;
-attv;
-attw;
-attx;
-atty;
-attz;
-atua;
-atub;
-atuc;
-atud;
-atue;
-atuf;
-atug;
-atuh;
-atui;
-atuj;
-atuk;
-atul;
-atum;
-atun;
-atuo;
-atup;
-atuq;
-atur;
-atus;
-atut;
-atuu;
-atuv;
-atuw;
-atux;
-atuy;
-atuz;
-atva;
-atvb;
-atvc;
-atvd;
-atve;
-atvf;
-atvg;
-atvh;
-atvi;
-atvj;
-atvk;
-atvl;
-atvm;
-atvn;
-atvo;
-atvp;
-atvq;
-atvr;
-atvs;
-atvt;
-atvu;
-atvv;
-atvw;
-atvx;
-atvy;
-atvz;
-atwa;
-atwb;
-atwc;
-atwd;
-atwe;
-atwf;
-atwg;
-atwh;
-atwi;
-atwj;
-atwk;
-atwl;
-atwm;
-atwn;
-atwo;
-atwp;
-atwq;
-atwr;
-atws;
-atwt;
-atwu;
-atwv;
-atww;
-atwx;
-atwy;
-atwz;
-atxa;
-atxb;
-atxc;
-atxd;
-atxe;
-atxf;
-atxg;
-atxh;
-atxi;
-atxj;
-atxk;
-atxl;
-atxm;
-atxn;
-atxo;
-atxp;
-atxq;
-atxr;
-atxs;
-atxt;
-atxu;
-atxv;
-atxw;
-atxx;
-atxy;
-atxz;
-atya;
-atyb;
-atyc;
-atyd;
-atye;
-atyf;
-atyg;
-atyh;
-atyi;
-atyj;
-atyk;
-atyl;
-atym;
-atyn;
-atyo;
-atyp;
-atyq;
-atyr;
-atys;
-atyt;
-atyu;
-atyv;
-atyw;
-atyx;
-atyy;
-atyz;
-atza;
-atzb;
-atzc;
-atzd;
-atze;
-atzf;
-atzg;
-atzh;
-atzi;
-atzj;
-atzk;
-atzl;
-atzm;
-atzn;
-atzo;
-atzp;
-atzq;
-atzr;
-atzs;
-atzt;
-atzu;
-atzv;
-atzw;
-atzx;
-atzy;
-atzz;
-auaa;
-auab;
-auac;
-auad;
-auae;
-auaf;
-auag;
-auah;
-auai;
-auaj;
-auak;
-aual;
-auam;
-auan;
-auao;
-auap;
-auaq;
-auar;
-auas;
-auat;
-auau;
-auav;
-auaw;
-auax;
-auay;
-auaz;
-auba;
-aubb;
-aubc;
-aubd;
-aube;
-aubf;
-aubg;
-aubh;
-aubi;
-aubj;
-aubk;
-aubl;
-aubm;
-aubn;
-aubo;
-aubp;
-aubq;
-aubr;
-aubs;
-aubt;
-aubu;
-aubv;
-aubw;
-aubx;
-auby;
-aubz;
-auca;
-aucb;
-aucc;
-aucd;
-auce;
-aucf;
-aucg;
-auch;
-auci;
-aucj;
-auck;
-aucl;
-aucm;
-aucn;
-auco;
-aucp;
-aucq;
-aucr;
-aucs;
-auct;
-aucu;
-aucv;
-aucw;
-aucx;
-aucy;
-aucz;
-auda;
-audb;
-audc;
-audd;
-aude;
-audf;
-audg;
-audh;
-audi;
-audj;
-audk;
-audl;
-audm;
-audn;
-audo;
-audp;
-audq;
-audr;
-auds;
-audt;
-audu;
-audv;
-audw;
-audx;
-audy;
-audz;
-auea;
-aueb;
-auec;
-aued;
-auee;
-auef;
-aueg;
-aueh;
-auei;
-auej;
-auek;
-auel;
-auem;
-auen;
-aueo;
-auep;
-aueq;
-auer;
-aues;
-auet;
-aueu;
-auev;
-auew;
-auex;
-auey;
-auez;
-aufa;
-aufb;
-aufc;
-aufd;
-aufe;
-auff;
-aufg;
-aufh;
-aufi;
-aufj;
-aufk;
-aufl;
-aufm;
-aufn;
-aufo;
-aufp;
-aufq;
-aufr;
-aufs;
-auft;
-aufu;
-aufv;
-aufw;
-aufx;
-aufy;
-aufz;
-auga;
-augb;
-augc;
-augd;
-auge;
-augf;
-augg;
-augh;
-augi;
-augj;
-augk;
-augl;
-augm;
-augn;
-augo;
-augp;
-augq;
-augr;
-augs;
-augt;
-augu;
-augv;
-augw;
-augx;
-augy;
-augz;
-auha;
-auhb;
-auhc;
-auhd;
-auhe;
-auhf;
-auhg;
-auhh;
-auhi;
-auhj;
-auhk;
-auhl;
-auhm;
-auhn;
-auho;
-auhp;
-auhq;
-auhr;
-auhs;
-auht;
-auhu;
-auhv;
-auhw;
-auhx;
-auhy;
-auhz;
-auia;
-auib;
-auic;
-auid;
-auie;
-auif;
-auig;
-auih;
-auii;
-auij;
-auik;
-auil;
-auim;
-auin;
-auio;
-auip;
-auiq;
-auir;
-auis;
-auit;
-auiu;
-auiv;
-auiw;
-auix;
-auiy;
-auiz;
-auja;
-aujb;
-aujc;
-aujd;
-auje;
-aujf;
-aujg;
-aujh;
-auji;
-aujj;
-aujk;
-aujl;
-aujm;
-aujn;
-aujo;
-aujp;
-aujq;
-aujr;
-aujs;
-aujt;
-auju;
-aujv;
-aujw;
-aujx;
-aujy;
-aujz;
-auka;
-aukb;
-aukc;
-aukd;
-auke;
-aukf;
-aukg;
-aukh;
-auki;
-aukj;
-aukk;
-aukl;
-aukm;
-aukn;
-auko;
-aukp;
-aukq;
-aukr;
-auks;
-aukt;
-auku;
-aukv;
-aukw;
-aukx;
-auky;
-aukz;
-aula;
-aulb;
-aulc;
-auld;
-aule;
-aulf;
-aulg;
-aulh;
-auli;
-aulj;
-aulk;
-aull;
-aulm;
-auln;
-aulo;
-aulp;
-aulq;
-aulr;
-auls;
-ault;
-aulu;
-aulv;
-aulw;
-aulx;
-auly;
-aulz;
-auma;
-aumb;
-aumc;
-aumd;
-aume;
-aumf;
-aumg;
-aumh;
-aumi;
-aumj;
-aumk;
-auml;
-aumm;
-aumn;
-aumo;
-aump;
-aumq;
-aumr;
-aums;
-aumt;
-aumu;
-aumv;
-aumw;
-aumx;
-aumy;
-aumz;
-auna;
-aunb;
-aunc;
-aund;
-aune;
-aunf;
-aung;
-aunh;
-auni;
-aunj;
-aunk;
-aunl;
-aunm;
-aunn;
-auno;
-aunp;
-aunq;
-aunr;
-auns;
-aunt;
-aunu;
-aunv;
-aunw;
-aunx;
-auny;
-aunz;
-auoa;
-auob;
-auoc;
-auod;
-auoe;
-auof;
-auog;
-auoh;
-auoi;
-auoj;
-auok;
-auol;
-auom;
-auon;
-auoo;
-auop;
-auoq;
-auor;
-auos;
-auot;
-auou;
-auov;
-auow;
-auox;
-auoy;
-auoz;
-aupa;
-aupb;
-aupc;
-aupd;
-aupe;
-aupf;
-aupg;
-auph;
-aupi;
-aupj;
-aupk;
-aupl;
-aupm;
-aupn;
-aupo;
-aupp;
-aupq;
-aupr;
-aups;
-aupt;
-aupu;
-aupv;
-aupw;
-aupx;
-aupy;
-aupz;
-auqa;
-auqb;
-auqc;
-auqd;
-auqe;
-auqf;
-auqg;
-auqh;
-auqi;
-auqj;
-auqk;
-auql;
-auqm;
-auqn;
-auqo;
-auqp;
-auqq;
-auqr;
-auqs;
-auqt;
-auqu;
-auqv;
-auqw;
-auqx;
-auqy;
-auqz;
-aura;
-aurb;
-aurc;
-aurd;
-aure;
-aurf;
-aurg;
-aurh;
-auri;
-aurj;
-aurk;
-aurl;
-aurm;
-aurn;
-auro;
-aurp;
-aurq;
-aurr;
-aurs;
-aurt;
-auru;
-aurv;
-aurw;
-aurx;
-aury;
-aurz;
-ausa;
-ausb;
-ausc;
-ausd;
-ause;
-ausf;
-ausg;
-aush;
-ausi;
-ausj;
-ausk;
-ausl;
-ausm;
-ausn;
-auso;
-ausp;
-ausq;
-ausr;
-auss;
-aust;
-ausu;
-ausv;
-ausw;
-ausx;
-ausy;
-ausz;
-auta;
-autb;
-autc;
-autd;
-aute;
-autf;
-autg;
-auth;
-auti;
-autj;
-autk;
-autl;
-autm;
-autn;
-auto;
-autp;
-autq;
-autr;
-auts;
-autt;
-autu;
-autv;
-autw;
-autx;
-auty;
-autz;
-auua;
-auub;
-auuc;
-auud;
-auue;
-auuf;
-auug;
-auuh;
-auui;
-auuj;
-auuk;
-auul;
-auum;
-auun;
-auuo;
-auup;
-auuq;
-auur;
-auus;
-auut;
-auuu;
-auuv;
-auuw;
-auux;
-auuy;
-auuz;
-auva;
-auvb;
-auvc;
-auvd;
-auve;
-auvf;
-auvg;
-auvh;
-auvi;
-auvj;
-auvk;
-auvl;
-auvm;
-auvn;
-auvo;
-auvp;
-auvq;
-auvr;
-auvs;
-auvt;
-auvu;
-auvv;
-auvw;
-auvx;
-auvy;
-auvz;
-auwa;
-auwb;
-auwc;
-auwd;
-auwe;
-auwf;
-auwg;
-auwh;
-auwi;
-auwj;
-auwk;
-auwl;
-auwm;
-auwn;
-auwo;
-auwp;
-auwq;
-auwr;
-auws;
-auwt;
-auwu;
-auwv;
-auww;
-auwx;
-auwy;
-auwz;
-auxa;
-auxb;
-auxc;
-auxd;
-auxe;
-auxf;
-auxg;
-auxh;
-auxi;
-auxj;
-auxk;
-auxl;
-auxm;
-auxn;
-auxo;
-auxp;
-auxq;
-auxr;
-auxs;
-auxt;
-auxu;
-auxv;
-auxw;
-auxx;
-auxy;
-auxz;
-auya;
-auyb;
-auyc;
-auyd;
-auye;
-auyf;
-auyg;
-auyh;
-auyi;
-auyj;
-auyk;
-auyl;
-auym;
-auyn;
-auyo;
-auyp;
-auyq;
-auyr;
-auys;
-auyt;
-auyu;
-auyv;
-auyw;
-auyx;
-auyy;
-auyz;
-auza;
-auzb;
-auzc;
-auzd;
-auze;
-auzf;
-auzg;
-auzh;
-auzi;
-auzj;
-auzk;
-auzl;
-auzm;
-auzn;
-auzo;
-auzp;
-auzq;
-auzr;
-auzs;
-auzt;
-auzu;
-auzv;
-auzw;
-auzx;
-auzy;
-auzz;
-avaa;
-avab;
-avac;
-avad;
-avae;
-avaf;
-avag;
-avah;
-avai;
-avaj;
-avak;
-aval;
-avam;
-avan;
-avao;
-avap;
-avaq;
-avar;
-avas;
-avat;
-avau;
-avav;
-avaw;
-avax;
-avay;
-avaz;
-avba;
-avbb;
-avbc;
-avbd;
-avbe;
-avbf;
-avbg;
-avbh;
-avbi;
-avbj;
-avbk;
-avbl;
-avbm;
-avbn;
-avbo;
-avbp;
-avbq;
-avbr;
-avbs;
-avbt;
-avbu;
-avbv;
-avbw;
-avbx;
-avby;
-avbz;
-avca;
-avcb;
-avcc;
-avcd;
-avce;
-avcf;
-avcg;
-avch;
-avci;
-avcj;
-avck;
-avcl;
-avcm;
-avcn;
-avco;
-avcp;
-avcq;
-avcr;
-avcs;
-avct;
-avcu;
-avcv;
-avcw;
-avcx;
-avcy;
-avcz;
-avda;
-avdb;
-avdc;
-avdd;
-avde;
-avdf;
-avdg;
-avdh;
-avdi;
-avdj;
-avdk;
-avdl;
-avdm;
-avdn;
-avdo;
-avdp;
-avdq;
-avdr;
-avds;
-avdt;
-avdu;
-avdv;
-avdw;
-avdx;
-avdy;
-avdz;
-avea;
-aveb;
-avec;
-aved;
-avee;
-avef;
-aveg;
-aveh;
-avei;
-avej;
-avek;
-avel;
-avem;
-aven;
-aveo;
-avep;
-aveq;
-aver;
-aves;
-avet;
-aveu;
-avev;
-avew;
-avex;
-avey;
-avez;
-avfa;
-avfb;
-avfc;
-avfd;
-avfe;
-avff;
-avfg;
-avfh;
-avfi;
-avfj;
-avfk;
-avfl;
-avfm;
-avfn;
-avfo;
-avfp;
-avfq;
-avfr;
-avfs;
-avft;
-avfu;
-avfv;
-avfw;
-avfx;
-avfy;
-avfz;
-avga;
-avgb;
-avgc;
-avgd;
-avge;
-avgf;
-avgg;
-avgh;
-avgi;
-avgj;
-avgk;
-avgl;
-avgm;
-avgn;
-avgo;
-avgp;
-avgq;
-avgr;
-avgs;
-avgt;
-avgu;
-avgv;
-avgw;
-avgx;
-avgy;
-avgz;
-avha;
-avhb;
-avhc;
-avhd;
-avhe;
-avhf;
-avhg;
-avhh;
-avhi;
-avhj;
-avhk;
-avhl;
-avhm;
-avhn;
-avho;
-avhp;
-avhq;
-avhr;
-avhs;
-avht;
-avhu;
-avhv;
-avhw;
-avhx;
-avhy;
-avhz;
-avia;
-avib;
-avic;
-avid;
-avie;
-avif;
-avig;
-avih;
-avii;
-avij;
-avik;
-avil;
-avim;
-avin;
-avio;
-avip;
-aviq;
-avir;
-avis;
-avit;
-aviu;
-aviv;
-aviw;
-avix;
-aviy;
-aviz;
-avja;
-avjb;
-avjc;
-avjd;
-avje;
-avjf;
-avjg;
-avjh;
-avji;
-avjj;
-avjk;
-avjl;
-avjm;
-avjn;
-avjo;
-avjp;
-avjq;
-avjr;
-avjs;
-avjt;
-avju;
-avjv;
-avjw;
-avjx;
-avjy;
-avjz;
-avka;
-avkb;
-avkc;
-avkd;
-avke;
-avkf;
-avkg;
-avkh;
-avki;
-avkj;
-avkk;
-avkl;
-avkm;
-avkn;
-avko;
-avkp;
-avkq;
-avkr;
-avks;
-avkt;
-avku;
-avkv;
-avkw;
-avkx;
-avky;
-avkz;
-avla;
-avlb;
-avlc;
-avld;
-avle;
-avlf;
-avlg;
-avlh;
-avli;
-avlj;
-avlk;
-avll;
-avlm;
-avln;
-avlo;
-avlp;
-avlq;
-avlr;
-avls;
-avlt;
-avlu;
-avlv;
-avlw;
-avlx;
-avly;
-avlz;
-avma;
-avmb;
-avmc;
-avmd;
-avme;
-avmf;
-avmg;
-avmh;
-avmi;
-avmj;
-avmk;
-avml;
-avmm;
-avmn;
-avmo;
-avmp;
-avmq;
-avmr;
-avms;
-avmt;
-avmu;
-avmv;
-avmw;
-avmx;
-avmy;
-avmz;
-avna;
-avnb;
-avnc;
-avnd;
-avne;
-avnf;
-avng;
-avnh;
-avni;
-avnj;
-avnk;
-avnl;
-avnm;
-avnn;
-avno;
-avnp;
-avnq;
-avnr;
-avns;
-avnt;
-avnu;
-avnv;
-avnw;
-avnx;
-avny;
-avnz;
-avoa;
-avob;
-avoc;
-avod;
-avoe;
-avof;
-avog;
-avoh;
-avoi;
-avoj;
-avok;
-avol;
-avom;
-avon;
-avoo;
-avop;
-avoq;
-avor;
-avos;
-avot;
-avou;
-avov;
-avow;
-avox;
-avoy;
-avoz;
-avpa;
-avpb;
-avpc;
-avpd;
-avpe;
-avpf;
-avpg;
-avph;
-avpi;
-avpj;
-avpk;
-avpl;
-avpm;
-avpn;
-avpo;
-avpp;
-avpq;
-avpr;
-avps;
-avpt;
-avpu;
-avpv;
-avpw;
-avpx;
-avpy;
-avpz;
-avqa;
-avqb;
-avqc;
-avqd;
-avqe;
-avqf;
-avqg;
-avqh;
-avqi;
-avqj;
-avqk;
-avql;
-avqm;
-avqn;
-avqo;
-avqp;
-avqq;
-avqr;
-avqs;
-avqt;
-avqu;
-avqv;
-avqw;
-avqx;
-avqy;
-avqz;
-avra;
-avrb;
-avrc;
-avrd;
-avre;
-avrf;
-avrg;
-avrh;
-avri;
-avrj;
-avrk;
-avrl;
-avrm;
-avrn;
-avro;
-avrp;
-avrq;
-avrr;
-avrs;
-avrt;
-avru;
-avrv;
-avrw;
-avrx;
-avry;
-avrz;
-avsa;
-avsb;
-avsc;
-avsd;
-avse;
-avsf;
-avsg;
-avsh;
-avsi;
-avsj;
-avsk;
-avsl;
-avsm;
-avsn;
-avso;
-avsp;
-avsq;
-avsr;
-avss;
-avst;
-avsu;
-avsv;
-avsw;
-avsx;
-avsy;
-avsz;
-avta;
-avtb;
-avtc;
-avtd;
-avte;
-avtf;
-avtg;
-avth;
-avti;
-avtj;
-avtk;
-avtl;
-avtm;
-avtn;
-avto;
-avtp;
-avtq;
-avtr;
-avts;
-avtt;
-avtu;
-avtv;
-avtw;
-avtx;
-avty;
-avtz;
-avua;
-avub;
-avuc;
-avud;
-avue;
-avuf;
-avug;
-avuh;
-avui;
-avuj;
-avuk;
-avul;
-avum;
-avun;
-avuo;
-avup;
-avuq;
-avur;
-avus;
-avut;
-avuu;
-avuv;
-avuw;
-avux;
-avuy;
-avuz;
-avva;
-avvb;
-avvc;
-avvd;
-avve;
-avvf;
-avvg;
-avvh;
-avvi;
-avvj;
-avvk;
-avvl;
-avvm;
-avvn;
-avvo;
-avvp;
-avvq;
-avvr;
-avvs;
-avvt;
-avvu;
-avvv;
-avvw;
-avvx;
-avvy;
-avvz;
-avwa;
-avwb;
-avwc;
-avwd;
-avwe;
-avwf;
-avwg;
-avwh;
-avwi;
-avwj;
-avwk;
-avwl;
-avwm;
-avwn;
-avwo;
-avwp;
-avwq;
-avwr;
-avws;
-avwt;
-avwu;
-avwv;
-avww;
-avwx;
-avwy;
-avwz;
-avxa;
-avxb;
-avxc;
-avxd;
-avxe;
-avxf;
-avxg;
-avxh;
-avxi;
-avxj;
-avxk;
-avxl;
-avxm;
-avxn;
-avxo;
-avxp;
-avxq;
-avxr;
-avxs;
-avxt;
-avxu;
-avxv;
-avxw;
-avxx;
-avxy;
-avxz;
-avya;
-avyb;
-avyc;
-avyd;
-avye;
-avyf;
-avyg;
-avyh;
-avyi;
-avyj;
-avyk;
-avyl;
-avym;
-avyn;
-avyo;
-avyp;
-avyq;
-avyr;
-avys;
-avyt;
-avyu;
-avyv;
-avyw;
-avyx;
-avyy;
-avyz;
-avza;
-avzb;
-avzc;
-avzd;
-avze;
-avzf;
-avzg;
-avzh;
-avzi;
-avzj;
-avzk;
-avzl;
-avzm;
-avzn;
-avzo;
-avzp;
-avzq;
-avzr;
-avzs;
-avzt;
-avzu;
-avzv;
-avzw;
-avzx;
-avzy;
-avzz;
-awaa;
-awab;
-awac;
-awad;
-awae;
-awaf;
-awag;
-awah;
-awai;
-awaj;
-awak;
-awal;
-awam;
-awan;
-awao;
-awap;
-awaq;
-awar;
-awas;
-awat;
-awau;
-awav;
-awaw;
-awax;
-away;
-awaz;
-awba;
-awbb;
-awbc;
-awbd;
-awbe;
-awbf;
-awbg;
-awbh;
-awbi;
-awbj;
-awbk;
-awbl;
-awbm;
-awbn;
-awbo;
-awbp;
-awbq;
-awbr;
-awbs;
-awbt;
-awbu;
-awbv;
-awbw;
-awbx;
-awby;
-awbz;
-awca;
-awcb;
-awcc;
-awcd;
-awce;
-awcf;
-awcg;
-awch;
-awci;
-awcj;
-awck;
-awcl;
-awcm;
-awcn;
-awco;
-awcp;
-awcq;
-awcr;
-awcs;
-awct;
-awcu;
-awcv;
-awcw;
-awcx;
-awcy;
-awcz;
-awda;
-awdb;
-awdc;
-awdd;
-awde;
-awdf;
-awdg;
-awdh;
-awdi;
-awdj;
-awdk;
-awdl;
-awdm;
-awdn;
-awdo;
-awdp;
-awdq;
-awdr;
-awds;
-awdt;
-awdu;
-awdv;
-awdw;
-awdx;
-awdy;
-awdz;
-awea;
-aweb;
-awec;
-awed;
-awee;
-awef;
-aweg;
-aweh;
-awei;
-awej;
-awek;
-awel;
-awem;
-awen;
-aweo;
-awep;
-aweq;
-awer;
-awes;
-awet;
-aweu;
-awev;
-awew;
-awex;
-awey;
-awez;
-awfa;
-awfb;
-awfc;
-awfd;
-awfe;
-awff;
-awfg;
-awfh;
-awfi;
-awfj;
-awfk;
-awfl;
-awfm;
-awfn;
-awfo;
-awfp;
-awfq;
-awfr;
-awfs;
-awft;
-awfu;
-awfv;
-awfw;
-awfx;
-awfy;
-awfz;
-awga;
-awgb;
-awgc;
-awgd;
-awge;
-awgf;
-awgg;
-awgh;
-awgi;
-awgj;
-awgk;
-awgl;
-awgm;
-awgn;
-awgo;
-awgp;
-awgq;
-awgr;
-awgs;
-awgt;
-awgu;
-awgv;
-awgw;
-awgx;
-awgy;
-awgz;
-awha;
-awhb;
-awhc;
-awhd;
-awhe;
-awhf;
-awhg;
-awhh;
-awhi;
-awhj;
-awhk;
-awhl;
-awhm;
-awhn;
-awho;
-awhp;
-awhq;
-awhr;
-awhs;
-awht;
-awhu;
-awhv;
-awhw;
-awhx;
-awhy;
-awhz;
-awia;
-awib;
-awic;
-awid;
-awie;
-awif;
-awig;
-awih;
-awii;
-awij;
-awik;
-awil;
-awim;
-awin;
-awio;
-awip;
-awiq;
-awir;
-awis;
-awit;
-awiu;
-awiv;
-awiw;
-awix;
-awiy;
-awiz;
-awja;
-awjb;
-awjc;
-awjd;
-awje;
-awjf;
-awjg;
-awjh;
-awji;
-awjj;
-awjk;
-awjl;
-awjm;
-awjn;
-awjo;
-awjp;
-awjq;
-awjr;
-awjs;
-awjt;
-awju;
-awjv;
-awjw;
-awjx;
-awjy;
-awjz;
-awka;
-awkb;
-awkc;
-awkd;
-awke;
-awkf;
-awkg;
-awkh;
-awki;
-awkj;
-awkk;
-awkl;
-awkm;
-awkn;
-awko;
-awkp;
-awkq;
-awkr;
-awks;
-awkt;
-awku;
-awkv;
-awkw;
-awkx;
-awky;
-awkz;
-awla;
-awlb;
-awlc;
-awld;
-awle;
-awlf;
-awlg;
-awlh;
-awli;
-awlj;
-awlk;
-awll;
-awlm;
-awln;
-awlo;
-awlp;
-awlq;
-awlr;
-awls;
-awlt;
-awlu;
-awlv;
-awlw;
-awlx;
-awly;
-awlz;
-awma;
-awmb;
-awmc;
-awmd;
-awme;
-awmf;
-awmg;
-awmh;
-awmi;
-awmj;
-awmk;
-awml;
-awmm;
-awmn;
-awmo;
-awmp;
-awmq;
-awmr;
-awms;
-awmt;
-awmu;
-awmv;
-awmw;
-awmx;
-awmy;
-awmz;
-awna;
-awnb;
-awnc;
-awnd;
-awne;
-awnf;
-awng;
-awnh;
-awni;
-awnj;
-awnk;
-awnl;
-awnm;
-awnn;
-awno;
-awnp;
-awnq;
-awnr;
-awns;
-awnt;
-awnu;
-awnv;
-awnw;
-awnx;
-awny;
-awnz;
-awoa;
-awob;
-awoc;
-awod;
-awoe;
-awof;
-awog;
-awoh;
-awoi;
-awoj;
-awok;
-awol;
-awom;
-awon;
-awoo;
-awop;
-awoq;
-awor;
-awos;
-awot;
-awou;
-awov;
-awow;
-awox;
-awoy;
-awoz;
-awpa;
-awpb;
-awpc;
-awpd;
-awpe;
-awpf;
-awpg;
-awph;
-awpi;
-awpj;
-awpk;
-awpl;
-awpm;
-awpn;
-awpo;
-awpp;
-awpq;
-awpr;
-awps;
-awpt;
-awpu;
-awpv;
-awpw;
-awpx;
-awpy;
-awpz;
-awqa;
-awqb;
-awqc;
-awqd;
-awqe;
-awqf;
-awqg;
-awqh;
-awqi;
-awqj;
-awqk;
-awql;
-awqm;
-awqn;
-awqo;
-awqp;
-awqq;
-awqr;
-awqs;
-awqt;
-awqu;
-awqv;
-awqw;
-awqx;
-awqy;
-awqz;
-awra;
-awrb;
-awrc;
-awrd;
-awre;
-awrf;
-awrg;
-awrh;
-awri;
-awrj;
-awrk;
-awrl;
-awrm;
-awrn;
-awro;
-awrp;
-awrq;
-awrr;
-awrs;
-awrt;
-awru;
-awrv;
-awrw;
-awrx;
-awry;
-awrz;
-awsa;
-awsb;
-awsc;
-awsd;
-awse;
-awsf;
-awsg;
-awsh;
-awsi;
-awsj;
-awsk;
-awsl;
-awsm;
-awsn;
-awso;
-awsp;
-awsq;
-awsr;
-awss;
-awst;
-awsu;
-awsv;
-awsw;
-awsx;
-awsy;
-awsz;
-awta;
-awtb;
-awtc;
-awtd;
-awte;
-awtf;
-awtg;
-awth;
-awti;
-awtj;
-awtk;
-awtl;
-awtm;
-awtn;
-awto;
-awtp;
-awtq;
-awtr;
-awts;
-awtt;
-awtu;
-awtv;
-awtw;
-awtx;
-awty;
-awtz;
-awua;
-awub;
-awuc;
-awud;
-awue;
-awuf;
-awug;
-awuh;
-awui;
-awuj;
-awuk;
-awul;
-awum;
-awun;
-awuo;
-awup;
-awuq;
-awur;
-awus;
-awut;
-awuu;
-awuv;
-awuw;
-awux;
-awuy;
-awuz;
-awva;
-awvb;
-awvc;
-awvd;
-awve;
-awvf;
-awvg;
-awvh;
-awvi;
-awvj;
-awvk;
-awvl;
-awvm;
-awvn;
-awvo;
-awvp;
-awvq;
-awvr;
-awvs;
-awvt;
-awvu;
-awvv;
-awvw;
-awvx;
-awvy;
-awvz;
-awwa;
-awwb;
-awwc;
-awwd;
-awwe;
-awwf;
-awwg;
-awwh;
-awwi;
-awwj;
-awwk;
-awwl;
-awwm;
-awwn;
-awwo;
-awwp;
-awwq;
-awwr;
-awws;
-awwt;
-awwu;
-awwv;
-awww;
-awwx;
-awwy;
-awwz;
-awxa;
-awxb;
-awxc;
-awxd;
-awxe;
-awxf;
-awxg;
-awxh;
-awxi;
-awxj;
-awxk;
-awxl;
-awxm;
-awxn;
-awxo;
-awxp;
-awxq;
-awxr;
-awxs;
-awxt;
-awxu;
-awxv;
-awxw;
-awxx;
-awxy;
-awxz;
-awya;
-awyb;
-awyc;
-awyd;
-awye;
-awyf;
-awyg;
-awyh;
-awyi;
-awyj;
-awyk;
-awyl;
-awym;
-awyn;
-awyo;
-awyp;
-awyq;
-awyr;
-awys;
-awyt;
-awyu;
-awyv;
-awyw;
-awyx;
-awyy;
-awyz;
-awza;
-awzb;
-awzc;
-awzd;
-awze;
-awzf;
-awzg;
-awzh;
-awzi;
-awzj;
-awzk;
-awzl;
-awzm;
-awzn;
-awzo;
-awzp;
-awzq;
-awzr;
-awzs;
-awzt;
-awzu;
-awzv;
-awzw;
-awzx;
-awzy;
-awzz;
-axaa;
-axab;
-axac;
-axad;
-axae;
-axaf;
-axag;
-axah;
-axai;
-axaj;
-axak;
-axal;
-axam;
-axan;
-axao;
-axap;
-axaq;
-axar;
-axas;
-axat;
-axau;
-axav;
-axaw;
-axax;
-axay;
-axaz;
-axba;
-axbb;
-axbc;
-axbd;
-axbe;
-axbf;
-axbg;
-axbh;
-axbi;
-axbj;
-axbk;
-axbl;
-axbm;
-axbn;
-axbo;
-axbp;
-axbq;
-axbr;
-axbs;
-axbt;
-axbu;
-axbv;
-axbw;
-axbx;
-axby;
-axbz;
-axca;
-axcb;
-axcc;
-axcd;
-axce;
-axcf;
-axcg;
-axch;
-axci;
-axcj;
-axck;
-axcl;
-axcm;
-axcn;
-axco;
-axcp;
-axcq;
-axcr;
-axcs;
-axct;
-axcu;
-axcv;
-axcw;
-axcx;
-axcy;
-axcz;
-axda;
-axdb;
-axdc;
-axdd;
-axde;
-axdf;
-axdg;
-axdh;
-axdi;
-axdj;
-axdk;
-axdl;
-axdm;
-axdn;
-axdo;
-axdp;
-axdq;
-axdr;
-axds;
-axdt;
-axdu;
-axdv;
-axdw;
-axdx;
-axdy;
-axdz;
-axea;
-axeb;
-axec;
-axed;
-axee;
-axef;
-axeg;
-axeh;
-axei;
-axej;
-axek;
-axel;
-axem;
-axen;
-axeo;
-axep;
-axeq;
-axer;
-axes;
-axet;
-axeu;
-axev;
-axew;
-axex;
-axey;
-axez;
-axfa;
-axfb;
-axfc;
-axfd;
-axfe;
-axff;
-axfg;
-axfh;
-axfi;
-axfj;
-axfk;
-axfl;
-axfm;
-axfn;
-axfo;
-axfp;
-axfq;
-axfr;
-axfs;
-axft;
-axfu;
-axfv;
-axfw;
-axfx;
-axfy;
-axfz;
-axga;
-axgb;
-axgc;
-axgd;
-axge;
-axgf;
-axgg;
-axgh;
-axgi;
-axgj;
-axgk;
-axgl;
-axgm;
-axgn;
-axgo;
-axgp;
-axgq;
-axgr;
-axgs;
-axgt;
-axgu;
-axgv;
-axgw;
-axgx;
-axgy;
-axgz;
-axha;
-axhb;
-axhc;
-axhd;
-axhe;
-axhf;
-axhg;
-axhh;
-axhi;
-axhj;
-axhk;
-axhl;
-axhm;
-axhn;
-axho;
-axhp;
-axhq;
-axhr;
-axhs;
-axht;
-axhu;
-axhv;
-axhw;
-axhx;
-axhy;
-axhz;
-axia;
-axib;
-axic;
-axid;
-axie;
-axif;
-axig;
-axih;
-axii;
-axij;
-axik;
-axil;
-axim;
-axin;
-axio;
-axip;
-axiq;
-axir;
-axis;
-axit;
-axiu;
-axiv;
-axiw;
-axix;
-axiy;
-axiz;
-axja;
-axjb;
-axjc;
-axjd;
-axje;
-axjf;
-axjg;
-axjh;
-axji;
-axjj;
-axjk;
-axjl;
-axjm;
-axjn;
-axjo;
-axjp;
-axjq;
-axjr;
-axjs;
-axjt;
-axju;
-axjv;
-axjw;
-axjx;
-axjy;
-axjz;
-axka;
-axkb;
-axkc;
-axkd;
-axke;
-axkf;
-axkg;
-axkh;
-axki;
-axkj;
-axkk;
-axkl;
-axkm;
-axkn;
-axko;
-axkp;
-axkq;
-axkr;
-axks;
-axkt;
-axku;
-axkv;
-axkw;
-axkx;
-axky;
-axkz;
-axla;
-axlb;
-axlc;
-axld;
-axle;
-axlf;
-axlg;
-axlh;
-axli;
-axlj;
-axlk;
-axll;
-axlm;
-axln;
-axlo;
-axlp;
-axlq;
-axlr;
-axls;
-axlt;
-axlu;
-axlv;
-axlw;
-axlx;
-axly;
-axlz;
-axma;
-axmb;
-axmc;
-axmd;
-axme;
-axmf;
-axmg;
-axmh;
-axmi;
-axmj;
-axmk;
-axml;
-axmm;
-axmn;
-axmo;
-axmp;
-axmq;
-axmr;
-axms;
-axmt;
-axmu;
-axmv;
-axmw;
-axmx;
-axmy;
-axmz;
-axna;
-axnb;
-axnc;
-axnd;
-axne;
-axnf;
-axng;
-axnh;
-axni;
-axnj;
-axnk;
-axnl;
-axnm;
-axnn;
-axno;
-axnp;
-axnq;
-axnr;
-axns;
-axnt;
-axnu;
-axnv;
-axnw;
-axnx;
-axny;
-axnz;
-axoa;
-axob;
-axoc;
-axod;
-axoe;
-axof;
-axog;
-axoh;
-axoi;
-axoj;
-axok;
-axol;
-axom;
-axon;
-axoo;
-axop;
-axoq;
-axor;
-axos;
-axot;
-axou;
-axov;
-axow;
-axox;
-axoy;
-axoz;
-axpa;
-axpb;
-axpc;
-axpd;
-axpe;
-axpf;
-axpg;
-axph;
-axpi;
-axpj;
-axpk;
-axpl;
-axpm;
-axpn;
-axpo;
-axpp;
-axpq;
-axpr;
-axps;
-axpt;
-axpu;
-axpv;
-axpw;
-axpx;
-axpy;
-axpz;
-axqa;
-axqb;
-axqc;
-axqd;
-axqe;
-axqf;
-axqg;
-axqh;
-axqi;
-axqj;
-axqk;
-axql;
-axqm;
-axqn;
-axqo;
-axqp;
-axqq;
-axqr;
-axqs;
-axqt;
-axqu;
-axqv;
-axqw;
-axqx;
-axqy;
-axqz;
-axra;
-axrb;
-axrc;
-axrd;
-axre;
-axrf;
-axrg;
-axrh;
-axri;
-axrj;
-axrk;
-axrl;
-axrm;
-axrn;
-axro;
-axrp;
-axrq;
-axrr;
-axrs;
-axrt;
-axru;
-axrv;
-axrw;
-axrx;
-axry;
-axrz;
-axsa;
-axsb;
-axsc;
-axsd;
-axse;
-axsf;
-axsg;
-axsh;
-axsi;
-axsj;
-axsk;
-axsl;
-axsm;
-axsn;
-axso;
-axsp;
-axsq;
-axsr;
-axss;
-axst;
-axsu;
-axsv;
-axsw;
-axsx;
-axsy;
-axsz;
-axta;
-axtb;
-axtc;
-axtd;
-axte;
-axtf;
-axtg;
-axth;
-axti;
-axtj;
-axtk;
-axtl;
-axtm;
-axtn;
-axto;
-axtp;
-axtq;
-axtr;
-axts;
-axtt;
-axtu;
-axtv;
-axtw;
-axtx;
-axty;
-axtz;
-axua;
-axub;
-axuc;
-axud;
-axue;
-axuf;
-axug;
-axuh;
-axui;
-axuj;
-axuk;
-axul;
-axum;
-axun;
-axuo;
-axup;
-axuq;
-axur;
-axus;
-axut;
-axuu;
-axuv;
-axuw;
-axux;
-axuy;
-axuz;
-axva;
-axvb;
-axvc;
-axvd;
-axve;
-axvf;
-axvg;
-axvh;
-axvi;
-axvj;
-axvk;
-axvl;
-axvm;
-axvn;
-axvo;
-axvp;
-axvq;
-axvr;
-axvs;
-axvt;
-axvu;
-axvv;
-axvw;
-axvx;
-axvy;
-axvz;
-axwa;
-axwb;
-axwc;
-axwd;
-axwe;
-axwf;
-axwg;
-axwh;
-axwi;
-axwj;
-axwk;
-axwl;
-axwm;
-axwn;
-axwo;
-axwp;
-axwq;
-axwr;
-axws;
-axwt;
-axwu;
-axwv;
-axww;
-axwx;
-axwy;
-axwz;
-axxa;
-axxb;
-axxc;
-axxd;
-axxe;
-axxf;
-axxg;
-axxh;
-axxi;
-axxj;
-axxk;
-axxl;
-axxm;
-axxn;
-axxo;
-axxp;
-axxq;
-axxr;
-axxs;
-axxt;
-axxu;
-axxv;
-axxw;
-axxx;
-axxy;
-axxz;
-axya;
-axyb;
-axyc;
-axyd;
-axye;
-axyf;
-axyg;
-axyh;
-axyi;
-axyj;
-axyk;
-axyl;
-axym;
-axyn;
-axyo;
-axyp;
-axyq;
-axyr;
-axys;
-axyt;
-axyu;
-axyv;
-axyw;
-axyx;
-axyy;
-axyz;
-axza;
-axzb;
-axzc;
-axzd;
-axze;
-axzf;
-axzg;
-axzh;
-axzi;
-axzj;
-axzk;
-axzl;
-axzm;
-axzn;
-axzo;
-axzp;
-axzq;
-axzr;
-axzs;
-axzt;
-axzu;
-axzv;
-axzw;
-axzx;
-axzy;
-axzz;
-ayaa;
-ayab;
-ayac;
-ayad;
-ayae;
-ayaf;
-ayag;
-ayah;
-ayai;
-ayaj;
-ayak;
-ayal;
-ayam;
-ayan;
-ayao;
-ayap;
-ayaq;
-ayar;
-ayas;
-ayat;
-ayau;
-ayav;
-ayaw;
-ayax;
-ayay;
-ayaz;
-ayba;
-aybb;
-aybc;
-aybd;
-aybe;
-aybf;
-aybg;
-aybh;
-aybi;
-aybj;
-aybk;
-aybl;
-aybm;
-aybn;
-aybo;
-aybp;
-aybq;
-aybr;
-aybs;
-aybt;
-aybu;
-aybv;
-aybw;
-aybx;
-ayby;
-aybz;
-ayca;
-aycb;
-aycc;
-aycd;
-ayce;
-aycf;
-aycg;
-aych;
-ayci;
-aycj;
-ayck;
-aycl;
-aycm;
-aycn;
-ayco;
-aycp;
-aycq;
-aycr;
-aycs;
-ayct;
-aycu;
-aycv;
-aycw;
-aycx;
-aycy;
-aycz;
-ayda;
-aydb;
-aydc;
-aydd;
-ayde;
-aydf;
-aydg;
-aydh;
-aydi;
-aydj;
-aydk;
-aydl;
-aydm;
-aydn;
-aydo;
-aydp;
-aydq;
-aydr;
-ayds;
-aydt;
-aydu;
-aydv;
-aydw;
-aydx;
-aydy;
-aydz;
-ayea;
-ayeb;
-ayec;
-ayed;
-ayee;
-ayef;
-ayeg;
-ayeh;
-ayei;
-ayej;
-ayek;
-ayel;
-ayem;
-ayen;
-ayeo;
-ayep;
-ayeq;
-ayer;
-ayes;
-ayet;
-ayeu;
-ayev;
-ayew;
-ayex;
-ayey;
-ayez;
-ayfa;
-ayfb;
-ayfc;
-ayfd;
-ayfe;
-ayff;
-ayfg;
-ayfh;
-ayfi;
-ayfj;
-ayfk;
-ayfl;
-ayfm;
-ayfn;
-ayfo;
-ayfp;
-ayfq;
-ayfr;
-ayfs;
-ayft;
-ayfu;
-ayfv;
-ayfw;
-ayfx;
-ayfy;
-ayfz;
-ayga;
-aygb;
-aygc;
-aygd;
-ayge;
-aygf;
-aygg;
-aygh;
-aygi;
-aygj;
-aygk;
-aygl;
-aygm;
-aygn;
-aygo;
-aygp;
-aygq;
-aygr;
-aygs;
-aygt;
-aygu;
-aygv;
-aygw;
-aygx;
-aygy;
-aygz;
-ayha;
-ayhb;
-ayhc;
-ayhd;
-ayhe;
-ayhf;
-ayhg;
-ayhh;
-ayhi;
-ayhj;
-ayhk;
-ayhl;
-ayhm;
-ayhn;
-ayho;
-ayhp;
-ayhq;
-ayhr;
-ayhs;
-ayht;
-ayhu;
-ayhv;
-ayhw;
-ayhx;
-ayhy;
-ayhz;
-ayia;
-ayib;
-ayic;
-ayid;
-ayie;
-ayif;
-ayig;
-ayih;
-ayii;
-ayij;
-ayik;
-ayil;
-ayim;
-ayin;
-ayio;
-ayip;
-ayiq;
-ayir;
-ayis;
-ayit;
-ayiu;
-ayiv;
-ayiw;
-ayix;
-ayiy;
-ayiz;
-ayja;
-ayjb;
-ayjc;
-ayjd;
-ayje;
-ayjf;
-ayjg;
-ayjh;
-ayji;
-ayjj;
-ayjk;
-ayjl;
-ayjm;
-ayjn;
-ayjo;
-ayjp;
-ayjq;
-ayjr;
-ayjs;
-ayjt;
-ayju;
-ayjv;
-ayjw;
-ayjx;
-ayjy;
-ayjz;
-ayka;
-aykb;
-aykc;
-aykd;
-ayke;
-aykf;
-aykg;
-aykh;
-ayki;
-aykj;
-aykk;
-aykl;
-aykm;
-aykn;
-ayko;
-aykp;
-aykq;
-aykr;
-ayks;
-aykt;
-ayku;
-aykv;
-aykw;
-aykx;
-ayky;
-aykz;
-ayla;
-aylb;
-aylc;
-ayld;
-ayle;
-aylf;
-aylg;
-aylh;
-ayli;
-aylj;
-aylk;
-ayll;
-aylm;
-ayln;
-aylo;
-aylp;
-aylq;
-aylr;
-ayls;
-aylt;
-aylu;
-aylv;
-aylw;
-aylx;
-ayly;
-aylz;
-ayma;
-aymb;
-aymc;
-aymd;
-ayme;
-aymf;
-aymg;
-aymh;
-aymi;
-aymj;
-aymk;
-ayml;
-aymm;
-aymn;
-aymo;
-aymp;
-aymq;
-aymr;
-ayms;
-aymt;
-aymu;
-aymv;
-aymw;
-aymx;
-aymy;
-aymz;
-ayna;
-aynb;
-aync;
-aynd;
-ayne;
-aynf;
-ayng;
-aynh;
-ayni;
-aynj;
-aynk;
-aynl;
-aynm;
-aynn;
-ayno;
-aynp;
-aynq;
-aynr;
-ayns;
-aynt;
-aynu;
-aynv;
-aynw;
-aynx;
-ayny;
-aynz;
-ayoa;
-ayob;
-ayoc;
-ayod;
-ayoe;
-ayof;
-ayog;
-ayoh;
-ayoi;
-ayoj;
-ayok;
-ayol;
-ayom;
-ayon;
-ayoo;
-ayop;
-ayoq;
-ayor;
-ayos;
-ayot;
-ayou;
-ayov;
-ayow;
-ayox;
-ayoy;
-ayoz;
-aypa;
-aypb;
-aypc;
-aypd;
-aype;
-aypf;
-aypg;
-ayph;
-aypi;
-aypj;
-aypk;
-aypl;
-aypm;
-aypn;
-aypo;
-aypp;
-aypq;
-aypr;
-ayps;
-aypt;
-aypu;
-aypv;
-aypw;
-aypx;
-aypy;
-aypz;
-ayqa;
-ayqb;
-ayqc;
-ayqd;
-ayqe;
-ayqf;
-ayqg;
-ayqh;
-ayqi;
-ayqj;
-ayqk;
-ayql;
-ayqm;
-ayqn;
-ayqo;
-ayqp;
-ayqq;
-ayqr;
-ayqs;
-ayqt;
-ayqu;
-ayqv;
-ayqw;
-ayqx;
-ayqy;
-ayqz;
-ayra;
-ayrb;
-ayrc;
-ayrd;
-ayre;
-ayrf;
-ayrg;
-ayrh;
-ayri;
-ayrj;
-ayrk;
-ayrl;
-ayrm;
-ayrn;
-ayro;
-ayrp;
-ayrq;
-ayrr;
-ayrs;
-ayrt;
-ayru;
-ayrv;
-ayrw;
-ayrx;
-ayry;
-ayrz;
-aysa;
-aysb;
-aysc;
-aysd;
-ayse;
-aysf;
-aysg;
-aysh;
-aysi;
-aysj;
-aysk;
-aysl;
-aysm;
-aysn;
-ayso;
-aysp;
-aysq;
-aysr;
-ayss;
-ayst;
-aysu;
-aysv;
-aysw;
-aysx;
-aysy;
-aysz;
-ayta;
-aytb;
-aytc;
-aytd;
-ayte;
-aytf;
-aytg;
-ayth;
-ayti;
-aytj;
-aytk;
-aytl;
-aytm;
-aytn;
-ayto;
-aytp;
-aytq;
-aytr;
-ayts;
-aytt;
-aytu;
-aytv;
-aytw;
-aytx;
-ayty;
-aytz;
-ayua;
-ayub;
-ayuc;
-ayud;
-ayue;
-ayuf;
-ayug;
-ayuh;
-ayui;
-ayuj;
-ayuk;
-ayul;
-ayum;
-ayun;
-ayuo;
-ayup;
-ayuq;
-ayur;
-ayus;
-ayut;
-ayuu;
-ayuv;
-ayuw;
-ayux;
-ayuy;
-ayuz;
-ayva;
-ayvb;
-ayvc;
-ayvd;
-ayve;
-ayvf;
-ayvg;
-ayvh;
-ayvi;
-ayvj;
-ayvk;
-ayvl;
-ayvm;
-ayvn;
-ayvo;
-ayvp;
-ayvq;
-ayvr;
-ayvs;
-ayvt;
-ayvu;
-ayvv;
-ayvw;
-ayvx;
-ayvy;
-ayvz;
-aywa;
-aywb;
-aywc;
-aywd;
-aywe;
-aywf;
-aywg;
-aywh;
-aywi;
-aywj;
-aywk;
-aywl;
-aywm;
-aywn;
-aywo;
-aywp;
-aywq;
-aywr;
-ayws;
-aywt;
-aywu;
-aywv;
-ayww;
-aywx;
-aywy;
-aywz;
-ayxa;
-ayxb;
-ayxc;
-ayxd;
-ayxe;
-ayxf;
-ayxg;
-ayxh;
-ayxi;
-ayxj;
-ayxk;
-ayxl;
-ayxm;
-ayxn;
-ayxo;
-ayxp;
-ayxq;
-ayxr;
-ayxs;
-ayxt;
-ayxu;
-ayxv;
-ayxw;
-ayxx;
-ayxy;
-ayxz;
-ayya;
-ayyb;
-ayyc;
-ayyd;
-ayye;
-ayyf;
-ayyg;
-ayyh;
-ayyi;
-ayyj;
-ayyk;
-ayyl;
-ayym;
-ayyn;
-ayyo;
-ayyp;
-ayyq;
-ayyr;
-ayys;
-ayyt;
-ayyu;
-ayyv;
-ayyw;
-ayyx;
-ayyy;
-ayyz;
-ayza;
-ayzb;
-ayzc;
-ayzd;
-ayze;
-ayzf;
-ayzg;
-ayzh;
-ayzi;
-ayzj;
-ayzk;
-ayzl;
-ayzm;
-ayzn;
-ayzo;
-ayzp;
-ayzq;
-ayzr;
-ayzs;
-ayzt;
-ayzu;
-ayzv;
-ayzw;
-ayzx;
-ayzy;
-ayzz;
-azaa;
-azab;
-azac;
-azad;
-azae;
-azaf;
-azag;
-azah;
-azai;
-azaj;
-azak;
-azal;
-azam;
-azan;
-azao;
-azap;
-azaq;
-azar;
-azas;
-azat;
-azau;
-azav;
-azaw;
-azax;
-azay;
-azaz;
-azba;
-azbb;
-azbc;
-azbd;
-azbe;
-azbf;
-azbg;
-azbh;
-azbi;
-azbj;
-azbk;
-azbl;
-azbm;
-azbn;
-azbo;
-azbp;
-azbq;
-azbr;
-azbs;
-azbt;
-azbu;
-azbv;
-azbw;
-azbx;
-azby;
-azbz;
-azca;
-azcb;
-azcc;
-azcd;
-azce;
-azcf;
-azcg;
-azch;
-azci;
-azcj;
-azck;
-azcl;
-azcm;
-azcn;
-azco;
-azcp;
-azcq;
-azcr;
-azcs;
-azct;
-azcu;
-azcv;
-azcw;
-azcx;
-azcy;
-azcz;
-azda;
-azdb;
-azdc;
-azdd;
-azde;
-azdf;
-azdg;
-azdh;
-azdi;
-azdj;
-azdk;
-azdl;
-azdm;
-azdn;
-azdo;
-azdp;
-azdq;
-azdr;
-azds;
-azdt;
-azdu;
-azdv;
-azdw;
-azdx;
-azdy;
-azdz;
-azea;
-azeb;
-azec;
-azed;
-azee;
-azef;
-azeg;
-azeh;
-azei;
-azej;
-azek;
-azel;
-azem;
-azen;
-azeo;
-azep;
-azeq;
-azer;
-azes;
-azet;
-azeu;
-azev;
-azew;
-azex;
-azey;
-azez;
-azfa;
-azfb;
-azfc;
-azfd;
-azfe;
-azff;
-azfg;
-azfh;
-azfi;
-azfj;
-azfk;
-azfl;
-azfm;
-azfn;
-azfo;
-azfp;
-azfq;
-azfr;
-azfs;
-azft;
-azfu;
-azfv;
-azfw;
-azfx;
-azfy;
-azfz;
-azga;
-azgb;
-azgc;
-azgd;
-azge;
-azgf;
-azgg;
-azgh;
-azgi;
-azgj;
-azgk;
-azgl;
-azgm;
-azgn;
-azgo;
-azgp;
-azgq;
-azgr;
-azgs;
-azgt;
-azgu;
-azgv;
-azgw;
-azgx;
-azgy;
-azgz;
-azha;
-azhb;
-azhc;
-azhd;
-azhe;
-azhf;
-azhg;
-azhh;
-azhi;
-azhj;
-azhk;
-azhl;
-azhm;
-azhn;
-azho;
-azhp;
-azhq;
-azhr;
-azhs;
-azht;
-azhu;
-azhv;
-azhw;
-azhx;
-azhy;
-azhz;
-azia;
-azib;
-azic;
-azid;
-azie;
-azif;
-azig;
-azih;
-azii;
-azij;
-azik;
-azil;
-azim;
-azin;
-azio;
-azip;
-aziq;
-azir;
-azis;
-azit;
-aziu;
-aziv;
-aziw;
-azix;
-aziy;
-aziz;
-azja;
-azjb;
-azjc;
-azjd;
-azje;
-azjf;
-azjg;
-azjh;
-azji;
-azjj;
-azjk;
-azjl;
-azjm;
-azjn;
-azjo;
-azjp;
-azjq;
-azjr;
-azjs;
-azjt;
-azju;
-azjv;
-azjw;
-azjx;
-azjy;
-azjz;
-azka;
-azkb;
-azkc;
-azkd;
-azke;
-azkf;
-azkg;
-azkh;
-azki;
-azkj;
-azkk;
-azkl;
-azkm;
-azkn;
-azko;
-azkp;
-azkq;
-azkr;
-azks;
-azkt;
-azku;
-azkv;
-azkw;
-azkx;
-azky;
-azkz;
-azla;
-azlb;
-azlc;
-azld;
-azle;
-azlf;
-azlg;
-azlh;
-azli;
-azlj;
-azlk;
-azll;
-azlm;
-azln;
-azlo;
-azlp;
-azlq;
-azlr;
-azls;
-azlt;
-azlu;
-azlv;
-azlw;
-azlx;
-azly;
-azlz;
-azma;
-azmb;
-azmc;
-azmd;
-azme;
-azmf;
-azmg;
-azmh;
-azmi;
-azmj;
-azmk;
-azml;
-azmm;
-azmn;
-azmo;
-azmp;
-azmq;
-azmr;
-azms;
-azmt;
-azmu;
-azmv;
-azmw;
-azmx;
-azmy;
-azmz;
-azna;
-aznb;
-aznc;
-aznd;
-azne;
-aznf;
-azng;
-aznh;
-azni;
-aznj;
-aznk;
-aznl;
-aznm;
-aznn;
-azno;
-aznp;
-aznq;
-aznr;
-azns;
-aznt;
-aznu;
-aznv;
-aznw;
-aznx;
-azny;
-aznz;
-azoa;
-azob;
-azoc;
-azod;
-azoe;
-azof;
-azog;
-azoh;
-azoi;
-azoj;
-azok;
-azol;
-azom;
-azon;
-azoo;
-azop;
-azoq;
-azor;
-azos;
-azot;
-azou;
-azov;
-azow;
-azox;
-azoy;
-azoz;
-azpa;
-azpb;
-azpc;
-azpd;
-azpe;
-azpf;
-azpg;
-azph;
-azpi;
-azpj;
-azpk;
-azpl;
-azpm;
-azpn;
-azpo;
-azpp;
-azpq;
-azpr;
-azps;
-azpt;
-azpu;
-azpv;
-azpw;
-azpx;
-azpy;
-azpz;
-azqa;
-azqb;
-azqc;
-azqd;
-azqe;
-azqf;
-azqg;
-azqh;
-azqi;
-azqj;
-azqk;
-azql;
-azqm;
-azqn;
-azqo;
-azqp;
-azqq;
-azqr;
-azqs;
-azqt;
-azqu;
-azqv;
-azqw;
-azqx;
-azqy;
-azqz;
-azra;
-azrb;
-azrc;
-azrd;
-azre;
-azrf;
-azrg;
-azrh;
-azri;
-azrj;
-azrk;
-azrl;
-azrm;
-azrn;
-azro;
-azrp;
-azrq;
-azrr;
-azrs;
-azrt;
-azru;
-azrv;
-azrw;
-azrx;
-azry;
-azrz;
-azsa;
-azsb;
-azsc;
-azsd;
-azse;
-azsf;
-azsg;
-azsh;
-azsi;
-azsj;
-azsk;
-azsl;
-azsm;
-azsn;
-azso;
-azsp;
-azsq;
-azsr;
-azss;
-azst;
-azsu;
-azsv;
-azsw;
-azsx;
-azsy;
-azsz;
-azta;
-aztb;
-aztc;
-aztd;
-azte;
-aztf;
-aztg;
-azth;
-azti;
-aztj;
-aztk;
-aztl;
-aztm;
-aztn;
-azto;
-aztp;
-aztq;
-aztr;
-azts;
-aztt;
-aztu;
-aztv;
-aztw;
-aztx;
-azty;
-aztz;
-azua;
-azub;
-azuc;
-azud;
-azue;
-azuf;
-azug;
-azuh;
-azui;
-azuj;
-azuk;
-azul;
-azum;
-azun;
-azuo;
-azup;
-azuq;
-azur;
-azus;
-azut;
-azuu;
-azuv;
-azuw;
-azux;
-azuy;
-azuz;
-azva;
-azvb;
-azvc;
-azvd;
-azve;
-azvf;
-azvg;
-azvh;
-azvi;
-azvj;
-azvk;
-azvl;
-azvm;
-azvn;
-azvo;
-azvp;
-azvq;
-azvr;
-azvs;
-azvt;
-azvu;
-azvv;
-azvw;
-azvx;
-azvy;
-azvz;
-azwa;
-azwb;
-azwc;
-azwd;
-azwe;
-azwf;
-azwg;
-azwh;
-azwi;
-azwj;
-azwk;
-azwl;
-azwm;
-azwn;
-azwo;
-azwp;
-azwq;
-azwr;
-azws;
-azwt;
-azwu;
-azwv;
-azww;
-azwx;
-azwy;
-azwz;
-azxa;
-azxb;
-azxc;
-azxd;
-azxe;
-azxf;
-azxg;
-azxh;
-azxi;
-azxj;
-azxk;
-azxl;
-azxm;
-azxn;
-azxo;
-azxp;
-azxq;
-azxr;
-azxs;
-azxt;
-azxu;
-azxv;
-azxw;
-azxx;
-azxy;
-azxz;
-azya;
-azyb;
-azyc;
-azyd;
-azye;
-azyf;
-azyg;
-azyh;
-azyi;
-azyj;
-azyk;
-azyl;
-azym;
-azyn;
-azyo;
-azyp;
-azyq;
-azyr;
-azys;
-azyt;
-azyu;
-azyv;
-azyw;
-azyx;
-azyy;
-azyz;
-azza;
-azzb;
-azzc;
-azzd;
-azze;
-azzf;
-azzg;
-azzh;
-azzi;
-azzj;
-azzk;
-azzl;
-azzm;
-azzn;
-azzo;
-azzp;
-azzq;
-azzr;
-azzs;
-azzt;
-azzu;
-azzv;
-azzw;
-azzx;
-azzy;
-azzz;
-baaa;
-baab;
-baac;
-baad;
-baae;
-baaf;
-baag;
-baah;
-baai;
-baaj;
-baak;
-baal;
-baam;
-baan;
-baao;
-baap;
-baaq;
-baar;
-baas;
-baat;
-baau;
-baav;
-baaw;
-baax;
-baay;
-baaz;
-baba;
-babb;
-babc;
-babd;
-babe;
-babf;
-babg;
-babh;
-babi;
-babj;
-babk;
-babl;
-babm;
-babn;
-babo;
-babp;
-babq;
-babr;
-babs;
-babt;
-babu;
-babv;
-babw;
-babx;
-baby;
-babz;
-baca;
-bacb;
-bacc;
-bacd;
-bace;
-bacf;
-bacg;
-bach;
-baci;
-bacj;
-back;
-bacl;
-bacm;
-bacn;
-baco;
-bacp;
-bacq;
-bacr;
-bacs;
-bact;
-bacu;
-bacv;
-bacw;
-bacx;
-bacy;
-bacz;
-bada;
-badb;
-badc;
-badd;
-bade;
-badf;
-badg;
-badh;
-badi;
-badj;
-badk;
-badl;
-badm;
-badn;
-bado;
-badp;
-badq;
-badr;
-bads;
-badt;
-badu;
-badv;
-badw;
-badx;
-bady;
-badz;
-baea;
-baeb;
-baec;
-baed;
-baee;
-baef;
-baeg;
-baeh;
-baei;
-baej;
-baek;
-bael;
-baem;
-baen;
-baeo;
-baep;
-baeq;
-baer;
-baes;
-baet;
-baeu;
-baev;
-baew;
-baex;
-baey;
-baez;
-bafa;
-bafb;
-bafc;
-bafd;
-bafe;
-baff;
-bafg;
-bafh;
-bafi;
-bafj;
-bafk;
-bafl;
-bafm;
-bafn;
-bafo;
-bafp;
-bafq;
-bafr;
-bafs;
-baft;
-bafu;
-bafv;
-bafw;
-bafx;
-bafy;
-bafz;
-baga;
-bagb;
-bagc;
-bagd;
-bage;
-bagf;
-bagg;
-bagh;
-bagi;
-bagj;
-bagk;
-bagl;
-bagm;
-bagn;
-bago;
-bagp;
-bagq;
-bagr;
-bags;
-bagt;
-bagu;
-bagv;
-bagw;
-bagx;
-bagy;
-bagz;
-baha;
-bahb;
-bahc;
-bahd;
-bahe;
-bahf;
-bahg;
-bahh;
-bahi;
-bahj;
-bahk;
-bahl;
-bahm;
-bahn;
-baho;
-bahp;
-bahq;
-bahr;
-bahs;
-baht;
-bahu;
-bahv;
-bahw;
-bahx;
-bahy;
-bahz;
-baia;
-baib;
-baic;
-baid;
-baie;
-baif;
-baig;
-baih;
-baii;
-baij;
-baik;
-bail;
-baim;
-bain;
-baio;
-baip;
-baiq;
-bair;
-bais;
-bait;
-baiu;
-baiv;
-baiw;
-baix;
-baiy;
-baiz;
-baja;
-bajb;
-bajc;
-bajd;
-baje;
-bajf;
-bajg;
-bajh;
-baji;
-bajj;
-bajk;
-bajl;
-bajm;
-bajn;
-bajo;
-bajp;
-bajq;
-bajr;
-bajs;
-bajt;
-baju;
-bajv;
-bajw;
-bajx;
-bajy;
-bajz;
-baka;
-bakb;
-bakc;
-bakd;
-bake;
-bakf;
-bakg;
-bakh;
-baki;
-bakj;
-bakk;
-bakl;
-bakm;
-bakn;
-bako;
-bakp;
-bakq;
-bakr;
-baks;
-bakt;
-baku;
-bakv;
-bakw;
-bakx;
-baky;
-bakz;
-bala;
-balb;
-balc;
-bald;
-bale;
-balf;
-balg;
-balh;
-bali;
-balj;
-balk;
-ball;
-balm;
-baln;
-balo;
-balp;
-balq;
-balr;
-bals;
-balt;
-balu;
-balv;
-balw;
-balx;
-baly;
-balz;
-bama;
-bamb;
-bamc;
-bamd;
-bame;
-bamf;
-bamg;
-bamh;
-bami;
-bamj;
-bamk;
-baml;
-bamm;
-bamn;
-bamo;
-bamp;
-bamq;
-bamr;
-bams;
-bamt;
-bamu;
-bamv;
-bamw;
-bamx;
-bamy;
-bamz;
-bana;
-banb;
-banc;
-band;
-bane;
-banf;
-bang;
-banh;
-bani;
-banj;
-bank;
-banl;
-banm;
-bann;
-bano;
-banp;
-banq;
-banr;
-bans;
-bant;
-banu;
-banv;
-banw;
-banx;
-bany;
-banz;
-baoa;
-baob;
-baoc;
-baod;
-baoe;
-baof;
-baog;
-baoh;
-baoi;
-baoj;
-baok;
-baol;
-baom;
-baon;
-baoo;
-baop;
-baoq;
-baor;
-baos;
-baot;
-baou;
-baov;
-baow;
-baox;
-baoy;
-baoz;
-bapa;
-bapb;
-bapc;
-bapd;
-bape;
-bapf;
-bapg;
-baph;
-bapi;
-bapj;
-bapk;
-bapl;
-bapm;
-bapn;
-bapo;
-bapp;
-bapq;
-bapr;
-baps;
-bapt;
-bapu;
-bapv;
-bapw;
-bapx;
-bapy;
-bapz;
-baqa;
-baqb;
-baqc;
-baqd;
-baqe;
-baqf;
-baqg;
-baqh;
-baqi;
-baqj;
-baqk;
-baql;
-baqm;
-baqn;
-baqo;
-baqp;
-baqq;
-baqr;
-baqs;
-baqt;
-baqu;
-baqv;
-baqw;
-baqx;
-baqy;
-baqz;
-bara;
-barb;
-barc;
-bard;
-bare;
-barf;
-barg;
-barh;
-bari;
-barj;
-bark;
-barl;
-barm;
-barn;
-baro;
-barp;
-barq;
-barr;
-bars;
-bart;
-baru;
-barv;
-barw;
-barx;
-bary;
-barz;
-basa;
-basb;
-basc;
-basd;
-base;
-basf;
-basg;
-bash;
-basi;
-basj;
-bask;
-basl;
-basm;
-basn;
-baso;
-basp;
-basq;
-basr;
-bass;
-bast;
-basu;
-basv;
-basw;
-basx;
-basy;
-basz;
-bata;
-batb;
-batc;
-batd;
-bate;
-batf;
-batg;
-bath;
-bati;
-batj;
-batk;
-batl;
-batm;
-batn;
-bato;
-batp;
-batq;
-batr;
-bats;
-batt;
-batu;
-batv;
-batw;
-batx;
-baty;
-batz;
-baua;
-baub;
-bauc;
-baud;
-baue;
-bauf;
-baug;
-bauh;
-baui;
-bauj;
-bauk;
-baul;
-baum;
-baun;
-bauo;
-baup;
-bauq;
-baur;
-baus;
-baut;
-bauu;
-bauv;
-bauw;
-baux;
-bauy;
-bauz;
-bava;
-bavb;
-bavc;
-bavd;
-bave;
-bavf;
-bavg;
-bavh;
-bavi;
-bavj;
-bavk;
-bavl;
-bavm;
-bavn;
-bavo;
-bavp;
-bavq;
-bavr;
-bavs;
-bavt;
-bavu;
-bavv;
-bavw;
-bavx;
-bavy;
-bavz;
-bawa;
-bawb;
-bawc;
-bawd;
-bawe;
-bawf;
-bawg;
-bawh;
-bawi;
-bawj;
-bawk;
-bawl;
-bawm;
-bawn;
-bawo;
-bawp;
-bawq;
-bawr;
-baws;
-bawt;
-bawu;
-bawv;
-baww;
-bawx;
-bawy;
-bawz;
-baxa;
-baxb;
-baxc;
-baxd;
-baxe;
-baxf;
-baxg;
-baxh;
-baxi;
-baxj;
-baxk;
-baxl;
-baxm;
-baxn;
-baxo;
-baxp;
-baxq;
-baxr;
-baxs;
-baxt;
-baxu;
-baxv;
-baxw;
-baxx;
-baxy;
-baxz;
-baya;
-bayb;
-bayc;
-bayd;
-baye;
-bayf;
-bayg;
-bayh;
-bayi;
-bayj;
-bayk;
-bayl;
-baym;
-bayn;
-bayo;
-bayp;
-bayq;
-bayr;
-bays;
-bayt;
-bayu;
-bayv;
-bayw;
-bayx;
-bayy;
-bayz;
-baza;
-bazb;
-bazc;
-bazd;
-baze;
-bazf;
-bazg;
-bazh;
-bazi;
-bazj;
-bazk;
-bazl;
-bazm;
-bazn;
-bazo;
-bazp;
-bazq;
-bazr;
-bazs;
-bazt;
-bazu;
-bazv;
-bazw;
-bazx;
-bazy;
-bazz;
-bbaa;
-bbab;
-bbac;
-bbad;
-bbae;
-bbaf;
-bbag;
-bbah;
-bbai;
-bbaj;
-bbak;
-bbal;
-bbam;
-bban;
-bbao;
-bbap;
-bbaq;
-bbar;
-bbas;
-bbat;
-bbau;
-bbav;
-bbaw;
-bbax;
-bbay;
-bbaz;
-bbba;
-bbbb
-|];
diff --git a/camlp4/test/fixtures/big-tab3.ml b/camlp4/test/fixtures/big-tab3.ml
deleted file mode 100644 (file)
index a597031..0000000
+++ /dev/null
@@ -1,20001 +0,0 @@
-[|
-aaaaa;
-aaaab;
-aaaac;
-aaaad;
-aaaae;
-aaaaf;
-aaaag;
-aaaah;
-aaaai;
-aaaaj;
-aaaak;
-aaaal;
-aaaam;
-aaaan;
-aaaao;
-aaaap;
-aaaaq;
-aaaar;
-aaaas;
-aaaat;
-aaaau;
-aaaav;
-aaaaw;
-aaaax;
-aaaay;
-aaaaz;
-aaaba;
-aaabb;
-aaabc;
-aaabd;
-aaabe;
-aaabf;
-aaabg;
-aaabh;
-aaabi;
-aaabj;
-aaabk;
-aaabl;
-aaabm;
-aaabn;
-aaabo;
-aaabp;
-aaabq;
-aaabr;
-aaabs;
-aaabt;
-aaabu;
-aaabv;
-aaabw;
-aaabx;
-aaaby;
-aaabz;
-aaaca;
-aaacb;
-aaacc;
-aaacd;
-aaace;
-aaacf;
-aaacg;
-aaach;
-aaaci;
-aaacj;
-aaack;
-aaacl;
-aaacm;
-aaacn;
-aaaco;
-aaacp;
-aaacq;
-aaacr;
-aaacs;
-aaact;
-aaacu;
-aaacv;
-aaacw;
-aaacx;
-aaacy;
-aaacz;
-aaada;
-aaadb;
-aaadc;
-aaadd;
-aaade;
-aaadf;
-aaadg;
-aaadh;
-aaadi;
-aaadj;
-aaadk;
-aaadl;
-aaadm;
-aaadn;
-aaado;
-aaadp;
-aaadq;
-aaadr;
-aaads;
-aaadt;
-aaadu;
-aaadv;
-aaadw;
-aaadx;
-aaady;
-aaadz;
-aaaea;
-aaaeb;
-aaaec;
-aaaed;
-aaaee;
-aaaef;
-aaaeg;
-aaaeh;
-aaaei;
-aaaej;
-aaaek;
-aaael;
-aaaem;
-aaaen;
-aaaeo;
-aaaep;
-aaaeq;
-aaaer;
-aaaes;
-aaaet;
-aaaeu;
-aaaev;
-aaaew;
-aaaex;
-aaaey;
-aaaez;
-aaafa;
-aaafb;
-aaafc;
-aaafd;
-aaafe;
-aaaff;
-aaafg;
-aaafh;
-aaafi;
-aaafj;
-aaafk;
-aaafl;
-aaafm;
-aaafn;
-aaafo;
-aaafp;
-aaafq;
-aaafr;
-aaafs;
-aaaft;
-aaafu;
-aaafv;
-aaafw;
-aaafx;
-aaafy;
-aaafz;
-aaaga;
-aaagb;
-aaagc;
-aaagd;
-aaage;
-aaagf;
-aaagg;
-aaagh;
-aaagi;
-aaagj;
-aaagk;
-aaagl;
-aaagm;
-aaagn;
-aaago;
-aaagp;
-aaagq;
-aaagr;
-aaags;
-aaagt;
-aaagu;
-aaagv;
-aaagw;
-aaagx;
-aaagy;
-aaagz;
-aaaha;
-aaahb;
-aaahc;
-aaahd;
-aaahe;
-aaahf;
-aaahg;
-aaahh;
-aaahi;
-aaahj;
-aaahk;
-aaahl;
-aaahm;
-aaahn;
-aaaho;
-aaahp;
-aaahq;
-aaahr;
-aaahs;
-aaaht;
-aaahu;
-aaahv;
-aaahw;
-aaahx;
-aaahy;
-aaahz;
-aaaia;
-aaaib;
-aaaic;
-aaaid;
-aaaie;
-aaaif;
-aaaig;
-aaaih;
-aaaii;
-aaaij;
-aaaik;
-aaail;
-aaaim;
-aaain;
-aaaio;
-aaaip;
-aaaiq;
-aaair;
-aaais;
-aaait;
-aaaiu;
-aaaiv;
-aaaiw;
-aaaix;
-aaaiy;
-aaaiz;
-aaaja;
-aaajb;
-aaajc;
-aaajd;
-aaaje;
-aaajf;
-aaajg;
-aaajh;
-aaaji;
-aaajj;
-aaajk;
-aaajl;
-aaajm;
-aaajn;
-aaajo;
-aaajp;
-aaajq;
-aaajr;
-aaajs;
-aaajt;
-aaaju;
-aaajv;
-aaajw;
-aaajx;
-aaajy;
-aaajz;
-aaaka;
-aaakb;
-aaakc;
-aaakd;
-aaake;
-aaakf;
-aaakg;
-aaakh;
-aaaki;
-aaakj;
-aaakk;
-aaakl;
-aaakm;
-aaakn;
-aaako;
-aaakp;
-aaakq;
-aaakr;
-aaaks;
-aaakt;
-aaaku;
-aaakv;
-aaakw;
-aaakx;
-aaaky;
-aaakz;
-aaala;
-aaalb;
-aaalc;
-aaald;
-aaale;
-aaalf;
-aaalg;
-aaalh;
-aaali;
-aaalj;
-aaalk;
-aaall;
-aaalm;
-aaaln;
-aaalo;
-aaalp;
-aaalq;
-aaalr;
-aaals;
-aaalt;
-aaalu;
-aaalv;
-aaalw;
-aaalx;
-aaaly;
-aaalz;
-aaama;
-aaamb;
-aaamc;
-aaamd;
-aaame;
-aaamf;
-aaamg;
-aaamh;
-aaami;
-aaamj;
-aaamk;
-aaaml;
-aaamm;
-aaamn;
-aaamo;
-aaamp;
-aaamq;
-aaamr;
-aaams;
-aaamt;
-aaamu;
-aaamv;
-aaamw;
-aaamx;
-aaamy;
-aaamz;
-aaana;
-aaanb;
-aaanc;
-aaand;
-aaane;
-aaanf;
-aaang;
-aaanh;
-aaani;
-aaanj;
-aaank;
-aaanl;
-aaanm;
-aaann;
-aaano;
-aaanp;
-aaanq;
-aaanr;
-aaans;
-aaant;
-aaanu;
-aaanv;
-aaanw;
-aaanx;
-aaany;
-aaanz;
-aaaoa;
-aaaob;
-aaaoc;
-aaaod;
-aaaoe;
-aaaof;
-aaaog;
-aaaoh;
-aaaoi;
-aaaoj;
-aaaok;
-aaaol;
-aaaom;
-aaaon;
-aaaoo;
-aaaop;
-aaaoq;
-aaaor;
-aaaos;
-aaaot;
-aaaou;
-aaaov;
-aaaow;
-aaaox;
-aaaoy;
-aaaoz;
-aaapa;
-aaapb;
-aaapc;
-aaapd;
-aaape;
-aaapf;
-aaapg;
-aaaph;
-aaapi;
-aaapj;
-aaapk;
-aaapl;
-aaapm;
-aaapn;
-aaapo;
-aaapp;
-aaapq;
-aaapr;
-aaaps;
-aaapt;
-aaapu;
-aaapv;
-aaapw;
-aaapx;
-aaapy;
-aaapz;
-aaaqa;
-aaaqb;
-aaaqc;
-aaaqd;
-aaaqe;
-aaaqf;
-aaaqg;
-aaaqh;
-aaaqi;
-aaaqj;
-aaaqk;
-aaaql;
-aaaqm;
-aaaqn;
-aaaqo;
-aaaqp;
-aaaqq;
-aaaqr;
-aaaqs;
-aaaqt;
-aaaqu;
-aaaqv;
-aaaqw;
-aaaqx;
-aaaqy;
-aaaqz;
-aaara;
-aaarb;
-aaarc;
-aaard;
-aaare;
-aaarf;
-aaarg;
-aaarh;
-aaari;
-aaarj;
-aaark;
-aaarl;
-aaarm;
-aaarn;
-aaaro;
-aaarp;
-aaarq;
-aaarr;
-aaars;
-aaart;
-aaaru;
-aaarv;
-aaarw;
-aaarx;
-aaary;
-aaarz;
-aaasa;
-aaasb;
-aaasc;
-aaasd;
-aaase;
-aaasf;
-aaasg;
-aaash;
-aaasi;
-aaasj;
-aaask;
-aaasl;
-aaasm;
-aaasn;
-aaaso;
-aaasp;
-aaasq;
-aaasr;
-aaass;
-aaast;
-aaasu;
-aaasv;
-aaasw;
-aaasx;
-aaasy;
-aaasz;
-aaata;
-aaatb;
-aaatc;
-aaatd;
-aaate;
-aaatf;
-aaatg;
-aaath;
-aaati;
-aaatj;
-aaatk;
-aaatl;
-aaatm;
-aaatn;
-aaato;
-aaatp;
-aaatq;
-aaatr;
-aaats;
-aaatt;
-aaatu;
-aaatv;
-aaatw;
-aaatx;
-aaaty;
-aaatz;
-aaaua;
-aaaub;
-aaauc;
-aaaud;
-aaaue;
-aaauf;
-aaaug;
-aaauh;
-aaaui;
-aaauj;
-aaauk;
-aaaul;
-aaaum;
-aaaun;
-aaauo;
-aaaup;
-aaauq;
-aaaur;
-aaaus;
-aaaut;
-aaauu;
-aaauv;
-aaauw;
-aaaux;
-aaauy;
-aaauz;
-aaava;
-aaavb;
-aaavc;
-aaavd;
-aaave;
-aaavf;
-aaavg;
-aaavh;
-aaavi;
-aaavj;
-aaavk;
-aaavl;
-aaavm;
-aaavn;
-aaavo;
-aaavp;
-aaavq;
-aaavr;
-aaavs;
-aaavt;
-aaavu;
-aaavv;
-aaavw;
-aaavx;
-aaavy;
-aaavz;
-aaawa;
-aaawb;
-aaawc;
-aaawd;
-aaawe;
-aaawf;
-aaawg;
-aaawh;
-aaawi;
-aaawj;
-aaawk;
-aaawl;
-aaawm;
-aaawn;
-aaawo;
-aaawp;
-aaawq;
-aaawr;
-aaaws;
-aaawt;
-aaawu;
-aaawv;
-aaaww;
-aaawx;
-aaawy;
-aaawz;
-aaaxa;
-aaaxb;
-aaaxc;
-aaaxd;
-aaaxe;
-aaaxf;
-aaaxg;
-aaaxh;
-aaaxi;
-aaaxj;
-aaaxk;
-aaaxl;
-aaaxm;
-aaaxn;
-aaaxo;
-aaaxp;
-aaaxq;
-aaaxr;
-aaaxs;
-aaaxt;
-aaaxu;
-aaaxv;
-aaaxw;
-aaaxx;
-aaaxy;
-aaaxz;
-aaaya;
-aaayb;
-aaayc;
-aaayd;
-aaaye;
-aaayf;
-aaayg;
-aaayh;
-aaayi;
-aaayj;
-aaayk;
-aaayl;
-aaaym;
-aaayn;
-aaayo;
-aaayp;
-aaayq;
-aaayr;
-aaays;
-aaayt;
-aaayu;
-aaayv;
-aaayw;
-aaayx;
-aaayy;
-aaayz;
-aaaza;
-aaazb;
-aaazc;
-aaazd;
-aaaze;
-aaazf;
-aaazg;
-aaazh;
-aaazi;
-aaazj;
-aaazk;
-aaazl;
-aaazm;
-aaazn;
-aaazo;
-aaazp;
-aaazq;
-aaazr;
-aaazs;
-aaazt;
-aaazu;
-aaazv;
-aaazw;
-aaazx;
-aaazy;
-aaazz;
-aabaa;
-aabab;
-aabac;
-aabad;
-aabae;
-aabaf;
-aabag;
-aabah;
-aabai;
-aabaj;
-aabak;
-aabal;
-aabam;
-aaban;
-aabao;
-aabap;
-aabaq;
-aabar;
-aabas;
-aabat;
-aabau;
-aabav;
-aabaw;
-aabax;
-aabay;
-aabaz;
-aabba;
-aabbb;
-aabbc;
-aabbd;
-aabbe;
-aabbf;
-aabbg;
-aabbh;
-aabbi;
-aabbj;
-aabbk;
-aabbl;
-aabbm;
-aabbn;
-aabbo;
-aabbp;
-aabbq;
-aabbr;
-aabbs;
-aabbt;
-aabbu;
-aabbv;
-aabbw;
-aabbx;
-aabby;
-aabbz;
-aabca;
-aabcb;
-aabcc;
-aabcd;
-aabce;
-aabcf;
-aabcg;
-aabch;
-aabci;
-aabcj;
-aabck;
-aabcl;
-aabcm;
-aabcn;
-aabco;
-aabcp;
-aabcq;
-aabcr;
-aabcs;
-aabct;
-aabcu;
-aabcv;
-aabcw;
-aabcx;
-aabcy;
-aabcz;
-aabda;
-aabdb;
-aabdc;
-aabdd;
-aabde;
-aabdf;
-aabdg;
-aabdh;
-aabdi;
-aabdj;
-aabdk;
-aabdl;
-aabdm;
-aabdn;
-aabdo;
-aabdp;
-aabdq;
-aabdr;
-aabds;
-aabdt;
-aabdu;
-aabdv;
-aabdw;
-aabdx;
-aabdy;
-aabdz;
-aabea;
-aabeb;
-aabec;
-aabed;
-aabee;
-aabef;
-aabeg;
-aabeh;
-aabei;
-aabej;
-aabek;
-aabel;
-aabem;
-aaben;
-aabeo;
-aabep;
-aabeq;
-aaber;
-aabes;
-aabet;
-aabeu;
-aabev;
-aabew;
-aabex;
-aabey;
-aabez;
-aabfa;
-aabfb;
-aabfc;
-aabfd;
-aabfe;
-aabff;
-aabfg;
-aabfh;
-aabfi;
-aabfj;
-aabfk;
-aabfl;
-aabfm;
-aabfn;
-aabfo;
-aabfp;
-aabfq;
-aabfr;
-aabfs;
-aabft;
-aabfu;
-aabfv;
-aabfw;
-aabfx;
-aabfy;
-aabfz;
-aabga;
-aabgb;
-aabgc;
-aabgd;
-aabge;
-aabgf;
-aabgg;
-aabgh;
-aabgi;
-aabgj;
-aabgk;
-aabgl;
-aabgm;
-aabgn;
-aabgo;
-aabgp;
-aabgq;
-aabgr;
-aabgs;
-aabgt;
-aabgu;
-aabgv;
-aabgw;
-aabgx;
-aabgy;
-aabgz;
-aabha;
-aabhb;
-aabhc;
-aabhd;
-aabhe;
-aabhf;
-aabhg;
-aabhh;
-aabhi;
-aabhj;
-aabhk;
-aabhl;
-aabhm;
-aabhn;
-aabho;
-aabhp;
-aabhq;
-aabhr;
-aabhs;
-aabht;
-aabhu;
-aabhv;
-aabhw;
-aabhx;
-aabhy;
-aabhz;
-aabia;
-aabib;
-aabic;
-aabid;
-aabie;
-aabif;
-aabig;
-aabih;
-aabii;
-aabij;
-aabik;
-aabil;
-aabim;
-aabin;
-aabio;
-aabip;
-aabiq;
-aabir;
-aabis;
-aabit;
-aabiu;
-aabiv;
-aabiw;
-aabix;
-aabiy;
-aabiz;
-aabja;
-aabjb;
-aabjc;
-aabjd;
-aabje;
-aabjf;
-aabjg;
-aabjh;
-aabji;
-aabjj;
-aabjk;
-aabjl;
-aabjm;
-aabjn;
-aabjo;
-aabjp;
-aabjq;
-aabjr;
-aabjs;
-aabjt;
-aabju;
-aabjv;
-aabjw;
-aabjx;
-aabjy;
-aabjz;
-aabka;
-aabkb;
-aabkc;
-aabkd;
-aabke;
-aabkf;
-aabkg;
-aabkh;
-aabki;
-aabkj;
-aabkk;
-aabkl;
-aabkm;
-aabkn;
-aabko;
-aabkp;
-aabkq;
-aabkr;
-aabks;
-aabkt;
-aabku;
-aabkv;
-aabkw;
-aabkx;
-aabky;
-aabkz;
-aabla;
-aablb;
-aablc;
-aabld;
-aable;
-aablf;
-aablg;
-aablh;
-aabli;
-aablj;
-aablk;
-aabll;
-aablm;
-aabln;
-aablo;
-aablp;
-aablq;
-aablr;
-aabls;
-aablt;
-aablu;
-aablv;
-aablw;
-aablx;
-aably;
-aablz;
-aabma;
-aabmb;
-aabmc;
-aabmd;
-aabme;
-aabmf;
-aabmg;
-aabmh;
-aabmi;
-aabmj;
-aabmk;
-aabml;
-aabmm;
-aabmn;
-aabmo;
-aabmp;
-aabmq;
-aabmr;
-aabms;
-aabmt;
-aabmu;
-aabmv;
-aabmw;
-aabmx;
-aabmy;
-aabmz;
-aabna;
-aabnb;
-aabnc;
-aabnd;
-aabne;
-aabnf;
-aabng;
-aabnh;
-aabni;
-aabnj;
-aabnk;
-aabnl;
-aabnm;
-aabnn;
-aabno;
-aabnp;
-aabnq;
-aabnr;
-aabns;
-aabnt;
-aabnu;
-aabnv;
-aabnw;
-aabnx;
-aabny;
-aabnz;
-aaboa;
-aabob;
-aaboc;
-aabod;
-aaboe;
-aabof;
-aabog;
-aaboh;
-aaboi;
-aaboj;
-aabok;
-aabol;
-aabom;
-aabon;
-aaboo;
-aabop;
-aaboq;
-aabor;
-aabos;
-aabot;
-aabou;
-aabov;
-aabow;
-aabox;
-aaboy;
-aaboz;
-aabpa;
-aabpb;
-aabpc;
-aabpd;
-aabpe;
-aabpf;
-aabpg;
-aabph;
-aabpi;
-aabpj;
-aabpk;
-aabpl;
-aabpm;
-aabpn;
-aabpo;
-aabpp;
-aabpq;
-aabpr;
-aabps;
-aabpt;
-aabpu;
-aabpv;
-aabpw;
-aabpx;
-aabpy;
-aabpz;
-aabqa;
-aabqb;
-aabqc;
-aabqd;
-aabqe;
-aabqf;
-aabqg;
-aabqh;
-aabqi;
-aabqj;
-aabqk;
-aabql;
-aabqm;
-aabqn;
-aabqo;
-aabqp;
-aabqq;
-aabqr;
-aabqs;
-aabqt;
-aabqu;
-aabqv;
-aabqw;
-aabqx;
-aabqy;
-aabqz;
-aabra;
-aabrb;
-aabrc;
-aabrd;
-aabre;
-aabrf;
-aabrg;
-aabrh;
-aabri;
-aabrj;
-aabrk;
-aabrl;
-aabrm;
-aabrn;
-aabro;
-aabrp;
-aabrq;
-aabrr;
-aabrs;
-aabrt;
-aabru;
-aabrv;
-aabrw;
-aabrx;
-aabry;
-aabrz;
-aabsa;
-aabsb;
-aabsc;
-aabsd;
-aabse;
-aabsf;
-aabsg;
-aabsh;
-aabsi;
-aabsj;
-aabsk;
-aabsl;
-aabsm;
-aabsn;
-aabso;
-aabsp;
-aabsq;
-aabsr;
-aabss;
-aabst;
-aabsu;
-aabsv;
-aabsw;
-aabsx;
-aabsy;
-aabsz;
-aabta;
-aabtb;
-aabtc;
-aabtd;
-aabte;
-aabtf;
-aabtg;
-aabth;
-aabti;
-aabtj;
-aabtk;
-aabtl;
-aabtm;
-aabtn;
-aabto;
-aabtp;
-aabtq;
-aabtr;
-aabts;
-aabtt;
-aabtu;
-aabtv;
-aabtw;
-aabtx;
-aabty;
-aabtz;
-aabua;
-aabub;
-aabuc;
-aabud;
-aabue;
-aabuf;
-aabug;
-aabuh;
-aabui;
-aabuj;
-aabuk;
-aabul;
-aabum;
-aabun;
-aabuo;
-aabup;
-aabuq;
-aabur;
-aabus;
-aabut;
-aabuu;
-aabuv;
-aabuw;
-aabux;
-aabuy;
-aabuz;
-aabva;
-aabvb;
-aabvc;
-aabvd;
-aabve;
-aabvf;
-aabvg;
-aabvh;
-aabvi;
-aabvj;
-aabvk;
-aabvl;
-aabvm;
-aabvn;
-aabvo;
-aabvp;
-aabvq;
-aabvr;
-aabvs;
-aabvt;
-aabvu;
-aabvv;
-aabvw;
-aabvx;
-aabvy;
-aabvz;
-aabwa;
-aabwb;
-aabwc;
-aabwd;
-aabwe;
-aabwf;
-aabwg;
-aabwh;
-aabwi;
-aabwj;
-aabwk;
-aabwl;
-aabwm;
-aabwn;
-aabwo;
-aabwp;
-aabwq;
-aabwr;
-aabws;
-aabwt;
-aabwu;
-aabwv;
-aabww;
-aabwx;
-aabwy;
-aabwz;
-aabxa;
-aabxb;
-aabxc;
-aabxd;
-aabxe;
-aabxf;
-aabxg;
-aabxh;
-aabxi;
-aabxj;
-aabxk;
-aabxl;
-aabxm;
-aabxn;
-aabxo;
-aabxp;
-aabxq;
-aabxr;
-aabxs;
-aabxt;
-aabxu;
-aabxv;
-aabxw;
-aabxx;
-aabxy;
-aabxz;
-aabya;
-aabyb;
-aabyc;
-aabyd;
-aabye;
-aabyf;
-aabyg;
-aabyh;
-aabyi;
-aabyj;
-aabyk;
-aabyl;
-aabym;
-aabyn;
-aabyo;
-aabyp;
-aabyq;
-aabyr;
-aabys;
-aabyt;
-aabyu;
-aabyv;
-aabyw;
-aabyx;
-aabyy;
-aabyz;
-aabza;
-aabzb;
-aabzc;
-aabzd;
-aabze;
-aabzf;
-aabzg;
-aabzh;
-aabzi;
-aabzj;
-aabzk;
-aabzl;
-aabzm;
-aabzn;
-aabzo;
-aabzp;
-aabzq;
-aabzr;
-aabzs;
-aabzt;
-aabzu;
-aabzv;
-aabzw;
-aabzx;
-aabzy;
-aabzz;
-aacaa;
-aacab;
-aacac;
-aacad;
-aacae;
-aacaf;
-aacag;
-aacah;
-aacai;
-aacaj;
-aacak;
-aacal;
-aacam;
-aacan;
-aacao;
-aacap;
-aacaq;
-aacar;
-aacas;
-aacat;
-aacau;
-aacav;
-aacaw;
-aacax;
-aacay;
-aacaz;
-aacba;
-aacbb;
-aacbc;
-aacbd;
-aacbe;
-aacbf;
-aacbg;
-aacbh;
-aacbi;
-aacbj;
-aacbk;
-aacbl;
-aacbm;
-aacbn;
-aacbo;
-aacbp;
-aacbq;
-aacbr;
-aacbs;
-aacbt;
-aacbu;
-aacbv;
-aacbw;
-aacbx;
-aacby;
-aacbz;
-aacca;
-aaccb;
-aaccc;
-aaccd;
-aacce;
-aaccf;
-aaccg;
-aacch;
-aacci;
-aaccj;
-aacck;
-aaccl;
-aaccm;
-aaccn;
-aacco;
-aaccp;
-aaccq;
-aaccr;
-aaccs;
-aacct;
-aaccu;
-aaccv;
-aaccw;
-aaccx;
-aaccy;
-aaccz;
-aacda;
-aacdb;
-aacdc;
-aacdd;
-aacde;
-aacdf;
-aacdg;
-aacdh;
-aacdi;
-aacdj;
-aacdk;
-aacdl;
-aacdm;
-aacdn;
-aacdo;
-aacdp;
-aacdq;
-aacdr;
-aacds;
-aacdt;
-aacdu;
-aacdv;
-aacdw;
-aacdx;
-aacdy;
-aacdz;
-aacea;
-aaceb;
-aacec;
-aaced;
-aacee;
-aacef;
-aaceg;
-aaceh;
-aacei;
-aacej;
-aacek;
-aacel;
-aacem;
-aacen;
-aaceo;
-aacep;
-aaceq;
-aacer;
-aaces;
-aacet;
-aaceu;
-aacev;
-aacew;
-aacex;
-aacey;
-aacez;
-aacfa;
-aacfb;
-aacfc;
-aacfd;
-aacfe;
-aacff;
-aacfg;
-aacfh;
-aacfi;
-aacfj;
-aacfk;
-aacfl;
-aacfm;
-aacfn;
-aacfo;
-aacfp;
-aacfq;
-aacfr;
-aacfs;
-aacft;
-aacfu;
-aacfv;
-aacfw;
-aacfx;
-aacfy;
-aacfz;
-aacga;
-aacgb;
-aacgc;
-aacgd;
-aacge;
-aacgf;
-aacgg;
-aacgh;
-aacgi;
-aacgj;
-aacgk;
-aacgl;
-aacgm;
-aacgn;
-aacgo;
-aacgp;
-aacgq;
-aacgr;
-aacgs;
-aacgt;
-aacgu;
-aacgv;
-aacgw;
-aacgx;
-aacgy;
-aacgz;
-aacha;
-aachb;
-aachc;
-aachd;
-aache;
-aachf;
-aachg;
-aachh;
-aachi;
-aachj;
-aachk;
-aachl;
-aachm;
-aachn;
-aacho;
-aachp;
-aachq;
-aachr;
-aachs;
-aacht;
-aachu;
-aachv;
-aachw;
-aachx;
-aachy;
-aachz;
-aacia;
-aacib;
-aacic;
-aacid;
-aacie;
-aacif;
-aacig;
-aacih;
-aacii;
-aacij;
-aacik;
-aacil;
-aacim;
-aacin;
-aacio;
-aacip;
-aaciq;
-aacir;
-aacis;
-aacit;
-aaciu;
-aaciv;
-aaciw;
-aacix;
-aaciy;
-aaciz;
-aacja;
-aacjb;
-aacjc;
-aacjd;
-aacje;
-aacjf;
-aacjg;
-aacjh;
-aacji;
-aacjj;
-aacjk;
-aacjl;
-aacjm;
-aacjn;
-aacjo;
-aacjp;
-aacjq;
-aacjr;
-aacjs;
-aacjt;
-aacju;
-aacjv;
-aacjw;
-aacjx;
-aacjy;
-aacjz;
-aacka;
-aackb;
-aackc;
-aackd;
-aacke;
-aackf;
-aackg;
-aackh;
-aacki;
-aackj;
-aackk;
-aackl;
-aackm;
-aackn;
-aacko;
-aackp;
-aackq;
-aackr;
-aacks;
-aackt;
-aacku;
-aackv;
-aackw;
-aackx;
-aacky;
-aackz;
-aacla;
-aaclb;
-aaclc;
-aacld;
-aacle;
-aaclf;
-aaclg;
-aaclh;
-aacli;
-aaclj;
-aaclk;
-aacll;
-aaclm;
-aacln;
-aaclo;
-aaclp;
-aaclq;
-aaclr;
-aacls;
-aaclt;
-aaclu;
-aaclv;
-aaclw;
-aaclx;
-aacly;
-aaclz;
-aacma;
-aacmb;
-aacmc;
-aacmd;
-aacme;
-aacmf;
-aacmg;
-aacmh;
-aacmi;
-aacmj;
-aacmk;
-aacml;
-aacmm;
-aacmn;
-aacmo;
-aacmp;
-aacmq;
-aacmr;
-aacms;
-aacmt;
-aacmu;
-aacmv;
-aacmw;
-aacmx;
-aacmy;
-aacmz;
-aacna;
-aacnb;
-aacnc;
-aacnd;
-aacne;
-aacnf;
-aacng;
-aacnh;
-aacni;
-aacnj;
-aacnk;
-aacnl;
-aacnm;
-aacnn;
-aacno;
-aacnp;
-aacnq;
-aacnr;
-aacns;
-aacnt;
-aacnu;
-aacnv;
-aacnw;
-aacnx;
-aacny;
-aacnz;
-aacoa;
-aacob;
-aacoc;
-aacod;
-aacoe;
-aacof;
-aacog;
-aacoh;
-aacoi;
-aacoj;
-aacok;
-aacol;
-aacom;
-aacon;
-aacoo;
-aacop;
-aacoq;
-aacor;
-aacos;
-aacot;
-aacou;
-aacov;
-aacow;
-aacox;
-aacoy;
-aacoz;
-aacpa;
-aacpb;
-aacpc;
-aacpd;
-aacpe;
-aacpf;
-aacpg;
-aacph;
-aacpi;
-aacpj;
-aacpk;
-aacpl;
-aacpm;
-aacpn;
-aacpo;
-aacpp;
-aacpq;
-aacpr;
-aacps;
-aacpt;
-aacpu;
-aacpv;
-aacpw;
-aacpx;
-aacpy;
-aacpz;
-aacqa;
-aacqb;
-aacqc;
-aacqd;
-aacqe;
-aacqf;
-aacqg;
-aacqh;
-aacqi;
-aacqj;
-aacqk;
-aacql;
-aacqm;
-aacqn;
-aacqo;
-aacqp;
-aacqq;
-aacqr;
-aacqs;
-aacqt;
-aacqu;
-aacqv;
-aacqw;
-aacqx;
-aacqy;
-aacqz;
-aacra;
-aacrb;
-aacrc;
-aacrd;
-aacre;
-aacrf;
-aacrg;
-aacrh;
-aacri;
-aacrj;
-aacrk;
-aacrl;
-aacrm;
-aacrn;
-aacro;
-aacrp;
-aacrq;
-aacrr;
-aacrs;
-aacrt;
-aacru;
-aacrv;
-aacrw;
-aacrx;
-aacry;
-aacrz;
-aacsa;
-aacsb;
-aacsc;
-aacsd;
-aacse;
-aacsf;
-aacsg;
-aacsh;
-aacsi;
-aacsj;
-aacsk;
-aacsl;
-aacsm;
-aacsn;
-aacso;
-aacsp;
-aacsq;
-aacsr;
-aacss;
-aacst;
-aacsu;
-aacsv;
-aacsw;
-aacsx;
-aacsy;
-aacsz;
-aacta;
-aactb;
-aactc;
-aactd;
-aacte;
-aactf;
-aactg;
-aacth;
-aacti;
-aactj;
-aactk;
-aactl;
-aactm;
-aactn;
-aacto;
-aactp;
-aactq;
-aactr;
-aacts;
-aactt;
-aactu;
-aactv;
-aactw;
-aactx;
-aacty;
-aactz;
-aacua;
-aacub;
-aacuc;
-aacud;
-aacue;
-aacuf;
-aacug;
-aacuh;
-aacui;
-aacuj;
-aacuk;
-aacul;
-aacum;
-aacun;
-aacuo;
-aacup;
-aacuq;
-aacur;
-aacus;
-aacut;
-aacuu;
-aacuv;
-aacuw;
-aacux;
-aacuy;
-aacuz;
-aacva;
-aacvb;
-aacvc;
-aacvd;
-aacve;
-aacvf;
-aacvg;
-aacvh;
-aacvi;
-aacvj;
-aacvk;
-aacvl;
-aacvm;
-aacvn;
-aacvo;
-aacvp;
-aacvq;
-aacvr;
-aacvs;
-aacvt;
-aacvu;
-aacvv;
-aacvw;
-aacvx;
-aacvy;
-aacvz;
-aacwa;
-aacwb;
-aacwc;
-aacwd;
-aacwe;
-aacwf;
-aacwg;
-aacwh;
-aacwi;
-aacwj;
-aacwk;
-aacwl;
-aacwm;
-aacwn;
-aacwo;
-aacwp;
-aacwq;
-aacwr;
-aacws;
-aacwt;
-aacwu;
-aacwv;
-aacww;
-aacwx;
-aacwy;
-aacwz;
-aacxa;
-aacxb;
-aacxc;
-aacxd;
-aacxe;
-aacxf;
-aacxg;
-aacxh;
-aacxi;
-aacxj;
-aacxk;
-aacxl;
-aacxm;
-aacxn;
-aacxo;
-aacxp;
-aacxq;
-aacxr;
-aacxs;
-aacxt;
-aacxu;
-aacxv;
-aacxw;
-aacxx;
-aacxy;
-aacxz;
-aacya;
-aacyb;
-aacyc;
-aacyd;
-aacye;
-aacyf;
-aacyg;
-aacyh;
-aacyi;
-aacyj;
-aacyk;
-aacyl;
-aacym;
-aacyn;
-aacyo;
-aacyp;
-aacyq;
-aacyr;
-aacys;
-aacyt;
-aacyu;
-aacyv;
-aacyw;
-aacyx;
-aacyy;
-aacyz;
-aacza;
-aaczb;
-aaczc;
-aaczd;
-aacze;
-aaczf;
-aaczg;
-aaczh;
-aaczi;
-aaczj;
-aaczk;
-aaczl;
-aaczm;
-aaczn;
-aaczo;
-aaczp;
-aaczq;
-aaczr;
-aaczs;
-aaczt;
-aaczu;
-aaczv;
-aaczw;
-aaczx;
-aaczy;
-aaczz;
-aadaa;
-aadab;
-aadac;
-aadad;
-aadae;
-aadaf;
-aadag;
-aadah;
-aadai;
-aadaj;
-aadak;
-aadal;
-aadam;
-aadan;
-aadao;
-aadap;
-aadaq;
-aadar;
-aadas;
-aadat;
-aadau;
-aadav;
-aadaw;
-aadax;
-aaday;
-aadaz;
-aadba;
-aadbb;
-aadbc;
-aadbd;
-aadbe;
-aadbf;
-aadbg;
-aadbh;
-aadbi;
-aadbj;
-aadbk;
-aadbl;
-aadbm;
-aadbn;
-aadbo;
-aadbp;
-aadbq;
-aadbr;
-aadbs;
-aadbt;
-aadbu;
-aadbv;
-aadbw;
-aadbx;
-aadby;
-aadbz;
-aadca;
-aadcb;
-aadcc;
-aadcd;
-aadce;
-aadcf;
-aadcg;
-aadch;
-aadci;
-aadcj;
-aadck;
-aadcl;
-aadcm;
-aadcn;
-aadco;
-aadcp;
-aadcq;
-aadcr;
-aadcs;
-aadct;
-aadcu;
-aadcv;
-aadcw;
-aadcx;
-aadcy;
-aadcz;
-aadda;
-aaddb;
-aaddc;
-aaddd;
-aadde;
-aaddf;
-aaddg;
-aaddh;
-aaddi;
-aaddj;
-aaddk;
-aaddl;
-aaddm;
-aaddn;
-aaddo;
-aaddp;
-aaddq;
-aaddr;
-aadds;
-aaddt;
-aaddu;
-aaddv;
-aaddw;
-aaddx;
-aaddy;
-aaddz;
-aadea;
-aadeb;
-aadec;
-aaded;
-aadee;
-aadef;
-aadeg;
-aadeh;
-aadei;
-aadej;
-aadek;
-aadel;
-aadem;
-aaden;
-aadeo;
-aadep;
-aadeq;
-aader;
-aades;
-aadet;
-aadeu;
-aadev;
-aadew;
-aadex;
-aadey;
-aadez;
-aadfa;
-aadfb;
-aadfc;
-aadfd;
-aadfe;
-aadff;
-aadfg;
-aadfh;
-aadfi;
-aadfj;
-aadfk;
-aadfl;
-aadfm;
-aadfn;
-aadfo;
-aadfp;
-aadfq;
-aadfr;
-aadfs;
-aadft;
-aadfu;
-aadfv;
-aadfw;
-aadfx;
-aadfy;
-aadfz;
-aadga;
-aadgb;
-aadgc;
-aadgd;
-aadge;
-aadgf;
-aadgg;
-aadgh;
-aadgi;
-aadgj;
-aadgk;
-aadgl;
-aadgm;
-aadgn;
-aadgo;
-aadgp;
-aadgq;
-aadgr;
-aadgs;
-aadgt;
-aadgu;
-aadgv;
-aadgw;
-aadgx;
-aadgy;
-aadgz;
-aadha;
-aadhb;
-aadhc;
-aadhd;
-aadhe;
-aadhf;
-aadhg;
-aadhh;
-aadhi;
-aadhj;
-aadhk;
-aadhl;
-aadhm;
-aadhn;
-aadho;
-aadhp;
-aadhq;
-aadhr;
-aadhs;
-aadht;
-aadhu;
-aadhv;
-aadhw;
-aadhx;
-aadhy;
-aadhz;
-aadia;
-aadib;
-aadic;
-aadid;
-aadie;
-aadif;
-aadig;
-aadih;
-aadii;
-aadij;
-aadik;
-aadil;
-aadim;
-aadin;
-aadio;
-aadip;
-aadiq;
-aadir;
-aadis;
-aadit;
-aadiu;
-aadiv;
-aadiw;
-aadix;
-aadiy;
-aadiz;
-aadja;
-aadjb;
-aadjc;
-aadjd;
-aadje;
-aadjf;
-aadjg;
-aadjh;
-aadji;
-aadjj;
-aadjk;
-aadjl;
-aadjm;
-aadjn;
-aadjo;
-aadjp;
-aadjq;
-aadjr;
-aadjs;
-aadjt;
-aadju;
-aadjv;
-aadjw;
-aadjx;
-aadjy;
-aadjz;
-aadka;
-aadkb;
-aadkc;
-aadkd;
-aadke;
-aadkf;
-aadkg;
-aadkh;
-aadki;
-aadkj;
-aadkk;
-aadkl;
-aadkm;
-aadkn;
-aadko;
-aadkp;
-aadkq;
-aadkr;
-aadks;
-aadkt;
-aadku;
-aadkv;
-aadkw;
-aadkx;
-aadky;
-aadkz;
-aadla;
-aadlb;
-aadlc;
-aadld;
-aadle;
-aadlf;
-aadlg;
-aadlh;
-aadli;
-aadlj;
-aadlk;
-aadll;
-aadlm;
-aadln;
-aadlo;
-aadlp;
-aadlq;
-aadlr;
-aadls;
-aadlt;
-aadlu;
-aadlv;
-aadlw;
-aadlx;
-aadly;
-aadlz;
-aadma;
-aadmb;
-aadmc;
-aadmd;
-aadme;
-aadmf;
-aadmg;
-aadmh;
-aadmi;
-aadmj;
-aadmk;
-aadml;
-aadmm;
-aadmn;
-aadmo;
-aadmp;
-aadmq;
-aadmr;
-aadms;
-aadmt;
-aadmu;
-aadmv;
-aadmw;
-aadmx;
-aadmy;
-aadmz;
-aadna;
-aadnb;
-aadnc;
-aadnd;
-aadne;
-aadnf;
-aadng;
-aadnh;
-aadni;
-aadnj;
-aadnk;
-aadnl;
-aadnm;
-aadnn;
-aadno;
-aadnp;
-aadnq;
-aadnr;
-aadns;
-aadnt;
-aadnu;
-aadnv;
-aadnw;
-aadnx;
-aadny;
-aadnz;
-aadoa;
-aadob;
-aadoc;
-aadod;
-aadoe;
-aadof;
-aadog;
-aadoh;
-aadoi;
-aadoj;
-aadok;
-aadol;
-aadom;
-aadon;
-aadoo;
-aadop;
-aadoq;
-aador;
-aados;
-aadot;
-aadou;
-aadov;
-aadow;
-aadox;
-aadoy;
-aadoz;
-aadpa;
-aadpb;
-aadpc;
-aadpd;
-aadpe;
-aadpf;
-aadpg;
-aadph;
-aadpi;
-aadpj;
-aadpk;
-aadpl;
-aadpm;
-aadpn;
-aadpo;
-aadpp;
-aadpq;
-aadpr;
-aadps;
-aadpt;
-aadpu;
-aadpv;
-aadpw;
-aadpx;
-aadpy;
-aadpz;
-aadqa;
-aadqb;
-aadqc;
-aadqd;
-aadqe;
-aadqf;
-aadqg;
-aadqh;
-aadqi;
-aadqj;
-aadqk;
-aadql;
-aadqm;
-aadqn;
-aadqo;
-aadqp;
-aadqq;
-aadqr;
-aadqs;
-aadqt;
-aadqu;
-aadqv;
-aadqw;
-aadqx;
-aadqy;
-aadqz;
-aadra;
-aadrb;
-aadrc;
-aadrd;
-aadre;
-aadrf;
-aadrg;
-aadrh;
-aadri;
-aadrj;
-aadrk;
-aadrl;
-aadrm;
-aadrn;
-aadro;
-aadrp;
-aadrq;
-aadrr;
-aadrs;
-aadrt;
-aadru;
-aadrv;
-aadrw;
-aadrx;
-aadry;
-aadrz;
-aadsa;
-aadsb;
-aadsc;
-aadsd;
-aadse;
-aadsf;
-aadsg;
-aadsh;
-aadsi;
-aadsj;
-aadsk;
-aadsl;
-aadsm;
-aadsn;
-aadso;
-aadsp;
-aadsq;
-aadsr;
-aadss;
-aadst;
-aadsu;
-aadsv;
-aadsw;
-aadsx;
-aadsy;
-aadsz;
-aadta;
-aadtb;
-aadtc;
-aadtd;
-aadte;
-aadtf;
-aadtg;
-aadth;
-aadti;
-aadtj;
-aadtk;
-aadtl;
-aadtm;
-aadtn;
-aadto;
-aadtp;
-aadtq;
-aadtr;
-aadts;
-aadtt;
-aadtu;
-aadtv;
-aadtw;
-aadtx;
-aadty;
-aadtz;
-aadua;
-aadub;
-aaduc;
-aadud;
-aadue;
-aaduf;
-aadug;
-aaduh;
-aadui;
-aaduj;
-aaduk;
-aadul;
-aadum;
-aadun;
-aaduo;
-aadup;
-aaduq;
-aadur;
-aadus;
-aadut;
-aaduu;
-aaduv;
-aaduw;
-aadux;
-aaduy;
-aaduz;
-aadva;
-aadvb;
-aadvc;
-aadvd;
-aadve;
-aadvf;
-aadvg;
-aadvh;
-aadvi;
-aadvj;
-aadvk;
-aadvl;
-aadvm;
-aadvn;
-aadvo;
-aadvp;
-aadvq;
-aadvr;
-aadvs;
-aadvt;
-aadvu;
-aadvv;
-aadvw;
-aadvx;
-aadvy;
-aadvz;
-aadwa;
-aadwb;
-aadwc;
-aadwd;
-aadwe;
-aadwf;
-aadwg;
-aadwh;
-aadwi;
-aadwj;
-aadwk;
-aadwl;
-aadwm;
-aadwn;
-aadwo;
-aadwp;
-aadwq;
-aadwr;
-aadws;
-aadwt;
-aadwu;
-aadwv;
-aadww;
-aadwx;
-aadwy;
-aadwz;
-aadxa;
-aadxb;
-aadxc;
-aadxd;
-aadxe;
-aadxf;
-aadxg;
-aadxh;
-aadxi;
-aadxj;
-aadxk;
-aadxl;
-aadxm;
-aadxn;
-aadxo;
-aadxp;
-aadxq;
-aadxr;
-aadxs;
-aadxt;
-aadxu;
-aadxv;
-aadxw;
-aadxx;
-aadxy;
-aadxz;
-aadya;
-aadyb;
-aadyc;
-aadyd;
-aadye;
-aadyf;
-aadyg;
-aadyh;
-aadyi;
-aadyj;
-aadyk;
-aadyl;
-aadym;
-aadyn;
-aadyo;
-aadyp;
-aadyq;
-aadyr;
-aadys;
-aadyt;
-aadyu;
-aadyv;
-aadyw;
-aadyx;
-aadyy;
-aadyz;
-aadza;
-aadzb;
-aadzc;
-aadzd;
-aadze;
-aadzf;
-aadzg;
-aadzh;
-aadzi;
-aadzj;
-aadzk;
-aadzl;
-aadzm;
-aadzn;
-aadzo;
-aadzp;
-aadzq;
-aadzr;
-aadzs;
-aadzt;
-aadzu;
-aadzv;
-aadzw;
-aadzx;
-aadzy;
-aadzz;
-aaeaa;
-aaeab;
-aaeac;
-aaead;
-aaeae;
-aaeaf;
-aaeag;
-aaeah;
-aaeai;
-aaeaj;
-aaeak;
-aaeal;
-aaeam;
-aaean;
-aaeao;
-aaeap;
-aaeaq;
-aaear;
-aaeas;
-aaeat;
-aaeau;
-aaeav;
-aaeaw;
-aaeax;
-aaeay;
-aaeaz;
-aaeba;
-aaebb;
-aaebc;
-aaebd;
-aaebe;
-aaebf;
-aaebg;
-aaebh;
-aaebi;
-aaebj;
-aaebk;
-aaebl;
-aaebm;
-aaebn;
-aaebo;
-aaebp;
-aaebq;
-aaebr;
-aaebs;
-aaebt;
-aaebu;
-aaebv;
-aaebw;
-aaebx;
-aaeby;
-aaebz;
-aaeca;
-aaecb;
-aaecc;
-aaecd;
-aaece;
-aaecf;
-aaecg;
-aaech;
-aaeci;
-aaecj;
-aaeck;
-aaecl;
-aaecm;
-aaecn;
-aaeco;
-aaecp;
-aaecq;
-aaecr;
-aaecs;
-aaect;
-aaecu;
-aaecv;
-aaecw;
-aaecx;
-aaecy;
-aaecz;
-aaeda;
-aaedb;
-aaedc;
-aaedd;
-aaede;
-aaedf;
-aaedg;
-aaedh;
-aaedi;
-aaedj;
-aaedk;
-aaedl;
-aaedm;
-aaedn;
-aaedo;
-aaedp;
-aaedq;
-aaedr;
-aaeds;
-aaedt;
-aaedu;
-aaedv;
-aaedw;
-aaedx;
-aaedy;
-aaedz;
-aaeea;
-aaeeb;
-aaeec;
-aaeed;
-aaeee;
-aaeef;
-aaeeg;
-aaeeh;
-aaeei;
-aaeej;
-aaeek;
-aaeel;
-aaeem;
-aaeen;
-aaeeo;
-aaeep;
-aaeeq;
-aaeer;
-aaees;
-aaeet;
-aaeeu;
-aaeev;
-aaeew;
-aaeex;
-aaeey;
-aaeez;
-aaefa;
-aaefb;
-aaefc;
-aaefd;
-aaefe;
-aaeff;
-aaefg;
-aaefh;
-aaefi;
-aaefj;
-aaefk;
-aaefl;
-aaefm;
-aaefn;
-aaefo;
-aaefp;
-aaefq;
-aaefr;
-aaefs;
-aaeft;
-aaefu;
-aaefv;
-aaefw;
-aaefx;
-aaefy;
-aaefz;
-aaega;
-aaegb;
-aaegc;
-aaegd;
-aaege;
-aaegf;
-aaegg;
-aaegh;
-aaegi;
-aaegj;
-aaegk;
-aaegl;
-aaegm;
-aaegn;
-aaego;
-aaegp;
-aaegq;
-aaegr;
-aaegs;
-aaegt;
-aaegu;
-aaegv;
-aaegw;
-aaegx;
-aaegy;
-aaegz;
-aaeha;
-aaehb;
-aaehc;
-aaehd;
-aaehe;
-aaehf;
-aaehg;
-aaehh;
-aaehi;
-aaehj;
-aaehk;
-aaehl;
-aaehm;
-aaehn;
-aaeho;
-aaehp;
-aaehq;
-aaehr;
-aaehs;
-aaeht;
-aaehu;
-aaehv;
-aaehw;
-aaehx;
-aaehy;
-aaehz;
-aaeia;
-aaeib;
-aaeic;
-aaeid;
-aaeie;
-aaeif;
-aaeig;
-aaeih;
-aaeii;
-aaeij;
-aaeik;
-aaeil;
-aaeim;
-aaein;
-aaeio;
-aaeip;
-aaeiq;
-aaeir;
-aaeis;
-aaeit;
-aaeiu;
-aaeiv;
-aaeiw;
-aaeix;
-aaeiy;
-aaeiz;
-aaeja;
-aaejb;
-aaejc;
-aaejd;
-aaeje;
-aaejf;
-aaejg;
-aaejh;
-aaeji;
-aaejj;
-aaejk;
-aaejl;
-aaejm;
-aaejn;
-aaejo;
-aaejp;
-aaejq;
-aaejr;
-aaejs;
-aaejt;
-aaeju;
-aaejv;
-aaejw;
-aaejx;
-aaejy;
-aaejz;
-aaeka;
-aaekb;
-aaekc;
-aaekd;
-aaeke;
-aaekf;
-aaekg;
-aaekh;
-aaeki;
-aaekj;
-aaekk;
-aaekl;
-aaekm;
-aaekn;
-aaeko;
-aaekp;
-aaekq;
-aaekr;
-aaeks;
-aaekt;
-aaeku;
-aaekv;
-aaekw;
-aaekx;
-aaeky;
-aaekz;
-aaela;
-aaelb;
-aaelc;
-aaeld;
-aaele;
-aaelf;
-aaelg;
-aaelh;
-aaeli;
-aaelj;
-aaelk;
-aaell;
-aaelm;
-aaeln;
-aaelo;
-aaelp;
-aaelq;
-aaelr;
-aaels;
-aaelt;
-aaelu;
-aaelv;
-aaelw;
-aaelx;
-aaely;
-aaelz;
-aaema;
-aaemb;
-aaemc;
-aaemd;
-aaeme;
-aaemf;
-aaemg;
-aaemh;
-aaemi;
-aaemj;
-aaemk;
-aaeml;
-aaemm;
-aaemn;
-aaemo;
-aaemp;
-aaemq;
-aaemr;
-aaems;
-aaemt;
-aaemu;
-aaemv;
-aaemw;
-aaemx;
-aaemy;
-aaemz;
-aaena;
-aaenb;
-aaenc;
-aaend;
-aaene;
-aaenf;
-aaeng;
-aaenh;
-aaeni;
-aaenj;
-aaenk;
-aaenl;
-aaenm;
-aaenn;
-aaeno;
-aaenp;
-aaenq;
-aaenr;
-aaens;
-aaent;
-aaenu;
-aaenv;
-aaenw;
-aaenx;
-aaeny;
-aaenz;
-aaeoa;
-aaeob;
-aaeoc;
-aaeod;
-aaeoe;
-aaeof;
-aaeog;
-aaeoh;
-aaeoi;
-aaeoj;
-aaeok;
-aaeol;
-aaeom;
-aaeon;
-aaeoo;
-aaeop;
-aaeoq;
-aaeor;
-aaeos;
-aaeot;
-aaeou;
-aaeov;
-aaeow;
-aaeox;
-aaeoy;
-aaeoz;
-aaepa;
-aaepb;
-aaepc;
-aaepd;
-aaepe;
-aaepf;
-aaepg;
-aaeph;
-aaepi;
-aaepj;
-aaepk;
-aaepl;
-aaepm;
-aaepn;
-aaepo;
-aaepp;
-aaepq;
-aaepr;
-aaeps;
-aaept;
-aaepu;
-aaepv;
-aaepw;
-aaepx;
-aaepy;
-aaepz;
-aaeqa;
-aaeqb;
-aaeqc;
-aaeqd;
-aaeqe;
-aaeqf;
-aaeqg;
-aaeqh;
-aaeqi;
-aaeqj;
-aaeqk;
-aaeql;
-aaeqm;
-aaeqn;
-aaeqo;
-aaeqp;
-aaeqq;
-aaeqr;
-aaeqs;
-aaeqt;
-aaequ;
-aaeqv;
-aaeqw;
-aaeqx;
-aaeqy;
-aaeqz;
-aaera;
-aaerb;
-aaerc;
-aaerd;
-aaere;
-aaerf;
-aaerg;
-aaerh;
-aaeri;
-aaerj;
-aaerk;
-aaerl;
-aaerm;
-aaern;
-aaero;
-aaerp;
-aaerq;
-aaerr;
-aaers;
-aaert;
-aaeru;
-aaerv;
-aaerw;
-aaerx;
-aaery;
-aaerz;
-aaesa;
-aaesb;
-aaesc;
-aaesd;
-aaese;
-aaesf;
-aaesg;
-aaesh;
-aaesi;
-aaesj;
-aaesk;
-aaesl;
-aaesm;
-aaesn;
-aaeso;
-aaesp;
-aaesq;
-aaesr;
-aaess;
-aaest;
-aaesu;
-aaesv;
-aaesw;
-aaesx;
-aaesy;
-aaesz;
-aaeta;
-aaetb;
-aaetc;
-aaetd;
-aaete;
-aaetf;
-aaetg;
-aaeth;
-aaeti;
-aaetj;
-aaetk;
-aaetl;
-aaetm;
-aaetn;
-aaeto;
-aaetp;
-aaetq;
-aaetr;
-aaets;
-aaett;
-aaetu;
-aaetv;
-aaetw;
-aaetx;
-aaety;
-aaetz;
-aaeua;
-aaeub;
-aaeuc;
-aaeud;
-aaeue;
-aaeuf;
-aaeug;
-aaeuh;
-aaeui;
-aaeuj;
-aaeuk;
-aaeul;
-aaeum;
-aaeun;
-aaeuo;
-aaeup;
-aaeuq;
-aaeur;
-aaeus;
-aaeut;
-aaeuu;
-aaeuv;
-aaeuw;
-aaeux;
-aaeuy;
-aaeuz;
-aaeva;
-aaevb;
-aaevc;
-aaevd;
-aaeve;
-aaevf;
-aaevg;
-aaevh;
-aaevi;
-aaevj;
-aaevk;
-aaevl;
-aaevm;
-aaevn;
-aaevo;
-aaevp;
-aaevq;
-aaevr;
-aaevs;
-aaevt;
-aaevu;
-aaevv;
-aaevw;
-aaevx;
-aaevy;
-aaevz;
-aaewa;
-aaewb;
-aaewc;
-aaewd;
-aaewe;
-aaewf;
-aaewg;
-aaewh;
-aaewi;
-aaewj;
-aaewk;
-aaewl;
-aaewm;
-aaewn;
-aaewo;
-aaewp;
-aaewq;
-aaewr;
-aaews;
-aaewt;
-aaewu;
-aaewv;
-aaeww;
-aaewx;
-aaewy;
-aaewz;
-aaexa;
-aaexb;
-aaexc;
-aaexd;
-aaexe;
-aaexf;
-aaexg;
-aaexh;
-aaexi;
-aaexj;
-aaexk;
-aaexl;
-aaexm;
-aaexn;
-aaexo;
-aaexp;
-aaexq;
-aaexr;
-aaexs;
-aaext;
-aaexu;
-aaexv;
-aaexw;
-aaexx;
-aaexy;
-aaexz;
-aaeya;
-aaeyb;
-aaeyc;
-aaeyd;
-aaeye;
-aaeyf;
-aaeyg;
-aaeyh;
-aaeyi;
-aaeyj;
-aaeyk;
-aaeyl;
-aaeym;
-aaeyn;
-aaeyo;
-aaeyp;
-aaeyq;
-aaeyr;
-aaeys;
-aaeyt;
-aaeyu;
-aaeyv;
-aaeyw;
-aaeyx;
-aaeyy;
-aaeyz;
-aaeza;
-aaezb;
-aaezc;
-aaezd;
-aaeze;
-aaezf;
-aaezg;
-aaezh;
-aaezi;
-aaezj;
-aaezk;
-aaezl;
-aaezm;
-aaezn;
-aaezo;
-aaezp;
-aaezq;
-aaezr;
-aaezs;
-aaezt;
-aaezu;
-aaezv;
-aaezw;
-aaezx;
-aaezy;
-aaezz;
-aafaa;
-aafab;
-aafac;
-aafad;
-aafae;
-aafaf;
-aafag;
-aafah;
-aafai;
-aafaj;
-aafak;
-aafal;
-aafam;
-aafan;
-aafao;
-aafap;
-aafaq;
-aafar;
-aafas;
-aafat;
-aafau;
-aafav;
-aafaw;
-aafax;
-aafay;
-aafaz;
-aafba;
-aafbb;
-aafbc;
-aafbd;
-aafbe;
-aafbf;
-aafbg;
-aafbh;
-aafbi;
-aafbj;
-aafbk;
-aafbl;
-aafbm;
-aafbn;
-aafbo;
-aafbp;
-aafbq;
-aafbr;
-aafbs;
-aafbt;
-aafbu;
-aafbv;
-aafbw;
-aafbx;
-aafby;
-aafbz;
-aafca;
-aafcb;
-aafcc;
-aafcd;
-aafce;
-aafcf;
-aafcg;
-aafch;
-aafci;
-aafcj;
-aafck;
-aafcl;
-aafcm;
-aafcn;
-aafco;
-aafcp;
-aafcq;
-aafcr;
-aafcs;
-aafct;
-aafcu;
-aafcv;
-aafcw;
-aafcx;
-aafcy;
-aafcz;
-aafda;
-aafdb;
-aafdc;
-aafdd;
-aafde;
-aafdf;
-aafdg;
-aafdh;
-aafdi;
-aafdj;
-aafdk;
-aafdl;
-aafdm;
-aafdn;
-aafdo;
-aafdp;
-aafdq;
-aafdr;
-aafds;
-aafdt;
-aafdu;
-aafdv;
-aafdw;
-aafdx;
-aafdy;
-aafdz;
-aafea;
-aafeb;
-aafec;
-aafed;
-aafee;
-aafef;
-aafeg;
-aafeh;
-aafei;
-aafej;
-aafek;
-aafel;
-aafem;
-aafen;
-aafeo;
-aafep;
-aafeq;
-aafer;
-aafes;
-aafet;
-aafeu;
-aafev;
-aafew;
-aafex;
-aafey;
-aafez;
-aaffa;
-aaffb;
-aaffc;
-aaffd;
-aaffe;
-aafff;
-aaffg;
-aaffh;
-aaffi;
-aaffj;
-aaffk;
-aaffl;
-aaffm;
-aaffn;
-aaffo;
-aaffp;
-aaffq;
-aaffr;
-aaffs;
-aafft;
-aaffu;
-aaffv;
-aaffw;
-aaffx;
-aaffy;
-aaffz;
-aafga;
-aafgb;
-aafgc;
-aafgd;
-aafge;
-aafgf;
-aafgg;
-aafgh;
-aafgi;
-aafgj;
-aafgk;
-aafgl;
-aafgm;
-aafgn;
-aafgo;
-aafgp;
-aafgq;
-aafgr;
-aafgs;
-aafgt;
-aafgu;
-aafgv;
-aafgw;
-aafgx;
-aafgy;
-aafgz;
-aafha;
-aafhb;
-aafhc;
-aafhd;
-aafhe;
-aafhf;
-aafhg;
-aafhh;
-aafhi;
-aafhj;
-aafhk;
-aafhl;
-aafhm;
-aafhn;
-aafho;
-aafhp;
-aafhq;
-aafhr;
-aafhs;
-aafht;
-aafhu;
-aafhv;
-aafhw;
-aafhx;
-aafhy;
-aafhz;
-aafia;
-aafib;
-aafic;
-aafid;
-aafie;
-aafif;
-aafig;
-aafih;
-aafii;
-aafij;
-aafik;
-aafil;
-aafim;
-aafin;
-aafio;
-aafip;
-aafiq;
-aafir;
-aafis;
-aafit;
-aafiu;
-aafiv;
-aafiw;
-aafix;
-aafiy;
-aafiz;
-aafja;
-aafjb;
-aafjc;
-aafjd;
-aafje;
-aafjf;
-aafjg;
-aafjh;
-aafji;
-aafjj;
-aafjk;
-aafjl;
-aafjm;
-aafjn;
-aafjo;
-aafjp;
-aafjq;
-aafjr;
-aafjs;
-aafjt;
-aafju;
-aafjv;
-aafjw;
-aafjx;
-aafjy;
-aafjz;
-aafka;
-aafkb;
-aafkc;
-aafkd;
-aafke;
-aafkf;
-aafkg;
-aafkh;
-aafki;
-aafkj;
-aafkk;
-aafkl;
-aafkm;
-aafkn;
-aafko;
-aafkp;
-aafkq;
-aafkr;
-aafks;
-aafkt;
-aafku;
-aafkv;
-aafkw;
-aafkx;
-aafky;
-aafkz;
-aafla;
-aaflb;
-aaflc;
-aafld;
-aafle;
-aaflf;
-aaflg;
-aaflh;
-aafli;
-aaflj;
-aaflk;
-aafll;
-aaflm;
-aafln;
-aaflo;
-aaflp;
-aaflq;
-aaflr;
-aafls;
-aaflt;
-aaflu;
-aaflv;
-aaflw;
-aaflx;
-aafly;
-aaflz;
-aafma;
-aafmb;
-aafmc;
-aafmd;
-aafme;
-aafmf;
-aafmg;
-aafmh;
-aafmi;
-aafmj;
-aafmk;
-aafml;
-aafmm;
-aafmn;
-aafmo;
-aafmp;
-aafmq;
-aafmr;
-aafms;
-aafmt;
-aafmu;
-aafmv;
-aafmw;
-aafmx;
-aafmy;
-aafmz;
-aafna;
-aafnb;
-aafnc;
-aafnd;
-aafne;
-aafnf;
-aafng;
-aafnh;
-aafni;
-aafnj;
-aafnk;
-aafnl;
-aafnm;
-aafnn;
-aafno;
-aafnp;
-aafnq;
-aafnr;
-aafns;
-aafnt;
-aafnu;
-aafnv;
-aafnw;
-aafnx;
-aafny;
-aafnz;
-aafoa;
-aafob;
-aafoc;
-aafod;
-aafoe;
-aafof;
-aafog;
-aafoh;
-aafoi;
-aafoj;
-aafok;
-aafol;
-aafom;
-aafon;
-aafoo;
-aafop;
-aafoq;
-aafor;
-aafos;
-aafot;
-aafou;
-aafov;
-aafow;
-aafox;
-aafoy;
-aafoz;
-aafpa;
-aafpb;
-aafpc;
-aafpd;
-aafpe;
-aafpf;
-aafpg;
-aafph;
-aafpi;
-aafpj;
-aafpk;
-aafpl;
-aafpm;
-aafpn;
-aafpo;
-aafpp;
-aafpq;
-aafpr;
-aafps;
-aafpt;
-aafpu;
-aafpv;
-aafpw;
-aafpx;
-aafpy;
-aafpz;
-aafqa;
-aafqb;
-aafqc;
-aafqd;
-aafqe;
-aafqf;
-aafqg;
-aafqh;
-aafqi;
-aafqj;
-aafqk;
-aafql;
-aafqm;
-aafqn;
-aafqo;
-aafqp;
-aafqq;
-aafqr;
-aafqs;
-aafqt;
-aafqu;
-aafqv;
-aafqw;
-aafqx;
-aafqy;
-aafqz;
-aafra;
-aafrb;
-aafrc;
-aafrd;
-aafre;
-aafrf;
-aafrg;
-aafrh;
-aafri;
-aafrj;
-aafrk;
-aafrl;
-aafrm;
-aafrn;
-aafro;
-aafrp;
-aafrq;
-aafrr;
-aafrs;
-aafrt;
-aafru;
-aafrv;
-aafrw;
-aafrx;
-aafry;
-aafrz;
-aafsa;
-aafsb;
-aafsc;
-aafsd;
-aafse;
-aafsf;
-aafsg;
-aafsh;
-aafsi;
-aafsj;
-aafsk;
-aafsl;
-aafsm;
-aafsn;
-aafso;
-aafsp;
-aafsq;
-aafsr;
-aafss;
-aafst;
-aafsu;
-aafsv;
-aafsw;
-aafsx;
-aafsy;
-aafsz;
-aafta;
-aaftb;
-aaftc;
-aaftd;
-aafte;
-aaftf;
-aaftg;
-aafth;
-aafti;
-aaftj;
-aaftk;
-aaftl;
-aaftm;
-aaftn;
-aafto;
-aaftp;
-aaftq;
-aaftr;
-aafts;
-aaftt;
-aaftu;
-aaftv;
-aaftw;
-aaftx;
-aafty;
-aaftz;
-aafua;
-aafub;
-aafuc;
-aafud;
-aafue;
-aafuf;
-aafug;
-aafuh;
-aafui;
-aafuj;
-aafuk;
-aaful;
-aafum;
-aafun;
-aafuo;
-aafup;
-aafuq;
-aafur;
-aafus;
-aafut;
-aafuu;
-aafuv;
-aafuw;
-aafux;
-aafuy;
-aafuz;
-aafva;
-aafvb;
-aafvc;
-aafvd;
-aafve;
-aafvf;
-aafvg;
-aafvh;
-aafvi;
-aafvj;
-aafvk;
-aafvl;
-aafvm;
-aafvn;
-aafvo;
-aafvp;
-aafvq;
-aafvr;
-aafvs;
-aafvt;
-aafvu;
-aafvv;
-aafvw;
-aafvx;
-aafvy;
-aafvz;
-aafwa;
-aafwb;
-aafwc;
-aafwd;
-aafwe;
-aafwf;
-aafwg;
-aafwh;
-aafwi;
-aafwj;
-aafwk;
-aafwl;
-aafwm;
-aafwn;
-aafwo;
-aafwp;
-aafwq;
-aafwr;
-aafws;
-aafwt;
-aafwu;
-aafwv;
-aafww;
-aafwx;
-aafwy;
-aafwz;
-aafxa;
-aafxb;
-aafxc;
-aafxd;
-aafxe;
-aafxf;
-aafxg;
-aafxh;
-aafxi;
-aafxj;
-aafxk;
-aafxl;
-aafxm;
-aafxn;
-aafxo;
-aafxp;
-aafxq;
-aafxr;
-aafxs;
-aafxt;
-aafxu;
-aafxv;
-aafxw;
-aafxx;
-aafxy;
-aafxz;
-aafya;
-aafyb;
-aafyc;
-aafyd;
-aafye;
-aafyf;
-aafyg;
-aafyh;
-aafyi;
-aafyj;
-aafyk;
-aafyl;
-aafym;
-aafyn;
-aafyo;
-aafyp;
-aafyq;
-aafyr;
-aafys;
-aafyt;
-aafyu;
-aafyv;
-aafyw;
-aafyx;
-aafyy;
-aafyz;
-aafza;
-aafzb;
-aafzc;
-aafzd;
-aafze;
-aafzf;
-aafzg;
-aafzh;
-aafzi;
-aafzj;
-aafzk;
-aafzl;
-aafzm;
-aafzn;
-aafzo;
-aafzp;
-aafzq;
-aafzr;
-aafzs;
-aafzt;
-aafzu;
-aafzv;
-aafzw;
-aafzx;
-aafzy;
-aafzz;
-aagaa;
-aagab;
-aagac;
-aagad;
-aagae;
-aagaf;
-aagag;
-aagah;
-aagai;
-aagaj;
-aagak;
-aagal;
-aagam;
-aagan;
-aagao;
-aagap;
-aagaq;
-aagar;
-aagas;
-aagat;
-aagau;
-aagav;
-aagaw;
-aagax;
-aagay;
-aagaz;
-aagba;
-aagbb;
-aagbc;
-aagbd;
-aagbe;
-aagbf;
-aagbg;
-aagbh;
-aagbi;
-aagbj;
-aagbk;
-aagbl;
-aagbm;
-aagbn;
-aagbo;
-aagbp;
-aagbq;
-aagbr;
-aagbs;
-aagbt;
-aagbu;
-aagbv;
-aagbw;
-aagbx;
-aagby;
-aagbz;
-aagca;
-aagcb;
-aagcc;
-aagcd;
-aagce;
-aagcf;
-aagcg;
-aagch;
-aagci;
-aagcj;
-aagck;
-aagcl;
-aagcm;
-aagcn;
-aagco;
-aagcp;
-aagcq;
-aagcr;
-aagcs;
-aagct;
-aagcu;
-aagcv;
-aagcw;
-aagcx;
-aagcy;
-aagcz;
-aagda;
-aagdb;
-aagdc;
-aagdd;
-aagde;
-aagdf;
-aagdg;
-aagdh;
-aagdi;
-aagdj;
-aagdk;
-aagdl;
-aagdm;
-aagdn;
-aagdo;
-aagdp;
-aagdq;
-aagdr;
-aagds;
-aagdt;
-aagdu;
-aagdv;
-aagdw;
-aagdx;
-aagdy;
-aagdz;
-aagea;
-aageb;
-aagec;
-aaged;
-aagee;
-aagef;
-aageg;
-aageh;
-aagei;
-aagej;
-aagek;
-aagel;
-aagem;
-aagen;
-aageo;
-aagep;
-aageq;
-aager;
-aages;
-aaget;
-aageu;
-aagev;
-aagew;
-aagex;
-aagey;
-aagez;
-aagfa;
-aagfb;
-aagfc;
-aagfd;
-aagfe;
-aagff;
-aagfg;
-aagfh;
-aagfi;
-aagfj;
-aagfk;
-aagfl;
-aagfm;
-aagfn;
-aagfo;
-aagfp;
-aagfq;
-aagfr;
-aagfs;
-aagft;
-aagfu;
-aagfv;
-aagfw;
-aagfx;
-aagfy;
-aagfz;
-aagga;
-aaggb;
-aaggc;
-aaggd;
-aagge;
-aaggf;
-aaggg;
-aaggh;
-aaggi;
-aaggj;
-aaggk;
-aaggl;
-aaggm;
-aaggn;
-aaggo;
-aaggp;
-aaggq;
-aaggr;
-aaggs;
-aaggt;
-aaggu;
-aaggv;
-aaggw;
-aaggx;
-aaggy;
-aaggz;
-aagha;
-aaghb;
-aaghc;
-aaghd;
-aaghe;
-aaghf;
-aaghg;
-aaghh;
-aaghi;
-aaghj;
-aaghk;
-aaghl;
-aaghm;
-aaghn;
-aagho;
-aaghp;
-aaghq;
-aaghr;
-aaghs;
-aaght;
-aaghu;
-aaghv;
-aaghw;
-aaghx;
-aaghy;
-aaghz;
-aagia;
-aagib;
-aagic;
-aagid;
-aagie;
-aagif;
-aagig;
-aagih;
-aagii;
-aagij;
-aagik;
-aagil;
-aagim;
-aagin;
-aagio;
-aagip;
-aagiq;
-aagir;
-aagis;
-aagit;
-aagiu;
-aagiv;
-aagiw;
-aagix;
-aagiy;
-aagiz;
-aagja;
-aagjb;
-aagjc;
-aagjd;
-aagje;
-aagjf;
-aagjg;
-aagjh;
-aagji;
-aagjj;
-aagjk;
-aagjl;
-aagjm;
-aagjn;
-aagjo;
-aagjp;
-aagjq;
-aagjr;
-aagjs;
-aagjt;
-aagju;
-aagjv;
-aagjw;
-aagjx;
-aagjy;
-aagjz;
-aagka;
-aagkb;
-aagkc;
-aagkd;
-aagke;
-aagkf;
-aagkg;
-aagkh;
-aagki;
-aagkj;
-aagkk;
-aagkl;
-aagkm;
-aagkn;
-aagko;
-aagkp;
-aagkq;
-aagkr;
-aagks;
-aagkt;
-aagku;
-aagkv;
-aagkw;
-aagkx;
-aagky;
-aagkz;
-aagla;
-aaglb;
-aaglc;
-aagld;
-aagle;
-aaglf;
-aaglg;
-aaglh;
-aagli;
-aaglj;
-aaglk;
-aagll;
-aaglm;
-aagln;
-aaglo;
-aaglp;
-aaglq;
-aaglr;
-aagls;
-aaglt;
-aaglu;
-aaglv;
-aaglw;
-aaglx;
-aagly;
-aaglz;
-aagma;
-aagmb;
-aagmc;
-aagmd;
-aagme;
-aagmf;
-aagmg;
-aagmh;
-aagmi;
-aagmj;
-aagmk;
-aagml;
-aagmm;
-aagmn;
-aagmo;
-aagmp;
-aagmq;
-aagmr;
-aagms;
-aagmt;
-aagmu;
-aagmv;
-aagmw;
-aagmx;
-aagmy;
-aagmz;
-aagna;
-aagnb;
-aagnc;
-aagnd;
-aagne;
-aagnf;
-aagng;
-aagnh;
-aagni;
-aagnj;
-aagnk;
-aagnl;
-aagnm;
-aagnn;
-aagno;
-aagnp;
-aagnq;
-aagnr;
-aagns;
-aagnt;
-aagnu;
-aagnv;
-aagnw;
-aagnx;
-aagny;
-aagnz;
-aagoa;
-aagob;
-aagoc;
-aagod;
-aagoe;
-aagof;
-aagog;
-aagoh;
-aagoi;
-aagoj;
-aagok;
-aagol;
-aagom;
-aagon;
-aagoo;
-aagop;
-aagoq;
-aagor;
-aagos;
-aagot;
-aagou;
-aagov;
-aagow;
-aagox;
-aagoy;
-aagoz;
-aagpa;
-aagpb;
-aagpc;
-aagpd;
-aagpe;
-aagpf;
-aagpg;
-aagph;
-aagpi;
-aagpj;
-aagpk;
-aagpl;
-aagpm;
-aagpn;
-aagpo;
-aagpp;
-aagpq;
-aagpr;
-aagps;
-aagpt;
-aagpu;
-aagpv;
-aagpw;
-aagpx;
-aagpy;
-aagpz;
-aagqa;
-aagqb;
-aagqc;
-aagqd;
-aagqe;
-aagqf;
-aagqg;
-aagqh;
-aagqi;
-aagqj;
-aagqk;
-aagql;
-aagqm;
-aagqn;
-aagqo;
-aagqp;
-aagqq;
-aagqr;
-aagqs;
-aagqt;
-aagqu;
-aagqv;
-aagqw;
-aagqx;
-aagqy;
-aagqz;
-aagra;
-aagrb;
-aagrc;
-aagrd;
-aagre;
-aagrf;
-aagrg;
-aagrh;
-aagri;
-aagrj;
-aagrk;
-aagrl;
-aagrm;
-aagrn;
-aagro;
-aagrp;
-aagrq;
-aagrr;
-aagrs;
-aagrt;
-aagru;
-aagrv;
-aagrw;
-aagrx;
-aagry;
-aagrz;
-aagsa;
-aagsb;
-aagsc;
-aagsd;
-aagse;
-aagsf;
-aagsg;
-aagsh;
-aagsi;
-aagsj;
-aagsk;
-aagsl;
-aagsm;
-aagsn;
-aagso;
-aagsp;
-aagsq;
-aagsr;
-aagss;
-aagst;
-aagsu;
-aagsv;
-aagsw;
-aagsx;
-aagsy;
-aagsz;
-aagta;
-aagtb;
-aagtc;
-aagtd;
-aagte;
-aagtf;
-aagtg;
-aagth;
-aagti;
-aagtj;
-aagtk;
-aagtl;
-aagtm;
-aagtn;
-aagto;
-aagtp;
-aagtq;
-aagtr;
-aagts;
-aagtt;
-aagtu;
-aagtv;
-aagtw;
-aagtx;
-aagty;
-aagtz;
-aagua;
-aagub;
-aaguc;
-aagud;
-aague;
-aaguf;
-aagug;
-aaguh;
-aagui;
-aaguj;
-aaguk;
-aagul;
-aagum;
-aagun;
-aaguo;
-aagup;
-aaguq;
-aagur;
-aagus;
-aagut;
-aaguu;
-aaguv;
-aaguw;
-aagux;
-aaguy;
-aaguz;
-aagva;
-aagvb;
-aagvc;
-aagvd;
-aagve;
-aagvf;
-aagvg;
-aagvh;
-aagvi;
-aagvj;
-aagvk;
-aagvl;
-aagvm;
-aagvn;
-aagvo;
-aagvp;
-aagvq;
-aagvr;
-aagvs;
-aagvt;
-aagvu;
-aagvv;
-aagvw;
-aagvx;
-aagvy;
-aagvz;
-aagwa;
-aagwb;
-aagwc;
-aagwd;
-aagwe;
-aagwf;
-aagwg;
-aagwh;
-aagwi;
-aagwj;
-aagwk;
-aagwl;
-aagwm;
-aagwn;
-aagwo;
-aagwp;
-aagwq;
-aagwr;
-aagws;
-aagwt;
-aagwu;
-aagwv;
-aagww;
-aagwx;
-aagwy;
-aagwz;
-aagxa;
-aagxb;
-aagxc;
-aagxd;
-aagxe;
-aagxf;
-aagxg;
-aagxh;
-aagxi;
-aagxj;
-aagxk;
-aagxl;
-aagxm;
-aagxn;
-aagxo;
-aagxp;
-aagxq;
-aagxr;
-aagxs;
-aagxt;
-aagxu;
-aagxv;
-aagxw;
-aagxx;
-aagxy;
-aagxz;
-aagya;
-aagyb;
-aagyc;
-aagyd;
-aagye;
-aagyf;
-aagyg;
-aagyh;
-aagyi;
-aagyj;
-aagyk;
-aagyl;
-aagym;
-aagyn;
-aagyo;
-aagyp;
-aagyq;
-aagyr;
-aagys;
-aagyt;
-aagyu;
-aagyv;
-aagyw;
-aagyx;
-aagyy;
-aagyz;
-aagza;
-aagzb;
-aagzc;
-aagzd;
-aagze;
-aagzf;
-aagzg;
-aagzh;
-aagzi;
-aagzj;
-aagzk;
-aagzl;
-aagzm;
-aagzn;
-aagzo;
-aagzp;
-aagzq;
-aagzr;
-aagzs;
-aagzt;
-aagzu;
-aagzv;
-aagzw;
-aagzx;
-aagzy;
-aagzz;
-aahaa;
-aahab;
-aahac;
-aahad;
-aahae;
-aahaf;
-aahag;
-aahah;
-aahai;
-aahaj;
-aahak;
-aahal;
-aaham;
-aahan;
-aahao;
-aahap;
-aahaq;
-aahar;
-aahas;
-aahat;
-aahau;
-aahav;
-aahaw;
-aahax;
-aahay;
-aahaz;
-aahba;
-aahbb;
-aahbc;
-aahbd;
-aahbe;
-aahbf;
-aahbg;
-aahbh;
-aahbi;
-aahbj;
-aahbk;
-aahbl;
-aahbm;
-aahbn;
-aahbo;
-aahbp;
-aahbq;
-aahbr;
-aahbs;
-aahbt;
-aahbu;
-aahbv;
-aahbw;
-aahbx;
-aahby;
-aahbz;
-aahca;
-aahcb;
-aahcc;
-aahcd;
-aahce;
-aahcf;
-aahcg;
-aahch;
-aahci;
-aahcj;
-aahck;
-aahcl;
-aahcm;
-aahcn;
-aahco;
-aahcp;
-aahcq;
-aahcr;
-aahcs;
-aahct;
-aahcu;
-aahcv;
-aahcw;
-aahcx;
-aahcy;
-aahcz;
-aahda;
-aahdb;
-aahdc;
-aahdd;
-aahde;
-aahdf;
-aahdg;
-aahdh;
-aahdi;
-aahdj;
-aahdk;
-aahdl;
-aahdm;
-aahdn;
-aahdo;
-aahdp;
-aahdq;
-aahdr;
-aahds;
-aahdt;
-aahdu;
-aahdv;
-aahdw;
-aahdx;
-aahdy;
-aahdz;
-aahea;
-aaheb;
-aahec;
-aahed;
-aahee;
-aahef;
-aaheg;
-aaheh;
-aahei;
-aahej;
-aahek;
-aahel;
-aahem;
-aahen;
-aaheo;
-aahep;
-aaheq;
-aaher;
-aahes;
-aahet;
-aaheu;
-aahev;
-aahew;
-aahex;
-aahey;
-aahez;
-aahfa;
-aahfb;
-aahfc;
-aahfd;
-aahfe;
-aahff;
-aahfg;
-aahfh;
-aahfi;
-aahfj;
-aahfk;
-aahfl;
-aahfm;
-aahfn;
-aahfo;
-aahfp;
-aahfq;
-aahfr;
-aahfs;
-aahft;
-aahfu;
-aahfv;
-aahfw;
-aahfx;
-aahfy;
-aahfz;
-aahga;
-aahgb;
-aahgc;
-aahgd;
-aahge;
-aahgf;
-aahgg;
-aahgh;
-aahgi;
-aahgj;
-aahgk;
-aahgl;
-aahgm;
-aahgn;
-aahgo;
-aahgp;
-aahgq;
-aahgr;
-aahgs;
-aahgt;
-aahgu;
-aahgv;
-aahgw;
-aahgx;
-aahgy;
-aahgz;
-aahha;
-aahhb;
-aahhc;
-aahhd;
-aahhe;
-aahhf;
-aahhg;
-aahhh;
-aahhi;
-aahhj;
-aahhk;
-aahhl;
-aahhm;
-aahhn;
-aahho;
-aahhp;
-aahhq;
-aahhr;
-aahhs;
-aahht;
-aahhu;
-aahhv;
-aahhw;
-aahhx;
-aahhy;
-aahhz;
-aahia;
-aahib;
-aahic;
-aahid;
-aahie;
-aahif;
-aahig;
-aahih;
-aahii;
-aahij;
-aahik;
-aahil;
-aahim;
-aahin;
-aahio;
-aahip;
-aahiq;
-aahir;
-aahis;
-aahit;
-aahiu;
-aahiv;
-aahiw;
-aahix;
-aahiy;
-aahiz;
-aahja;
-aahjb;
-aahjc;
-aahjd;
-aahje;
-aahjf;
-aahjg;
-aahjh;
-aahji;
-aahjj;
-aahjk;
-aahjl;
-aahjm;
-aahjn;
-aahjo;
-aahjp;
-aahjq;
-aahjr;
-aahjs;
-aahjt;
-aahju;
-aahjv;
-aahjw;
-aahjx;
-aahjy;
-aahjz;
-aahka;
-aahkb;
-aahkc;
-aahkd;
-aahke;
-aahkf;
-aahkg;
-aahkh;
-aahki;
-aahkj;
-aahkk;
-aahkl;
-aahkm;
-aahkn;
-aahko;
-aahkp;
-aahkq;
-aahkr;
-aahks;
-aahkt;
-aahku;
-aahkv;
-aahkw;
-aahkx;
-aahky;
-aahkz;
-aahla;
-aahlb;
-aahlc;
-aahld;
-aahle;
-aahlf;
-aahlg;
-aahlh;
-aahli;
-aahlj;
-aahlk;
-aahll;
-aahlm;
-aahln;
-aahlo;
-aahlp;
-aahlq;
-aahlr;
-aahls;
-aahlt;
-aahlu;
-aahlv;
-aahlw;
-aahlx;
-aahly;
-aahlz;
-aahma;
-aahmb;
-aahmc;
-aahmd;
-aahme;
-aahmf;
-aahmg;
-aahmh;
-aahmi;
-aahmj;
-aahmk;
-aahml;
-aahmm;
-aahmn;
-aahmo;
-aahmp;
-aahmq;
-aahmr;
-aahms;
-aahmt;
-aahmu;
-aahmv;
-aahmw;
-aahmx;
-aahmy;
-aahmz;
-aahna;
-aahnb;
-aahnc;
-aahnd;
-aahne;
-aahnf;
-aahng;
-aahnh;
-aahni;
-aahnj;
-aahnk;
-aahnl;
-aahnm;
-aahnn;
-aahno;
-aahnp;
-aahnq;
-aahnr;
-aahns;
-aahnt;
-aahnu;
-aahnv;
-aahnw;
-aahnx;
-aahny;
-aahnz;
-aahoa;
-aahob;
-aahoc;
-aahod;
-aahoe;
-aahof;
-aahog;
-aahoh;
-aahoi;
-aahoj;
-aahok;
-aahol;
-aahom;
-aahon;
-aahoo;
-aahop;
-aahoq;
-aahor;
-aahos;
-aahot;
-aahou;
-aahov;
-aahow;
-aahox;
-aahoy;
-aahoz;
-aahpa;
-aahpb;
-aahpc;
-aahpd;
-aahpe;
-aahpf;
-aahpg;
-aahph;
-aahpi;
-aahpj;
-aahpk;
-aahpl;
-aahpm;
-aahpn;
-aahpo;
-aahpp;
-aahpq;
-aahpr;
-aahps;
-aahpt;
-aahpu;
-aahpv;
-aahpw;
-aahpx;
-aahpy;
-aahpz;
-aahqa;
-aahqb;
-aahqc;
-aahqd;
-aahqe;
-aahqf;
-aahqg;
-aahqh;
-aahqi;
-aahqj;
-aahqk;
-aahql;
-aahqm;
-aahqn;
-aahqo;
-aahqp;
-aahqq;
-aahqr;
-aahqs;
-aahqt;
-aahqu;
-aahqv;
-aahqw;
-aahqx;
-aahqy;
-aahqz;
-aahra;
-aahrb;
-aahrc;
-aahrd;
-aahre;
-aahrf;
-aahrg;
-aahrh;
-aahri;
-aahrj;
-aahrk;
-aahrl;
-aahrm;
-aahrn;
-aahro;
-aahrp;
-aahrq;
-aahrr;
-aahrs;
-aahrt;
-aahru;
-aahrv;
-aahrw;
-aahrx;
-aahry;
-aahrz;
-aahsa;
-aahsb;
-aahsc;
-aahsd;
-aahse;
-aahsf;
-aahsg;
-aahsh;
-aahsi;
-aahsj;
-aahsk;
-aahsl;
-aahsm;
-aahsn;
-aahso;
-aahsp;
-aahsq;
-aahsr;
-aahss;
-aahst;
-aahsu;
-aahsv;
-aahsw;
-aahsx;
-aahsy;
-aahsz;
-aahta;
-aahtb;
-aahtc;
-aahtd;
-aahte;
-aahtf;
-aahtg;
-aahth;
-aahti;
-aahtj;
-aahtk;
-aahtl;
-aahtm;
-aahtn;
-aahto;
-aahtp;
-aahtq;
-aahtr;
-aahts;
-aahtt;
-aahtu;
-aahtv;
-aahtw;
-aahtx;
-aahty;
-aahtz;
-aahua;
-aahub;
-aahuc;
-aahud;
-aahue;
-aahuf;
-aahug;
-aahuh;
-aahui;
-aahuj;
-aahuk;
-aahul;
-aahum;
-aahun;
-aahuo;
-aahup;
-aahuq;
-aahur;
-aahus;
-aahut;
-aahuu;
-aahuv;
-aahuw;
-aahux;
-aahuy;
-aahuz;
-aahva;
-aahvb;
-aahvc;
-aahvd;
-aahve;
-aahvf;
-aahvg;
-aahvh;
-aahvi;
-aahvj;
-aahvk;
-aahvl;
-aahvm;
-aahvn;
-aahvo;
-aahvp;
-aahvq;
-aahvr;
-aahvs;
-aahvt;
-aahvu;
-aahvv;
-aahvw;
-aahvx;
-aahvy;
-aahvz;
-aahwa;
-aahwb;
-aahwc;
-aahwd;
-aahwe;
-aahwf;
-aahwg;
-aahwh;
-aahwi;
-aahwj;
-aahwk;
-aahwl;
-aahwm;
-aahwn;
-aahwo;
-aahwp;
-aahwq;
-aahwr;
-aahws;
-aahwt;
-aahwu;
-aahwv;
-aahww;
-aahwx;
-aahwy;
-aahwz;
-aahxa;
-aahxb;
-aahxc;
-aahxd;
-aahxe;
-aahxf;
-aahxg;
-aahxh;
-aahxi;
-aahxj;
-aahxk;
-aahxl;
-aahxm;
-aahxn;
-aahxo;
-aahxp;
-aahxq;
-aahxr;
-aahxs;
-aahxt;
-aahxu;
-aahxv;
-aahxw;
-aahxx;
-aahxy;
-aahxz;
-aahya;
-aahyb;
-aahyc;
-aahyd;
-aahye;
-aahyf;
-aahyg;
-aahyh;
-aahyi;
-aahyj;
-aahyk;
-aahyl;
-aahym;
-aahyn;
-aahyo;
-aahyp;
-aahyq;
-aahyr;
-aahys;
-aahyt;
-aahyu;
-aahyv;
-aahyw;
-aahyx;
-aahyy;
-aahyz;
-aahza;
-aahzb;
-aahzc;
-aahzd;
-aahze;
-aahzf;
-aahzg;
-aahzh;
-aahzi;
-aahzj;
-aahzk;
-aahzl;
-aahzm;
-aahzn;
-aahzo;
-aahzp;
-aahzq;
-aahzr;
-aahzs;
-aahzt;
-aahzu;
-aahzv;
-aahzw;
-aahzx;
-aahzy;
-aahzz;
-aaiaa;
-aaiab;
-aaiac;
-aaiad;
-aaiae;
-aaiaf;
-aaiag;
-aaiah;
-aaiai;
-aaiaj;
-aaiak;
-aaial;
-aaiam;
-aaian;
-aaiao;
-aaiap;
-aaiaq;
-aaiar;
-aaias;
-aaiat;
-aaiau;
-aaiav;
-aaiaw;
-aaiax;
-aaiay;
-aaiaz;
-aaiba;
-aaibb;
-aaibc;
-aaibd;
-aaibe;
-aaibf;
-aaibg;
-aaibh;
-aaibi;
-aaibj;
-aaibk;
-aaibl;
-aaibm;
-aaibn;
-aaibo;
-aaibp;
-aaibq;
-aaibr;
-aaibs;
-aaibt;
-aaibu;
-aaibv;
-aaibw;
-aaibx;
-aaiby;
-aaibz;
-aaica;
-aaicb;
-aaicc;
-aaicd;
-aaice;
-aaicf;
-aaicg;
-aaich;
-aaici;
-aaicj;
-aaick;
-aaicl;
-aaicm;
-aaicn;
-aaico;
-aaicp;
-aaicq;
-aaicr;
-aaics;
-aaict;
-aaicu;
-aaicv;
-aaicw;
-aaicx;
-aaicy;
-aaicz;
-aaida;
-aaidb;
-aaidc;
-aaidd;
-aaide;
-aaidf;
-aaidg;
-aaidh;
-aaidi;
-aaidj;
-aaidk;
-aaidl;
-aaidm;
-aaidn;
-aaido;
-aaidp;
-aaidq;
-aaidr;
-aaids;
-aaidt;
-aaidu;
-aaidv;
-aaidw;
-aaidx;
-aaidy;
-aaidz;
-aaiea;
-aaieb;
-aaiec;
-aaied;
-aaiee;
-aaief;
-aaieg;
-aaieh;
-aaiei;
-aaiej;
-aaiek;
-aaiel;
-aaiem;
-aaien;
-aaieo;
-aaiep;
-aaieq;
-aaier;
-aaies;
-aaiet;
-aaieu;
-aaiev;
-aaiew;
-aaiex;
-aaiey;
-aaiez;
-aaifa;
-aaifb;
-aaifc;
-aaifd;
-aaife;
-aaiff;
-aaifg;
-aaifh;
-aaifi;
-aaifj;
-aaifk;
-aaifl;
-aaifm;
-aaifn;
-aaifo;
-aaifp;
-aaifq;
-aaifr;
-aaifs;
-aaift;
-aaifu;
-aaifv;
-aaifw;
-aaifx;
-aaify;
-aaifz;
-aaiga;
-aaigb;
-aaigc;
-aaigd;
-aaige;
-aaigf;
-aaigg;
-aaigh;
-aaigi;
-aaigj;
-aaigk;
-aaigl;
-aaigm;
-aaign;
-aaigo;
-aaigp;
-aaigq;
-aaigr;
-aaigs;
-aaigt;
-aaigu;
-aaigv;
-aaigw;
-aaigx;
-aaigy;
-aaigz;
-aaiha;
-aaihb;
-aaihc;
-aaihd;
-aaihe;
-aaihf;
-aaihg;
-aaihh;
-aaihi;
-aaihj;
-aaihk;
-aaihl;
-aaihm;
-aaihn;
-aaiho;
-aaihp;
-aaihq;
-aaihr;
-aaihs;
-aaiht;
-aaihu;
-aaihv;
-aaihw;
-aaihx;
-aaihy;
-aaihz;
-aaiia;
-aaiib;
-aaiic;
-aaiid;
-aaiie;
-aaiif;
-aaiig;
-aaiih;
-aaiii;
-aaiij;
-aaiik;
-aaiil;
-aaiim;
-aaiin;
-aaiio;
-aaiip;
-aaiiq;
-aaiir;
-aaiis;
-aaiit;
-aaiiu;
-aaiiv;
-aaiiw;
-aaiix;
-aaiiy;
-aaiiz;
-aaija;
-aaijb;
-aaijc;
-aaijd;
-aaije;
-aaijf;
-aaijg;
-aaijh;
-aaiji;
-aaijj;
-aaijk;
-aaijl;
-aaijm;
-aaijn;
-aaijo;
-aaijp;
-aaijq;
-aaijr;
-aaijs;
-aaijt;
-aaiju;
-aaijv;
-aaijw;
-aaijx;
-aaijy;
-aaijz;
-aaika;
-aaikb;
-aaikc;
-aaikd;
-aaike;
-aaikf;
-aaikg;
-aaikh;
-aaiki;
-aaikj;
-aaikk;
-aaikl;
-aaikm;
-aaikn;
-aaiko;
-aaikp;
-aaikq;
-aaikr;
-aaiks;
-aaikt;
-aaiku;
-aaikv;
-aaikw;
-aaikx;
-aaiky;
-aaikz;
-aaila;
-aailb;
-aailc;
-aaild;
-aaile;
-aailf;
-aailg;
-aailh;
-aaili;
-aailj;
-aailk;
-aaill;
-aailm;
-aailn;
-aailo;
-aailp;
-aailq;
-aailr;
-aails;
-aailt;
-aailu;
-aailv;
-aailw;
-aailx;
-aaily;
-aailz;
-aaima;
-aaimb;
-aaimc;
-aaimd;
-aaime;
-aaimf;
-aaimg;
-aaimh;
-aaimi;
-aaimj;
-aaimk;
-aaiml;
-aaimm;
-aaimn;
-aaimo;
-aaimp;
-aaimq;
-aaimr;
-aaims;
-aaimt;
-aaimu;
-aaimv;
-aaimw;
-aaimx;
-aaimy;
-aaimz;
-aaina;
-aainb;
-aainc;
-aaind;
-aaine;
-aainf;
-aaing;
-aainh;
-aaini;
-aainj;
-aaink;
-aainl;
-aainm;
-aainn;
-aaino;
-aainp;
-aainq;
-aainr;
-aains;
-aaint;
-aainu;
-aainv;
-aainw;
-aainx;
-aainy;
-aainz;
-aaioa;
-aaiob;
-aaioc;
-aaiod;
-aaioe;
-aaiof;
-aaiog;
-aaioh;
-aaioi;
-aaioj;
-aaiok;
-aaiol;
-aaiom;
-aaion;
-aaioo;
-aaiop;
-aaioq;
-aaior;
-aaios;
-aaiot;
-aaiou;
-aaiov;
-aaiow;
-aaiox;
-aaioy;
-aaioz;
-aaipa;
-aaipb;
-aaipc;
-aaipd;
-aaipe;
-aaipf;
-aaipg;
-aaiph;
-aaipi;
-aaipj;
-aaipk;
-aaipl;
-aaipm;
-aaipn;
-aaipo;
-aaipp;
-aaipq;
-aaipr;
-aaips;
-aaipt;
-aaipu;
-aaipv;
-aaipw;
-aaipx;
-aaipy;
-aaipz;
-aaiqa;
-aaiqb;
-aaiqc;
-aaiqd;
-aaiqe;
-aaiqf;
-aaiqg;
-aaiqh;
-aaiqi;
-aaiqj;
-aaiqk;
-aaiql;
-aaiqm;
-aaiqn;
-aaiqo;
-aaiqp;
-aaiqq;
-aaiqr;
-aaiqs;
-aaiqt;
-aaiqu;
-aaiqv;
-aaiqw;
-aaiqx;
-aaiqy;
-aaiqz;
-aaira;
-aairb;
-aairc;
-aaird;
-aaire;
-aairf;
-aairg;
-aairh;
-aairi;
-aairj;
-aairk;
-aairl;
-aairm;
-aairn;
-aairo;
-aairp;
-aairq;
-aairr;
-aairs;
-aairt;
-aairu;
-aairv;
-aairw;
-aairx;
-aairy;
-aairz;
-aaisa;
-aaisb;
-aaisc;
-aaisd;
-aaise;
-aaisf;
-aaisg;
-aaish;
-aaisi;
-aaisj;
-aaisk;
-aaisl;
-aaism;
-aaisn;
-aaiso;
-aaisp;
-aaisq;
-aaisr;
-aaiss;
-aaist;
-aaisu;
-aaisv;
-aaisw;
-aaisx;
-aaisy;
-aaisz;
-aaita;
-aaitb;
-aaitc;
-aaitd;
-aaite;
-aaitf;
-aaitg;
-aaith;
-aaiti;
-aaitj;
-aaitk;
-aaitl;
-aaitm;
-aaitn;
-aaito;
-aaitp;
-aaitq;
-aaitr;
-aaits;
-aaitt;
-aaitu;
-aaitv;
-aaitw;
-aaitx;
-aaity;
-aaitz;
-aaiua;
-aaiub;
-aaiuc;
-aaiud;
-aaiue;
-aaiuf;
-aaiug;
-aaiuh;
-aaiui;
-aaiuj;
-aaiuk;
-aaiul;
-aaium;
-aaiun;
-aaiuo;
-aaiup;
-aaiuq;
-aaiur;
-aaius;
-aaiut;
-aaiuu;
-aaiuv;
-aaiuw;
-aaiux;
-aaiuy;
-aaiuz;
-aaiva;
-aaivb;
-aaivc;
-aaivd;
-aaive;
-aaivf;
-aaivg;
-aaivh;
-aaivi;
-aaivj;
-aaivk;
-aaivl;
-aaivm;
-aaivn;
-aaivo;
-aaivp;
-aaivq;
-aaivr;
-aaivs;
-aaivt;
-aaivu;
-aaivv;
-aaivw;
-aaivx;
-aaivy;
-aaivz;
-aaiwa;
-aaiwb;
-aaiwc;
-aaiwd;
-aaiwe;
-aaiwf;
-aaiwg;
-aaiwh;
-aaiwi;
-aaiwj;
-aaiwk;
-aaiwl;
-aaiwm;
-aaiwn;
-aaiwo;
-aaiwp;
-aaiwq;
-aaiwr;
-aaiws;
-aaiwt;
-aaiwu;
-aaiwv;
-aaiww;
-aaiwx;
-aaiwy;
-aaiwz;
-aaixa;
-aaixb;
-aaixc;
-aaixd;
-aaixe;
-aaixf;
-aaixg;
-aaixh;
-aaixi;
-aaixj;
-aaixk;
-aaixl;
-aaixm;
-aaixn;
-aaixo;
-aaixp;
-aaixq;
-aaixr;
-aaixs;
-aaixt;
-aaixu;
-aaixv;
-aaixw;
-aaixx;
-aaixy;
-aaixz;
-aaiya;
-aaiyb;
-aaiyc;
-aaiyd;
-aaiye;
-aaiyf;
-aaiyg;
-aaiyh;
-aaiyi;
-aaiyj;
-aaiyk;
-aaiyl;
-aaiym;
-aaiyn;
-aaiyo;
-aaiyp;
-aaiyq;
-aaiyr;
-aaiys;
-aaiyt;
-aaiyu;
-aaiyv;
-aaiyw;
-aaiyx;
-aaiyy;
-aaiyz;
-aaiza;
-aaizb;
-aaizc;
-aaizd;
-aaize;
-aaizf;
-aaizg;
-aaizh;
-aaizi;
-aaizj;
-aaizk;
-aaizl;
-aaizm;
-aaizn;
-aaizo;
-aaizp;
-aaizq;
-aaizr;
-aaizs;
-aaizt;
-aaizu;
-aaizv;
-aaizw;
-aaizx;
-aaizy;
-aaizz;
-aajaa;
-aajab;
-aajac;
-aajad;
-aajae;
-aajaf;
-aajag;
-aajah;
-aajai;
-aajaj;
-aajak;
-aajal;
-aajam;
-aajan;
-aajao;
-aajap;
-aajaq;
-aajar;
-aajas;
-aajat;
-aajau;
-aajav;
-aajaw;
-aajax;
-aajay;
-aajaz;
-aajba;
-aajbb;
-aajbc;
-aajbd;
-aajbe;
-aajbf;
-aajbg;
-aajbh;
-aajbi;
-aajbj;
-aajbk;
-aajbl;
-aajbm;
-aajbn;
-aajbo;
-aajbp;
-aajbq;
-aajbr;
-aajbs;
-aajbt;
-aajbu;
-aajbv;
-aajbw;
-aajbx;
-aajby;
-aajbz;
-aajca;
-aajcb;
-aajcc;
-aajcd;
-aajce;
-aajcf;
-aajcg;
-aajch;
-aajci;
-aajcj;
-aajck;
-aajcl;
-aajcm;
-aajcn;
-aajco;
-aajcp;
-aajcq;
-aajcr;
-aajcs;
-aajct;
-aajcu;
-aajcv;
-aajcw;
-aajcx;
-aajcy;
-aajcz;
-aajda;
-aajdb;
-aajdc;
-aajdd;
-aajde;
-aajdf;
-aajdg;
-aajdh;
-aajdi;
-aajdj;
-aajdk;
-aajdl;
-aajdm;
-aajdn;
-aajdo;
-aajdp;
-aajdq;
-aajdr;
-aajds;
-aajdt;
-aajdu;
-aajdv;
-aajdw;
-aajdx;
-aajdy;
-aajdz;
-aajea;
-aajeb;
-aajec;
-aajed;
-aajee;
-aajef;
-aajeg;
-aajeh;
-aajei;
-aajej;
-aajek;
-aajel;
-aajem;
-aajen;
-aajeo;
-aajep;
-aajeq;
-aajer;
-aajes;
-aajet;
-aajeu;
-aajev;
-aajew;
-aajex;
-aajey;
-aajez;
-aajfa;
-aajfb;
-aajfc;
-aajfd;
-aajfe;
-aajff;
-aajfg;
-aajfh;
-aajfi;
-aajfj;
-aajfk;
-aajfl;
-aajfm;
-aajfn;
-aajfo;
-aajfp;
-aajfq;
-aajfr;
-aajfs;
-aajft;
-aajfu;
-aajfv;
-aajfw;
-aajfx;
-aajfy;
-aajfz;
-aajga;
-aajgb;
-aajgc;
-aajgd;
-aajge;
-aajgf;
-aajgg;
-aajgh;
-aajgi;
-aajgj;
-aajgk;
-aajgl;
-aajgm;
-aajgn;
-aajgo;
-aajgp;
-aajgq;
-aajgr;
-aajgs;
-aajgt;
-aajgu;
-aajgv;
-aajgw;
-aajgx;
-aajgy;
-aajgz;
-aajha;
-aajhb;
-aajhc;
-aajhd;
-aajhe;
-aajhf;
-aajhg;
-aajhh;
-aajhi;
-aajhj;
-aajhk;
-aajhl;
-aajhm;
-aajhn;
-aajho;
-aajhp;
-aajhq;
-aajhr;
-aajhs;
-aajht;
-aajhu;
-aajhv;
-aajhw;
-aajhx;
-aajhy;
-aajhz;
-aajia;
-aajib;
-aajic;
-aajid;
-aajie;
-aajif;
-aajig;
-aajih;
-aajii;
-aajij;
-aajik;
-aajil;
-aajim;
-aajin;
-aajio;
-aajip;
-aajiq;
-aajir;
-aajis;
-aajit;
-aajiu;
-aajiv;
-aajiw;
-aajix;
-aajiy;
-aajiz;
-aajja;
-aajjb;
-aajjc;
-aajjd;
-aajje;
-aajjf;
-aajjg;
-aajjh;
-aajji;
-aajjj;
-aajjk;
-aajjl;
-aajjm;
-aajjn;
-aajjo;
-aajjp;
-aajjq;
-aajjr;
-aajjs;
-aajjt;
-aajju;
-aajjv;
-aajjw;
-aajjx;
-aajjy;
-aajjz;
-aajka;
-aajkb;
-aajkc;
-aajkd;
-aajke;
-aajkf;
-aajkg;
-aajkh;
-aajki;
-aajkj;
-aajkk;
-aajkl;
-aajkm;
-aajkn;
-aajko;
-aajkp;
-aajkq;
-aajkr;
-aajks;
-aajkt;
-aajku;
-aajkv;
-aajkw;
-aajkx;
-aajky;
-aajkz;
-aajla;
-aajlb;
-aajlc;
-aajld;
-aajle;
-aajlf;
-aajlg;
-aajlh;
-aajli;
-aajlj;
-aajlk;
-aajll;
-aajlm;
-aajln;
-aajlo;
-aajlp;
-aajlq;
-aajlr;
-aajls;
-aajlt;
-aajlu;
-aajlv;
-aajlw;
-aajlx;
-aajly;
-aajlz;
-aajma;
-aajmb;
-aajmc;
-aajmd;
-aajme;
-aajmf;
-aajmg;
-aajmh;
-aajmi;
-aajmj;
-aajmk;
-aajml;
-aajmm;
-aajmn;
-aajmo;
-aajmp;
-aajmq;
-aajmr;
-aajms;
-aajmt;
-aajmu;
-aajmv;
-aajmw;
-aajmx;
-aajmy;
-aajmz;
-aajna;
-aajnb;
-aajnc;
-aajnd;
-aajne;
-aajnf;
-aajng;
-aajnh;
-aajni;
-aajnj;
-aajnk;
-aajnl;
-aajnm;
-aajnn;
-aajno;
-aajnp;
-aajnq;
-aajnr;
-aajns;
-aajnt;
-aajnu;
-aajnv;
-aajnw;
-aajnx;
-aajny;
-aajnz;
-aajoa;
-aajob;
-aajoc;
-aajod;
-aajoe;
-aajof;
-aajog;
-aajoh;
-aajoi;
-aajoj;
-aajok;
-aajol;
-aajom;
-aajon;
-aajoo;
-aajop;
-aajoq;
-aajor;
-aajos;
-aajot;
-aajou;
-aajov;
-aajow;
-aajox;
-aajoy;
-aajoz;
-aajpa;
-aajpb;
-aajpc;
-aajpd;
-aajpe;
-aajpf;
-aajpg;
-aajph;
-aajpi;
-aajpj;
-aajpk;
-aajpl;
-aajpm;
-aajpn;
-aajpo;
-aajpp;
-aajpq;
-aajpr;
-aajps;
-aajpt;
-aajpu;
-aajpv;
-aajpw;
-aajpx;
-aajpy;
-aajpz;
-aajqa;
-aajqb;
-aajqc;
-aajqd;
-aajqe;
-aajqf;
-aajqg;
-aajqh;
-aajqi;
-aajqj;
-aajqk;
-aajql;
-aajqm;
-aajqn;
-aajqo;
-aajqp;
-aajqq;
-aajqr;
-aajqs;
-aajqt;
-aajqu;
-aajqv;
-aajqw;
-aajqx;
-aajqy;
-aajqz;
-aajra;
-aajrb;
-aajrc;
-aajrd;
-aajre;
-aajrf;
-aajrg;
-aajrh;
-aajri;
-aajrj;
-aajrk;
-aajrl;
-aajrm;
-aajrn;
-aajro;
-aajrp;
-aajrq;
-aajrr;
-aajrs;
-aajrt;
-aajru;
-aajrv;
-aajrw;
-aajrx;
-aajry;
-aajrz;
-aajsa;
-aajsb;
-aajsc;
-aajsd;
-aajse;
-aajsf;
-aajsg;
-aajsh;
-aajsi;
-aajsj;
-aajsk;
-aajsl;
-aajsm;
-aajsn;
-aajso;
-aajsp;
-aajsq;
-aajsr;
-aajss;
-aajst;
-aajsu;
-aajsv;
-aajsw;
-aajsx;
-aajsy;
-aajsz;
-aajta;
-aajtb;
-aajtc;
-aajtd;
-aajte;
-aajtf;
-aajtg;
-aajth;
-aajti;
-aajtj;
-aajtk;
-aajtl;
-aajtm;
-aajtn;
-aajto;
-aajtp;
-aajtq;
-aajtr;
-aajts;
-aajtt;
-aajtu;
-aajtv;
-aajtw;
-aajtx;
-aajty;
-aajtz;
-aajua;
-aajub;
-aajuc;
-aajud;
-aajue;
-aajuf;
-aajug;
-aajuh;
-aajui;
-aajuj;
-aajuk;
-aajul;
-aajum;
-aajun;
-aajuo;
-aajup;
-aajuq;
-aajur;
-aajus;
-aajut;
-aajuu;
-aajuv;
-aajuw;
-aajux;
-aajuy;
-aajuz;
-aajva;
-aajvb;
-aajvc;
-aajvd;
-aajve;
-aajvf;
-aajvg;
-aajvh;
-aajvi;
-aajvj;
-aajvk;
-aajvl;
-aajvm;
-aajvn;
-aajvo;
-aajvp;
-aajvq;
-aajvr;
-aajvs;
-aajvt;
-aajvu;
-aajvv;
-aajvw;
-aajvx;
-aajvy;
-aajvz;
-aajwa;
-aajwb;
-aajwc;
-aajwd;
-aajwe;
-aajwf;
-aajwg;
-aajwh;
-aajwi;
-aajwj;
-aajwk;
-aajwl;
-aajwm;
-aajwn;
-aajwo;
-aajwp;
-aajwq;
-aajwr;
-aajws;
-aajwt;
-aajwu;
-aajwv;
-aajww;
-aajwx;
-aajwy;
-aajwz;
-aajxa;
-aajxb;
-aajxc;
-aajxd;
-aajxe;
-aajxf;
-aajxg;
-aajxh;
-aajxi;
-aajxj;
-aajxk;
-aajxl;
-aajxm;
-aajxn;
-aajxo;
-aajxp;
-aajxq;
-aajxr;
-aajxs;
-aajxt;
-aajxu;
-aajxv;
-aajxw;
-aajxx;
-aajxy;
-aajxz;
-aajya;
-aajyb;
-aajyc;
-aajyd;
-aajye;
-aajyf;
-aajyg;
-aajyh;
-aajyi;
-aajyj;
-aajyk;
-aajyl;
-aajym;
-aajyn;
-aajyo;
-aajyp;
-aajyq;
-aajyr;
-aajys;
-aajyt;
-aajyu;
-aajyv;
-aajyw;
-aajyx;
-aajyy;
-aajyz;
-aajza;
-aajzb;
-aajzc;
-aajzd;
-aajze;
-aajzf;
-aajzg;
-aajzh;
-aajzi;
-aajzj;
-aajzk;
-aajzl;
-aajzm;
-aajzn;
-aajzo;
-aajzp;
-aajzq;
-aajzr;
-aajzs;
-aajzt;
-aajzu;
-aajzv;
-aajzw;
-aajzx;
-aajzy;
-aajzz;
-aakaa;
-aakab;
-aakac;
-aakad;
-aakae;
-aakaf;
-aakag;
-aakah;
-aakai;
-aakaj;
-aakak;
-aakal;
-aakam;
-aakan;
-aakao;
-aakap;
-aakaq;
-aakar;
-aakas;
-aakat;
-aakau;
-aakav;
-aakaw;
-aakax;
-aakay;
-aakaz;
-aakba;
-aakbb;
-aakbc;
-aakbd;
-aakbe;
-aakbf;
-aakbg;
-aakbh;
-aakbi;
-aakbj;
-aakbk;
-aakbl;
-aakbm;
-aakbn;
-aakbo;
-aakbp;
-aakbq;
-aakbr;
-aakbs;
-aakbt;
-aakbu;
-aakbv;
-aakbw;
-aakbx;
-aakby;
-aakbz;
-aakca;
-aakcb;
-aakcc;
-aakcd;
-aakce;
-aakcf;
-aakcg;
-aakch;
-aakci;
-aakcj;
-aakck;
-aakcl;
-aakcm;
-aakcn;
-aakco;
-aakcp;
-aakcq;
-aakcr;
-aakcs;
-aakct;
-aakcu;
-aakcv;
-aakcw;
-aakcx;
-aakcy;
-aakcz;
-aakda;
-aakdb;
-aakdc;
-aakdd;
-aakde;
-aakdf;
-aakdg;
-aakdh;
-aakdi;
-aakdj;
-aakdk;
-aakdl;
-aakdm;
-aakdn;
-aakdo;
-aakdp;
-aakdq;
-aakdr;
-aakds;
-aakdt;
-aakdu;
-aakdv;
-aakdw;
-aakdx;
-aakdy;
-aakdz;
-aakea;
-aakeb;
-aakec;
-aaked;
-aakee;
-aakef;
-aakeg;
-aakeh;
-aakei;
-aakej;
-aakek;
-aakel;
-aakem;
-aaken;
-aakeo;
-aakep;
-aakeq;
-aaker;
-aakes;
-aaket;
-aakeu;
-aakev;
-aakew;
-aakex;
-aakey;
-aakez;
-aakfa;
-aakfb;
-aakfc;
-aakfd;
-aakfe;
-aakff;
-aakfg;
-aakfh;
-aakfi;
-aakfj;
-aakfk;
-aakfl;
-aakfm;
-aakfn;
-aakfo;
-aakfp;
-aakfq;
-aakfr;
-aakfs;
-aakft;
-aakfu;
-aakfv;
-aakfw;
-aakfx;
-aakfy;
-aakfz;
-aakga;
-aakgb;
-aakgc;
-aakgd;
-aakge;
-aakgf;
-aakgg;
-aakgh;
-aakgi;
-aakgj;
-aakgk;
-aakgl;
-aakgm;
-aakgn;
-aakgo;
-aakgp;
-aakgq;
-aakgr;
-aakgs;
-aakgt;
-aakgu;
-aakgv;
-aakgw;
-aakgx;
-aakgy;
-aakgz;
-aakha;
-aakhb;
-aakhc;
-aakhd;
-aakhe;
-aakhf;
-aakhg;
-aakhh;
-aakhi;
-aakhj;
-aakhk;
-aakhl;
-aakhm;
-aakhn;
-aakho;
-aakhp;
-aakhq;
-aakhr;
-aakhs;
-aakht;
-aakhu;
-aakhv;
-aakhw;
-aakhx;
-aakhy;
-aakhz;
-aakia;
-aakib;
-aakic;
-aakid;
-aakie;
-aakif;
-aakig;
-aakih;
-aakii;
-aakij;
-aakik;
-aakil;
-aakim;
-aakin;
-aakio;
-aakip;
-aakiq;
-aakir;
-aakis;
-aakit;
-aakiu;
-aakiv;
-aakiw;
-aakix;
-aakiy;
-aakiz;
-aakja;
-aakjb;
-aakjc;
-aakjd;
-aakje;
-aakjf;
-aakjg;
-aakjh;
-aakji;
-aakjj;
-aakjk;
-aakjl;
-aakjm;
-aakjn;
-aakjo;
-aakjp;
-aakjq;
-aakjr;
-aakjs;
-aakjt;
-aakju;
-aakjv;
-aakjw;
-aakjx;
-aakjy;
-aakjz;
-aakka;
-aakkb;
-aakkc;
-aakkd;
-aakke;
-aakkf;
-aakkg;
-aakkh;
-aakki;
-aakkj;
-aakkk;
-aakkl;
-aakkm;
-aakkn;
-aakko;
-aakkp;
-aakkq;
-aakkr;
-aakks;
-aakkt;
-aakku;
-aakkv;
-aakkw;
-aakkx;
-aakky;
-aakkz;
-aakla;
-aaklb;
-aaklc;
-aakld;
-aakle;
-aaklf;
-aaklg;
-aaklh;
-aakli;
-aaklj;
-aaklk;
-aakll;
-aaklm;
-aakln;
-aaklo;
-aaklp;
-aaklq;
-aaklr;
-aakls;
-aaklt;
-aaklu;
-aaklv;
-aaklw;
-aaklx;
-aakly;
-aaklz;
-aakma;
-aakmb;
-aakmc;
-aakmd;
-aakme;
-aakmf;
-aakmg;
-aakmh;
-aakmi;
-aakmj;
-aakmk;
-aakml;
-aakmm;
-aakmn;
-aakmo;
-aakmp;
-aakmq;
-aakmr;
-aakms;
-aakmt;
-aakmu;
-aakmv;
-aakmw;
-aakmx;
-aakmy;
-aakmz;
-aakna;
-aaknb;
-aaknc;
-aaknd;
-aakne;
-aaknf;
-aakng;
-aaknh;
-aakni;
-aaknj;
-aaknk;
-aaknl;
-aaknm;
-aaknn;
-aakno;
-aaknp;
-aaknq;
-aaknr;
-aakns;
-aaknt;
-aaknu;
-aaknv;
-aaknw;
-aaknx;
-aakny;
-aaknz;
-aakoa;
-aakob;
-aakoc;
-aakod;
-aakoe;
-aakof;
-aakog;
-aakoh;
-aakoi;
-aakoj;
-aakok;
-aakol;
-aakom;
-aakon;
-aakoo;
-aakop;
-aakoq;
-aakor;
-aakos;
-aakot;
-aakou;
-aakov;
-aakow;
-aakox;
-aakoy;
-aakoz;
-aakpa;
-aakpb;
-aakpc;
-aakpd;
-aakpe;
-aakpf;
-aakpg;
-aakph;
-aakpi;
-aakpj;
-aakpk;
-aakpl;
-aakpm;
-aakpn;
-aakpo;
-aakpp;
-aakpq;
-aakpr;
-aakps;
-aakpt;
-aakpu;
-aakpv;
-aakpw;
-aakpx;
-aakpy;
-aakpz;
-aakqa;
-aakqb;
-aakqc;
-aakqd;
-aakqe;
-aakqf;
-aakqg;
-aakqh;
-aakqi;
-aakqj;
-aakqk;
-aakql;
-aakqm;
-aakqn;
-aakqo;
-aakqp;
-aakqq;
-aakqr;
-aakqs;
-aakqt;
-aakqu;
-aakqv;
-aakqw;
-aakqx;
-aakqy;
-aakqz;
-aakra;
-aakrb;
-aakrc;
-aakrd;
-aakre;
-aakrf;
-aakrg;
-aakrh;
-aakri;
-aakrj;
-aakrk;
-aakrl;
-aakrm;
-aakrn;
-aakro;
-aakrp;
-aakrq;
-aakrr;
-aakrs;
-aakrt;
-aakru;
-aakrv;
-aakrw;
-aakrx;
-aakry;
-aakrz;
-aaksa;
-aaksb;
-aaksc;
-aaksd;
-aakse;
-aaksf;
-aaksg;
-aaksh;
-aaksi;
-aaksj;
-aaksk;
-aaksl;
-aaksm;
-aaksn;
-aakso;
-aaksp;
-aaksq;
-aaksr;
-aakss;
-aakst;
-aaksu;
-aaksv;
-aaksw;
-aaksx;
-aaksy;
-aaksz;
-aakta;
-aaktb;
-aaktc;
-aaktd;
-aakte;
-aaktf;
-aaktg;
-aakth;
-aakti;
-aaktj;
-aaktk;
-aaktl;
-aaktm;
-aaktn;
-aakto;
-aaktp;
-aaktq;
-aaktr;
-aakts;
-aaktt;
-aaktu;
-aaktv;
-aaktw;
-aaktx;
-aakty;
-aaktz;
-aakua;
-aakub;
-aakuc;
-aakud;
-aakue;
-aakuf;
-aakug;
-aakuh;
-aakui;
-aakuj;
-aakuk;
-aakul;
-aakum;
-aakun;
-aakuo;
-aakup;
-aakuq;
-aakur;
-aakus;
-aakut;
-aakuu;
-aakuv;
-aakuw;
-aakux;
-aakuy;
-aakuz;
-aakva;
-aakvb;
-aakvc;
-aakvd;
-aakve;
-aakvf;
-aakvg;
-aakvh;
-aakvi;
-aakvj;
-aakvk;
-aakvl;
-aakvm;
-aakvn;
-aakvo;
-aakvp;
-aakvq;
-aakvr;
-aakvs;
-aakvt;
-aakvu;
-aakvv;
-aakvw;
-aakvx;
-aakvy;
-aakvz;
-aakwa;
-aakwb;
-aakwc;
-aakwd;
-aakwe;
-aakwf;
-aakwg;
-aakwh;
-aakwi;
-aakwj;
-aakwk;
-aakwl;
-aakwm;
-aakwn;
-aakwo;
-aakwp;
-aakwq;
-aakwr;
-aakws;
-aakwt;
-aakwu;
-aakwv;
-aakww;
-aakwx;
-aakwy;
-aakwz;
-aakxa;
-aakxb;
-aakxc;
-aakxd;
-aakxe;
-aakxf;
-aakxg;
-aakxh;
-aakxi;
-aakxj;
-aakxk;
-aakxl;
-aakxm;
-aakxn;
-aakxo;
-aakxp;
-aakxq;
-aakxr;
-aakxs;
-aakxt;
-aakxu;
-aakxv;
-aakxw;
-aakxx;
-aakxy;
-aakxz;
-aakya;
-aakyb;
-aakyc;
-aakyd;
-aakye;
-aakyf;
-aakyg;
-aakyh;
-aakyi;
-aakyj;
-aakyk;
-aakyl;
-aakym;
-aakyn;
-aakyo;
-aakyp;
-aakyq;
-aakyr;
-aakys;
-aakyt;
-aakyu;
-aakyv;
-aakyw;
-aakyx;
-aakyy;
-aakyz;
-aakza;
-aakzb;
-aakzc;
-aakzd;
-aakze;
-aakzf;
-aakzg;
-aakzh;
-aakzi;
-aakzj;
-aakzk;
-aakzl;
-aakzm;
-aakzn;
-aakzo;
-aakzp;
-aakzq;
-aakzr;
-aakzs;
-aakzt;
-aakzu;
-aakzv;
-aakzw;
-aakzx;
-aakzy;
-aakzz;
-aalaa;
-aalab;
-aalac;
-aalad;
-aalae;
-aalaf;
-aalag;
-aalah;
-aalai;
-aalaj;
-aalak;
-aalal;
-aalam;
-aalan;
-aalao;
-aalap;
-aalaq;
-aalar;
-aalas;
-aalat;
-aalau;
-aalav;
-aalaw;
-aalax;
-aalay;
-aalaz;
-aalba;
-aalbb;
-aalbc;
-aalbd;
-aalbe;
-aalbf;
-aalbg;
-aalbh;
-aalbi;
-aalbj;
-aalbk;
-aalbl;
-aalbm;
-aalbn;
-aalbo;
-aalbp;
-aalbq;
-aalbr;
-aalbs;
-aalbt;
-aalbu;
-aalbv;
-aalbw;
-aalbx;
-aalby;
-aalbz;
-aalca;
-aalcb;
-aalcc;
-aalcd;
-aalce;
-aalcf;
-aalcg;
-aalch;
-aalci;
-aalcj;
-aalck;
-aalcl;
-aalcm;
-aalcn;
-aalco;
-aalcp;
-aalcq;
-aalcr;
-aalcs;
-aalct;
-aalcu;
-aalcv;
-aalcw;
-aalcx;
-aalcy;
-aalcz;
-aalda;
-aaldb;
-aaldc;
-aaldd;
-aalde;
-aaldf;
-aaldg;
-aaldh;
-aaldi;
-aaldj;
-aaldk;
-aaldl;
-aaldm;
-aaldn;
-aaldo;
-aaldp;
-aaldq;
-aaldr;
-aalds;
-aaldt;
-aaldu;
-aaldv;
-aaldw;
-aaldx;
-aaldy;
-aaldz;
-aalea;
-aaleb;
-aalec;
-aaled;
-aalee;
-aalef;
-aaleg;
-aaleh;
-aalei;
-aalej;
-aalek;
-aalel;
-aalem;
-aalen;
-aaleo;
-aalep;
-aaleq;
-aaler;
-aales;
-aalet;
-aaleu;
-aalev;
-aalew;
-aalex;
-aaley;
-aalez;
-aalfa;
-aalfb;
-aalfc;
-aalfd;
-aalfe;
-aalff;
-aalfg;
-aalfh;
-aalfi;
-aalfj;
-aalfk;
-aalfl;
-aalfm;
-aalfn;
-aalfo;
-aalfp;
-aalfq;
-aalfr;
-aalfs;
-aalft;
-aalfu;
-aalfv;
-aalfw;
-aalfx;
-aalfy;
-aalfz;
-aalga;
-aalgb;
-aalgc;
-aalgd;
-aalge;
-aalgf;
-aalgg;
-aalgh;
-aalgi;
-aalgj;
-aalgk;
-aalgl;
-aalgm;
-aalgn;
-aalgo;
-aalgp;
-aalgq;
-aalgr;
-aalgs;
-aalgt;
-aalgu;
-aalgv;
-aalgw;
-aalgx;
-aalgy;
-aalgz;
-aalha;
-aalhb;
-aalhc;
-aalhd;
-aalhe;
-aalhf;
-aalhg;
-aalhh;
-aalhi;
-aalhj;
-aalhk;
-aalhl;
-aalhm;
-aalhn;
-aalho;
-aalhp;
-aalhq;
-aalhr;
-aalhs;
-aalht;
-aalhu;
-aalhv;
-aalhw;
-aalhx;
-aalhy;
-aalhz;
-aalia;
-aalib;
-aalic;
-aalid;
-aalie;
-aalif;
-aalig;
-aalih;
-aalii;
-aalij;
-aalik;
-aalil;
-aalim;
-aalin;
-aalio;
-aalip;
-aaliq;
-aalir;
-aalis;
-aalit;
-aaliu;
-aaliv;
-aaliw;
-aalix;
-aaliy;
-aaliz;
-aalja;
-aaljb;
-aaljc;
-aaljd;
-aalje;
-aaljf;
-aaljg;
-aaljh;
-aalji;
-aaljj;
-aaljk;
-aaljl;
-aaljm;
-aaljn;
-aaljo;
-aaljp;
-aaljq;
-aaljr;
-aaljs;
-aaljt;
-aalju;
-aaljv;
-aaljw;
-aaljx;
-aaljy;
-aaljz;
-aalka;
-aalkb;
-aalkc;
-aalkd;
-aalke;
-aalkf;
-aalkg;
-aalkh;
-aalki;
-aalkj;
-aalkk;
-aalkl;
-aalkm;
-aalkn;
-aalko;
-aalkp;
-aalkq;
-aalkr;
-aalks;
-aalkt;
-aalku;
-aalkv;
-aalkw;
-aalkx;
-aalky;
-aalkz;
-aalla;
-aallb;
-aallc;
-aalld;
-aalle;
-aallf;
-aallg;
-aallh;
-aalli;
-aallj;
-aallk;
-aalll;
-aallm;
-aalln;
-aallo;
-aallp;
-aallq;
-aallr;
-aalls;
-aallt;
-aallu;
-aallv;
-aallw;
-aallx;
-aally;
-aallz;
-aalma;
-aalmb;
-aalmc;
-aalmd;
-aalme;
-aalmf;
-aalmg;
-aalmh;
-aalmi;
-aalmj;
-aalmk;
-aalml;
-aalmm;
-aalmn;
-aalmo;
-aalmp;
-aalmq;
-aalmr;
-aalms;
-aalmt;
-aalmu;
-aalmv;
-aalmw;
-aalmx;
-aalmy;
-aalmz;
-aalna;
-aalnb;
-aalnc;
-aalnd;
-aalne;
-aalnf;
-aalng;
-aalnh;
-aalni;
-aalnj;
-aalnk;
-aalnl;
-aalnm;
-aalnn;
-aalno;
-aalnp;
-aalnq;
-aalnr;
-aalns;
-aalnt;
-aalnu;
-aalnv;
-aalnw;
-aalnx;
-aalny;
-aalnz;
-aaloa;
-aalob;
-aaloc;
-aalod;
-aaloe;
-aalof;
-aalog;
-aaloh;
-aaloi;
-aaloj;
-aalok;
-aalol;
-aalom;
-aalon;
-aaloo;
-aalop;
-aaloq;
-aalor;
-aalos;
-aalot;
-aalou;
-aalov;
-aalow;
-aalox;
-aaloy;
-aaloz;
-aalpa;
-aalpb;
-aalpc;
-aalpd;
-aalpe;
-aalpf;
-aalpg;
-aalph;
-aalpi;
-aalpj;
-aalpk;
-aalpl;
-aalpm;
-aalpn;
-aalpo;
-aalpp;
-aalpq;
-aalpr;
-aalps;
-aalpt;
-aalpu;
-aalpv;
-aalpw;
-aalpx;
-aalpy;
-aalpz;
-aalqa;
-aalqb;
-aalqc;
-aalqd;
-aalqe;
-aalqf;
-aalqg;
-aalqh;
-aalqi;
-aalqj;
-aalqk;
-aalql;
-aalqm;
-aalqn;
-aalqo;
-aalqp;
-aalqq;
-aalqr;
-aalqs;
-aalqt;
-aalqu;
-aalqv;
-aalqw;
-aalqx;
-aalqy;
-aalqz;
-aalra;
-aalrb;
-aalrc;
-aalrd;
-aalre;
-aalrf;
-aalrg;
-aalrh;
-aalri;
-aalrj;
-aalrk;
-aalrl;
-aalrm;
-aalrn;
-aalro;
-aalrp;
-aalrq;
-aalrr;
-aalrs;
-aalrt;
-aalru;
-aalrv;
-aalrw;
-aalrx;
-aalry;
-aalrz;
-aalsa;
-aalsb;
-aalsc;
-aalsd;
-aalse;
-aalsf;
-aalsg;
-aalsh;
-aalsi;
-aalsj;
-aalsk;
-aalsl;
-aalsm;
-aalsn;
-aalso;
-aalsp;
-aalsq;
-aalsr;
-aalss;
-aalst;
-aalsu;
-aalsv;
-aalsw;
-aalsx;
-aalsy;
-aalsz;
-aalta;
-aaltb;
-aaltc;
-aaltd;
-aalte;
-aaltf;
-aaltg;
-aalth;
-aalti;
-aaltj;
-aaltk;
-aaltl;
-aaltm;
-aaltn;
-aalto;
-aaltp;
-aaltq;
-aaltr;
-aalts;
-aaltt;
-aaltu;
-aaltv;
-aaltw;
-aaltx;
-aalty;
-aaltz;
-aalua;
-aalub;
-aaluc;
-aalud;
-aalue;
-aaluf;
-aalug;
-aaluh;
-aalui;
-aaluj;
-aaluk;
-aalul;
-aalum;
-aalun;
-aaluo;
-aalup;
-aaluq;
-aalur;
-aalus;
-aalut;
-aaluu;
-aaluv;
-aaluw;
-aalux;
-aaluy;
-aaluz;
-aalva;
-aalvb;
-aalvc;
-aalvd;
-aalve;
-aalvf;
-aalvg;
-aalvh;
-aalvi;
-aalvj;
-aalvk;
-aalvl;
-aalvm;
-aalvn;
-aalvo;
-aalvp;
-aalvq;
-aalvr;
-aalvs;
-aalvt;
-aalvu;
-aalvv;
-aalvw;
-aalvx;
-aalvy;
-aalvz;
-aalwa;
-aalwb;
-aalwc;
-aalwd;
-aalwe;
-aalwf;
-aalwg;
-aalwh;
-aalwi;
-aalwj;
-aalwk;
-aalwl;
-aalwm;
-aalwn;
-aalwo;
-aalwp;
-aalwq;
-aalwr;
-aalws;
-aalwt;
-aalwu;
-aalwv;
-aalww;
-aalwx;
-aalwy;
-aalwz;
-aalxa;
-aalxb;
-aalxc;
-aalxd;
-aalxe;
-aalxf;
-aalxg;
-aalxh;
-aalxi;
-aalxj;
-aalxk;
-aalxl;
-aalxm;
-aalxn;
-aalxo;
-aalxp;
-aalxq;
-aalxr;
-aalxs;
-aalxt;
-aalxu;
-aalxv;
-aalxw;
-aalxx;
-aalxy;
-aalxz;
-aalya;
-aalyb;
-aalyc;
-aalyd;
-aalye;
-aalyf;
-aalyg;
-aalyh;
-aalyi;
-aalyj;
-aalyk;
-aalyl;
-aalym;
-aalyn;
-aalyo;
-aalyp;
-aalyq;
-aalyr;
-aalys;
-aalyt;
-aalyu;
-aalyv;
-aalyw;
-aalyx;
-aalyy;
-aalyz;
-aalza;
-aalzb;
-aalzc;
-aalzd;
-aalze;
-aalzf;
-aalzg;
-aalzh;
-aalzi;
-aalzj;
-aalzk;
-aalzl;
-aalzm;
-aalzn;
-aalzo;
-aalzp;
-aalzq;
-aalzr;
-aalzs;
-aalzt;
-aalzu;
-aalzv;
-aalzw;
-aalzx;
-aalzy;
-aalzz;
-aamaa;
-aamab;
-aamac;
-aamad;
-aamae;
-aamaf;
-aamag;
-aamah;
-aamai;
-aamaj;
-aamak;
-aamal;
-aamam;
-aaman;
-aamao;
-aamap;
-aamaq;
-aamar;
-aamas;
-aamat;
-aamau;
-aamav;
-aamaw;
-aamax;
-aamay;
-aamaz;
-aamba;
-aambb;
-aambc;
-aambd;
-aambe;
-aambf;
-aambg;
-aambh;
-aambi;
-aambj;
-aambk;
-aambl;
-aambm;
-aambn;
-aambo;
-aambp;
-aambq;
-aambr;
-aambs;
-aambt;
-aambu;
-aambv;
-aambw;
-aambx;
-aamby;
-aambz;
-aamca;
-aamcb;
-aamcc;
-aamcd;
-aamce;
-aamcf;
-aamcg;
-aamch;
-aamci;
-aamcj;
-aamck;
-aamcl;
-aamcm;
-aamcn;
-aamco;
-aamcp;
-aamcq;
-aamcr;
-aamcs;
-aamct;
-aamcu;
-aamcv;
-aamcw;
-aamcx;
-aamcy;
-aamcz;
-aamda;
-aamdb;
-aamdc;
-aamdd;
-aamde;
-aamdf;
-aamdg;
-aamdh;
-aamdi;
-aamdj;
-aamdk;
-aamdl;
-aamdm;
-aamdn;
-aamdo;
-aamdp;
-aamdq;
-aamdr;
-aamds;
-aamdt;
-aamdu;
-aamdv;
-aamdw;
-aamdx;
-aamdy;
-aamdz;
-aamea;
-aameb;
-aamec;
-aamed;
-aamee;
-aamef;
-aameg;
-aameh;
-aamei;
-aamej;
-aamek;
-aamel;
-aamem;
-aamen;
-aameo;
-aamep;
-aameq;
-aamer;
-aames;
-aamet;
-aameu;
-aamev;
-aamew;
-aamex;
-aamey;
-aamez;
-aamfa;
-aamfb;
-aamfc;
-aamfd;
-aamfe;
-aamff;
-aamfg;
-aamfh;
-aamfi;
-aamfj;
-aamfk;
-aamfl;
-aamfm;
-aamfn;
-aamfo;
-aamfp;
-aamfq;
-aamfr;
-aamfs;
-aamft;
-aamfu;
-aamfv;
-aamfw;
-aamfx;
-aamfy;
-aamfz;
-aamga;
-aamgb;
-aamgc;
-aamgd;
-aamge;
-aamgf;
-aamgg;
-aamgh;
-aamgi;
-aamgj;
-aamgk;
-aamgl;
-aamgm;
-aamgn;
-aamgo;
-aamgp;
-aamgq;
-aamgr;
-aamgs;
-aamgt;
-aamgu;
-aamgv;
-aamgw;
-aamgx;
-aamgy;
-aamgz;
-aamha;
-aamhb;
-aamhc;
-aamhd;
-aamhe;
-aamhf;
-aamhg;
-aamhh;
-aamhi;
-aamhj;
-aamhk;
-aamhl;
-aamhm;
-aamhn;
-aamho;
-aamhp;
-aamhq;
-aamhr;
-aamhs;
-aamht;
-aamhu;
-aamhv;
-aamhw;
-aamhx;
-aamhy;
-aamhz;
-aamia;
-aamib;
-aamic;
-aamid;
-aamie;
-aamif;
-aamig;
-aamih;
-aamii;
-aamij;
-aamik;
-aamil;
-aamim;
-aamin;
-aamio;
-aamip;
-aamiq;
-aamir;
-aamis;
-aamit;
-aamiu;
-aamiv;
-aamiw;
-aamix;
-aamiy;
-aamiz;
-aamja;
-aamjb;
-aamjc;
-aamjd;
-aamje;
-aamjf;
-aamjg;
-aamjh;
-aamji;
-aamjj;
-aamjk;
-aamjl;
-aamjm;
-aamjn;
-aamjo;
-aamjp;
-aamjq;
-aamjr;
-aamjs;
-aamjt;
-aamju;
-aamjv;
-aamjw;
-aamjx;
-aamjy;
-aamjz;
-aamka;
-aamkb;
-aamkc;
-aamkd;
-aamke;
-aamkf;
-aamkg;
-aamkh;
-aamki;
-aamkj;
-aamkk;
-aamkl;
-aamkm;
-aamkn;
-aamko;
-aamkp;
-aamkq;
-aamkr;
-aamks;
-aamkt;
-aamku;
-aamkv;
-aamkw;
-aamkx;
-aamky;
-aamkz;
-aamla;
-aamlb;
-aamlc;
-aamld;
-aamle;
-aamlf;
-aamlg;
-aamlh;
-aamli;
-aamlj;
-aamlk;
-aamll;
-aamlm;
-aamln;
-aamlo;
-aamlp;
-aamlq;
-aamlr;
-aamls;
-aamlt;
-aamlu;
-aamlv;
-aamlw;
-aamlx;
-aamly;
-aamlz;
-aamma;
-aammb;
-aammc;
-aammd;
-aamme;
-aammf;
-aammg;
-aammh;
-aammi;
-aammj;
-aammk;
-aamml;
-aammm;
-aammn;
-aammo;
-aammp;
-aammq;
-aammr;
-aamms;
-aammt;
-aammu;
-aammv;
-aammw;
-aammx;
-aammy;
-aammz;
-aamna;
-aamnb;
-aamnc;
-aamnd;
-aamne;
-aamnf;
-aamng;
-aamnh;
-aamni;
-aamnj;
-aamnk;
-aamnl;
-aamnm;
-aamnn;
-aamno;
-aamnp;
-aamnq;
-aamnr;
-aamns;
-aamnt;
-aamnu;
-aamnv;
-aamnw;
-aamnx;
-aamny;
-aamnz;
-aamoa;
-aamob;
-aamoc;
-aamod;
-aamoe;
-aamof;
-aamog;
-aamoh;
-aamoi;
-aamoj;
-aamok;
-aamol;
-aamom;
-aamon;
-aamoo;
-aamop;
-aamoq;
-aamor;
-aamos;
-aamot;
-aamou;
-aamov;
-aamow;
-aamox;
-aamoy;
-aamoz;
-aampa;
-aampb;
-aampc;
-aampd;
-aampe;
-aampf;
-aampg;
-aamph;
-aampi;
-aampj;
-aampk;
-aampl;
-aampm;
-aampn;
-aampo;
-aampp;
-aampq;
-aampr;
-aamps;
-aampt;
-aampu;
-aampv;
-aampw;
-aampx;
-aampy;
-aampz;
-aamqa;
-aamqb;
-aamqc;
-aamqd;
-aamqe;
-aamqf;
-aamqg;
-aamqh;
-aamqi;
-aamqj;
-aamqk;
-aamql;
-aamqm;
-aamqn;
-aamqo;
-aamqp;
-aamqq;
-aamqr;
-aamqs;
-aamqt;
-aamqu;
-aamqv;
-aamqw;
-aamqx;
-aamqy;
-aamqz;
-aamra;
-aamrb;
-aamrc;
-aamrd;
-aamre;
-aamrf;
-aamrg;
-aamrh;
-aamri;
-aamrj;
-aamrk;
-aamrl;
-aamrm;
-aamrn;
-aamro;
-aamrp;
-aamrq;
-aamrr;
-aamrs;
-aamrt;
-aamru;
-aamrv;
-aamrw;
-aamrx;
-aamry;
-aamrz;
-aamsa;
-aamsb;
-aamsc;
-aamsd;
-aamse;
-aamsf;
-aamsg;
-aamsh;
-aamsi;
-aamsj;
-aamsk;
-aamsl;
-aamsm;
-aamsn;
-aamso;
-aamsp;
-aamsq;
-aamsr;
-aamss;
-aamst;
-aamsu;
-aamsv;
-aamsw;
-aamsx;
-aamsy;
-aamsz;
-aamta;
-aamtb;
-aamtc;
-aamtd;
-aamte;
-aamtf;
-aamtg;
-aamth;
-aamti;
-aamtj;
-aamtk;
-aamtl;
-aamtm;
-aamtn;
-aamto;
-aamtp;
-aamtq;
-aamtr;
-aamts;
-aamtt;
-aamtu;
-aamtv;
-aamtw;
-aamtx;
-aamty;
-aamtz;
-aamua;
-aamub;
-aamuc;
-aamud;
-aamue;
-aamuf;
-aamug;
-aamuh;
-aamui;
-aamuj;
-aamuk;
-aamul;
-aamum;
-aamun;
-aamuo;
-aamup;
-aamuq;
-aamur;
-aamus;
-aamut;
-aamuu;
-aamuv;
-aamuw;
-aamux;
-aamuy;
-aamuz;
-aamva;
-aamvb;
-aamvc;
-aamvd;
-aamve;
-aamvf;
-aamvg;
-aamvh;
-aamvi;
-aamvj;
-aamvk;
-aamvl;
-aamvm;
-aamvn;
-aamvo;
-aamvp;
-aamvq;
-aamvr;
-aamvs;
-aamvt;
-aamvu;
-aamvv;
-aamvw;
-aamvx;
-aamvy;
-aamvz;
-aamwa;
-aamwb;
-aamwc;
-aamwd;
-aamwe;
-aamwf;
-aamwg;
-aamwh;
-aamwi;
-aamwj;
-aamwk;
-aamwl;
-aamwm;
-aamwn;
-aamwo;
-aamwp;
-aamwq;
-aamwr;
-aamws;
-aamwt;
-aamwu;
-aamwv;
-aamww;
-aamwx;
-aamwy;
-aamwz;
-aamxa;
-aamxb;
-aamxc;
-aamxd;
-aamxe;
-aamxf;
-aamxg;
-aamxh;
-aamxi;
-aamxj;
-aamxk;
-aamxl;
-aamxm;
-aamxn;
-aamxo;
-aamxp;
-aamxq;
-aamxr;
-aamxs;
-aamxt;
-aamxu;
-aamxv;
-aamxw;
-aamxx;
-aamxy;
-aamxz;
-aamya;
-aamyb;
-aamyc;
-aamyd;
-aamye;
-aamyf;
-aamyg;
-aamyh;
-aamyi;
-aamyj;
-aamyk;
-aamyl;
-aamym;
-aamyn;
-aamyo;
-aamyp;
-aamyq;
-aamyr;
-aamys;
-aamyt;
-aamyu;
-aamyv;
-aamyw;
-aamyx;
-aamyy;
-aamyz;
-aamza;
-aamzb;
-aamzc;
-aamzd;
-aamze;
-aamzf;
-aamzg;
-aamzh;
-aamzi;
-aamzj;
-aamzk;
-aamzl;
-aamzm;
-aamzn;
-aamzo;
-aamzp;
-aamzq;
-aamzr;
-aamzs;
-aamzt;
-aamzu;
-aamzv;
-aamzw;
-aamzx;
-aamzy;
-aamzz;
-aanaa;
-aanab;
-aanac;
-aanad;
-aanae;
-aanaf;
-aanag;
-aanah;
-aanai;
-aanaj;
-aanak;
-aanal;
-aanam;
-aanan;
-aanao;
-aanap;
-aanaq;
-aanar;
-aanas;
-aanat;
-aanau;
-aanav;
-aanaw;
-aanax;
-aanay;
-aanaz;
-aanba;
-aanbb;
-aanbc;
-aanbd;
-aanbe;
-aanbf;
-aanbg;
-aanbh;
-aanbi;
-aanbj;
-aanbk;
-aanbl;
-aanbm;
-aanbn;
-aanbo;
-aanbp;
-aanbq;
-aanbr;
-aanbs;
-aanbt;
-aanbu;
-aanbv;
-aanbw;
-aanbx;
-aanby;
-aanbz;
-aanca;
-aancb;
-aancc;
-aancd;
-aance;
-aancf;
-aancg;
-aanch;
-aanci;
-aancj;
-aanck;
-aancl;
-aancm;
-aancn;
-aanco;
-aancp;
-aancq;
-aancr;
-aancs;
-aanct;
-aancu;
-aancv;
-aancw;
-aancx;
-aancy;
-aancz;
-aanda;
-aandb;
-aandc;
-aandd;
-aande;
-aandf;
-aandg;
-aandh;
-aandi;
-aandj;
-aandk;
-aandl;
-aandm;
-aandn;
-aando;
-aandp;
-aandq;
-aandr;
-aands;
-aandt;
-aandu;
-aandv;
-aandw;
-aandx;
-aandy;
-aandz;
-aanea;
-aaneb;
-aanec;
-aaned;
-aanee;
-aanef;
-aaneg;
-aaneh;
-aanei;
-aanej;
-aanek;
-aanel;
-aanem;
-aanen;
-aaneo;
-aanep;
-aaneq;
-aaner;
-aanes;
-aanet;
-aaneu;
-aanev;
-aanew;
-aanex;
-aaney;
-aanez;
-aanfa;
-aanfb;
-aanfc;
-aanfd;
-aanfe;
-aanff;
-aanfg;
-aanfh;
-aanfi;
-aanfj;
-aanfk;
-aanfl;
-aanfm;
-aanfn;
-aanfo;
-aanfp;
-aanfq;
-aanfr;
-aanfs;
-aanft;
-aanfu;
-aanfv;
-aanfw;
-aanfx;
-aanfy;
-aanfz;
-aanga;
-aangb;
-aangc;
-aangd;
-aange;
-aangf;
-aangg;
-aangh;
-aangi;
-aangj;
-aangk;
-aangl;
-aangm;
-aangn;
-aango;
-aangp;
-aangq;
-aangr;
-aangs;
-aangt;
-aangu;
-aangv;
-aangw;
-aangx;
-aangy;
-aangz;
-aanha;
-aanhb;
-aanhc;
-aanhd;
-aanhe;
-aanhf;
-aanhg;
-aanhh;
-aanhi;
-aanhj;
-aanhk;
-aanhl;
-aanhm;
-aanhn;
-aanho;
-aanhp;
-aanhq;
-aanhr;
-aanhs;
-aanht;
-aanhu;
-aanhv;
-aanhw;
-aanhx;
-aanhy;
-aanhz;
-aania;
-aanib;
-aanic;
-aanid;
-aanie;
-aanif;
-aanig;
-aanih;
-aanii;
-aanij;
-aanik;
-aanil;
-aanim;
-aanin;
-aanio;
-aanip;
-aaniq;
-aanir;
-aanis;
-aanit;
-aaniu;
-aaniv;
-aaniw;
-aanix;
-aaniy;
-aaniz;
-aanja;
-aanjb;
-aanjc;
-aanjd;
-aanje;
-aanjf;
-aanjg;
-aanjh;
-aanji;
-aanjj;
-aanjk;
-aanjl;
-aanjm;
-aanjn;
-aanjo;
-aanjp;
-aanjq;
-aanjr;
-aanjs;
-aanjt;
-aanju;
-aanjv;
-aanjw;
-aanjx;
-aanjy;
-aanjz;
-aanka;
-aankb;
-aankc;
-aankd;
-aanke;
-aankf;
-aankg;
-aankh;
-aanki;
-aankj;
-aankk;
-aankl;
-aankm;
-aankn;
-aanko;
-aankp;
-aankq;
-aankr;
-aanks;
-aankt;
-aanku;
-aankv;
-aankw;
-aankx;
-aanky;
-aankz;
-aanla;
-aanlb;
-aanlc;
-aanld;
-aanle;
-aanlf;
-aanlg;
-aanlh;
-aanli;
-aanlj;
-aanlk;
-aanll;
-aanlm;
-aanln;
-aanlo;
-aanlp;
-aanlq;
-aanlr;
-aanls;
-aanlt;
-aanlu;
-aanlv;
-aanlw;
-aanlx;
-aanly;
-aanlz;
-aanma;
-aanmb;
-aanmc;
-aanmd;
-aanme;
-aanmf;
-aanmg;
-aanmh;
-aanmi;
-aanmj;
-aanmk;
-aanml;
-aanmm;
-aanmn;
-aanmo;
-aanmp;
-aanmq;
-aanmr;
-aanms;
-aanmt;
-aanmu;
-aanmv;
-aanmw;
-aanmx;
-aanmy;
-aanmz;
-aanna;
-aannb;
-aannc;
-aannd;
-aanne;
-aannf;
-aanng;
-aannh;
-aanni;
-aannj;
-aannk;
-aannl;
-aannm;
-aannn;
-aanno;
-aannp;
-aannq;
-aannr;
-aanns;
-aannt;
-aannu;
-aannv;
-aannw;
-aannx;
-aanny;
-aannz;
-aanoa;
-aanob;
-aanoc;
-aanod;
-aanoe;
-aanof;
-aanog;
-aanoh;
-aanoi;
-aanoj;
-aanok;
-aanol;
-aanom;
-aanon;
-aanoo;
-aanop;
-aanoq;
-aanor;
-aanos;
-aanot;
-aanou;
-aanov;
-aanow;
-aanox;
-aanoy;
-aanoz;
-aanpa;
-aanpb;
-aanpc;
-aanpd;
-aanpe;
-aanpf;
-aanpg;
-aanph;
-aanpi;
-aanpj;
-aanpk;
-aanpl;
-aanpm;
-aanpn;
-aanpo;
-aanpp;
-aanpq;
-aanpr;
-aanps;
-aanpt;
-aanpu;
-aanpv;
-aanpw;
-aanpx;
-aanpy;
-aanpz;
-aanqa;
-aanqb;
-aanqc;
-aanqd;
-aanqe;
-aanqf;
-aanqg;
-aanqh;
-aanqi;
-aanqj;
-aanqk;
-aanql;
-aanqm;
-aanqn;
-aanqo;
-aanqp;
-aanqq;
-aanqr;
-aanqs;
-aanqt;
-aanqu;
-aanqv;
-aanqw;
-aanqx;
-aanqy;
-aanqz;
-aanra;
-aanrb;
-aanrc;
-aanrd;
-aanre;
-aanrf;
-aanrg;
-aanrh;
-aanri;
-aanrj;
-aanrk;
-aanrl;
-aanrm;
-aanrn;
-aanro;
-aanrp;
-aanrq;
-aanrr;
-aanrs;
-aanrt;
-aanru;
-aanrv;
-aanrw;
-aanrx;
-aanry;
-aanrz;
-aansa;
-aansb;
-aansc;
-aansd;
-aanse;
-aansf;
-aansg;
-aansh;
-aansi;
-aansj;
-aansk;
-aansl;
-aansm;
-aansn;
-aanso;
-aansp;
-aansq;
-aansr;
-aanss;
-aanst;
-aansu;
-aansv;
-aansw;
-aansx;
-aansy;
-aansz;
-aanta;
-aantb;
-aantc;
-aantd;
-aante;
-aantf;
-aantg;
-aanth;
-aanti;
-aantj;
-aantk;
-aantl;
-aantm;
-aantn;
-aanto;
-aantp;
-aantq;
-aantr;
-aants;
-aantt;
-aantu;
-aantv;
-aantw;
-aantx;
-aanty;
-aantz;
-aanua;
-aanub;
-aanuc;
-aanud;
-aanue;
-aanuf;
-aanug;
-aanuh;
-aanui;
-aanuj;
-aanuk;
-aanul;
-aanum;
-aanun;
-aanuo;
-aanup;
-aanuq;
-aanur;
-aanus;
-aanut;
-aanuu;
-aanuv;
-aanuw;
-aanux;
-aanuy;
-aanuz;
-aanva;
-aanvb;
-aanvc;
-aanvd;
-aanve;
-aanvf;
-aanvg;
-aanvh;
-aanvi;
-aanvj;
-aanvk;
-aanvl;
-aanvm;
-aanvn;
-aanvo;
-aanvp;
-aanvq;
-aanvr;
-aanvs;
-aanvt;
-aanvu;
-aanvv;
-aanvw;
-aanvx;
-aanvy;
-aanvz;
-aanwa;
-aanwb;
-aanwc;
-aanwd;
-aanwe;
-aanwf;
-aanwg;
-aanwh;
-aanwi;
-aanwj;
-aanwk;
-aanwl;
-aanwm;
-aanwn;
-aanwo;
-aanwp;
-aanwq;
-aanwr;
-aanws;
-aanwt;
-aanwu;
-aanwv;
-aanww;
-aanwx;
-aanwy;
-aanwz;
-aanxa;
-aanxb;
-aanxc;
-aanxd;
-aanxe;
-aanxf;
-aanxg;
-aanxh;
-aanxi;
-aanxj;
-aanxk;
-aanxl;
-aanxm;
-aanxn;
-aanxo;
-aanxp;
-aanxq;
-aanxr;
-aanxs;
-aanxt;
-aanxu;
-aanxv;
-aanxw;
-aanxx;
-aanxy;
-aanxz;
-aanya;
-aanyb;
-aanyc;
-aanyd;
-aanye;
-aanyf;
-aanyg;
-aanyh;
-aanyi;
-aanyj;
-aanyk;
-aanyl;
-aanym;
-aanyn;
-aanyo;
-aanyp;
-aanyq;
-aanyr;
-aanys;
-aanyt;
-aanyu;
-aanyv;
-aanyw;
-aanyx;
-aanyy;
-aanyz;
-aanza;
-aanzb;
-aanzc;
-aanzd;
-aanze;
-aanzf;
-aanzg;
-aanzh;
-aanzi;
-aanzj;
-aanzk;
-aanzl;
-aanzm;
-aanzn;
-aanzo;
-aanzp;
-aanzq;
-aanzr;
-aanzs;
-aanzt;
-aanzu;
-aanzv;
-aanzw;
-aanzx;
-aanzy;
-aanzz;
-aaoaa;
-aaoab;
-aaoac;
-aaoad;
-aaoae;
-aaoaf;
-aaoag;
-aaoah;
-aaoai;
-aaoaj;
-aaoak;
-aaoal;
-aaoam;
-aaoan;
-aaoao;
-aaoap;
-aaoaq;
-aaoar;
-aaoas;
-aaoat;
-aaoau;
-aaoav;
-aaoaw;
-aaoax;
-aaoay;
-aaoaz;
-aaoba;
-aaobb;
-aaobc;
-aaobd;
-aaobe;
-aaobf;
-aaobg;
-aaobh;
-aaobi;
-aaobj;
-aaobk;
-aaobl;
-aaobm;
-aaobn;
-aaobo;
-aaobp;
-aaobq;
-aaobr;
-aaobs;
-aaobt;
-aaobu;
-aaobv;
-aaobw;
-aaobx;
-aaoby;
-aaobz;
-aaoca;
-aaocb;
-aaocc;
-aaocd;
-aaoce;
-aaocf;
-aaocg;
-aaoch;
-aaoci;
-aaocj;
-aaock;
-aaocl;
-aaocm;
-aaocn;
-aaoco;
-aaocp;
-aaocq;
-aaocr;
-aaocs;
-aaoct;
-aaocu;
-aaocv;
-aaocw;
-aaocx;
-aaocy;
-aaocz;
-aaoda;
-aaodb;
-aaodc;
-aaodd;
-aaode;
-aaodf;
-aaodg;
-aaodh;
-aaodi;
-aaodj;
-aaodk;
-aaodl;
-aaodm;
-aaodn;
-aaodo;
-aaodp;
-aaodq;
-aaodr;
-aaods;
-aaodt;
-aaodu;
-aaodv;
-aaodw;
-aaodx;
-aaody;
-aaodz;
-aaoea;
-aaoeb;
-aaoec;
-aaoed;
-aaoee;
-aaoef;
-aaoeg;
-aaoeh;
-aaoei;
-aaoej;
-aaoek;
-aaoel;
-aaoem;
-aaoen;
-aaoeo;
-aaoep;
-aaoeq;
-aaoer;
-aaoes;
-aaoet;
-aaoeu;
-aaoev;
-aaoew;
-aaoex;
-aaoey;
-aaoez;
-aaofa;
-aaofb;
-aaofc;
-aaofd;
-aaofe;
-aaoff;
-aaofg;
-aaofh;
-aaofi;
-aaofj;
-aaofk;
-aaofl;
-aaofm;
-aaofn;
-aaofo;
-aaofp;
-aaofq;
-aaofr;
-aaofs;
-aaoft;
-aaofu;
-aaofv;
-aaofw;
-aaofx;
-aaofy;
-aaofz;
-aaoga;
-aaogb;
-aaogc;
-aaogd;
-aaoge;
-aaogf;
-aaogg;
-aaogh;
-aaogi;
-aaogj;
-aaogk;
-aaogl;
-aaogm;
-aaogn;
-aaogo;
-aaogp;
-aaogq;
-aaogr;
-aaogs;
-aaogt;
-aaogu;
-aaogv;
-aaogw;
-aaogx;
-aaogy;
-aaogz;
-aaoha;
-aaohb;
-aaohc;
-aaohd;
-aaohe;
-aaohf;
-aaohg;
-aaohh;
-aaohi;
-aaohj;
-aaohk;
-aaohl;
-aaohm;
-aaohn;
-aaoho;
-aaohp;
-aaohq;
-aaohr;
-aaohs;
-aaoht;
-aaohu;
-aaohv;
-aaohw;
-aaohx;
-aaohy;
-aaohz;
-aaoia;
-aaoib;
-aaoic;
-aaoid;
-aaoie;
-aaoif;
-aaoig;
-aaoih;
-aaoii;
-aaoij;
-aaoik;
-aaoil;
-aaoim;
-aaoin;
-aaoio;
-aaoip;
-aaoiq;
-aaoir;
-aaois;
-aaoit;
-aaoiu;
-aaoiv;
-aaoiw;
-aaoix;
-aaoiy;
-aaoiz;
-aaoja;
-aaojb;
-aaojc;
-aaojd;
-aaoje;
-aaojf;
-aaojg;
-aaojh;
-aaoji;
-aaojj;
-aaojk;
-aaojl;
-aaojm;
-aaojn;
-aaojo;
-aaojp;
-aaojq;
-aaojr;
-aaojs;
-aaojt;
-aaoju;
-aaojv;
-aaojw;
-aaojx;
-aaojy;
-aaojz;
-aaoka;
-aaokb;
-aaokc;
-aaokd;
-aaoke;
-aaokf;
-aaokg;
-aaokh;
-aaoki;
-aaokj;
-aaokk;
-aaokl;
-aaokm;
-aaokn;
-aaoko;
-aaokp;
-aaokq;
-aaokr;
-aaoks;
-aaokt;
-aaoku;
-aaokv;
-aaokw;
-aaokx;
-aaoky;
-aaokz;
-aaola;
-aaolb;
-aaolc;
-aaold;
-aaole;
-aaolf;
-aaolg;
-aaolh;
-aaoli;
-aaolj;
-aaolk;
-aaoll;
-aaolm;
-aaoln;
-aaolo;
-aaolp;
-aaolq;
-aaolr;
-aaols;
-aaolt;
-aaolu;
-aaolv;
-aaolw;
-aaolx;
-aaoly;
-aaolz;
-aaoma;
-aaomb;
-aaomc;
-aaomd;
-aaome;
-aaomf;
-aaomg;
-aaomh;
-aaomi;
-aaomj;
-aaomk;
-aaoml;
-aaomm;
-aaomn;
-aaomo;
-aaomp;
-aaomq;
-aaomr;
-aaoms;
-aaomt;
-aaomu;
-aaomv;
-aaomw;
-aaomx;
-aaomy;
-aaomz;
-aaona;
-aaonb;
-aaonc;
-aaond;
-aaone;
-aaonf;
-aaong;
-aaonh;
-aaoni;
-aaonj;
-aaonk;
-aaonl;
-aaonm;
-aaonn;
-aaono;
-aaonp;
-aaonq;
-aaonr;
-aaons;
-aaont;
-aaonu;
-aaonv;
-aaonw;
-aaonx;
-aaony;
-aaonz;
-aaooa;
-aaoob;
-aaooc;
-aaood;
-aaooe;
-aaoof;
-aaoog;
-aaooh;
-aaooi;
-aaooj;
-aaook;
-aaool;
-aaoom;
-aaoon;
-aaooo;
-aaoop;
-aaooq;
-aaoor;
-aaoos;
-aaoot;
-aaoou;
-aaoov;
-aaoow;
-aaoox;
-aaooy;
-aaooz;
-aaopa;
-aaopb;
-aaopc;
-aaopd;
-aaope;
-aaopf;
-aaopg;
-aaoph;
-aaopi;
-aaopj;
-aaopk;
-aaopl;
-aaopm;
-aaopn;
-aaopo;
-aaopp;
-aaopq;
-aaopr;
-aaops;
-aaopt;
-aaopu;
-aaopv;
-aaopw;
-aaopx;
-aaopy;
-aaopz;
-aaoqa;
-aaoqb;
-aaoqc;
-aaoqd;
-aaoqe;
-aaoqf;
-aaoqg;
-aaoqh;
-aaoqi;
-aaoqj;
-aaoqk;
-aaoql;
-aaoqm;
-aaoqn;
-aaoqo;
-aaoqp;
-aaoqq;
-aaoqr;
-aaoqs;
-aaoqt;
-aaoqu;
-aaoqv;
-aaoqw;
-aaoqx;
-aaoqy;
-aaoqz;
-aaora;
-aaorb;
-aaorc;
-aaord;
-aaore;
-aaorf;
-aaorg;
-aaorh;
-aaori;
-aaorj;
-aaork;
-aaorl;
-aaorm;
-aaorn;
-aaoro;
-aaorp;
-aaorq;
-aaorr;
-aaors;
-aaort;
-aaoru;
-aaorv;
-aaorw;
-aaorx;
-aaory;
-aaorz;
-aaosa;
-aaosb;
-aaosc;
-aaosd;
-aaose;
-aaosf;
-aaosg;
-aaosh;
-aaosi;
-aaosj;
-aaosk;
-aaosl;
-aaosm;
-aaosn;
-aaoso;
-aaosp;
-aaosq;
-aaosr;
-aaoss;
-aaost;
-aaosu;
-aaosv;
-aaosw;
-aaosx;
-aaosy;
-aaosz;
-aaota;
-aaotb;
-aaotc;
-aaotd;
-aaote;
-aaotf;
-aaotg;
-aaoth;
-aaoti;
-aaotj;
-aaotk;
-aaotl;
-aaotm;
-aaotn;
-aaoto;
-aaotp;
-aaotq;
-aaotr;
-aaots;
-aaott;
-aaotu;
-aaotv;
-aaotw;
-aaotx;
-aaoty;
-aaotz;
-aaoua;
-aaoub;
-aaouc;
-aaoud;
-aaoue;
-aaouf;
-aaoug;
-aaouh;
-aaoui;
-aaouj;
-aaouk;
-aaoul;
-aaoum;
-aaoun;
-aaouo;
-aaoup;
-aaouq;
-aaour;
-aaous;
-aaout;
-aaouu;
-aaouv;
-aaouw;
-aaoux;
-aaouy;
-aaouz;
-aaova;
-aaovb;
-aaovc;
-aaovd;
-aaove;
-aaovf;
-aaovg;
-aaovh;
-aaovi;
-aaovj;
-aaovk;
-aaovl;
-aaovm;
-aaovn;
-aaovo;
-aaovp;
-aaovq;
-aaovr;
-aaovs;
-aaovt;
-aaovu;
-aaovv;
-aaovw;
-aaovx;
-aaovy;
-aaovz;
-aaowa;
-aaowb;
-aaowc;
-aaowd;
-aaowe;
-aaowf;
-aaowg;
-aaowh;
-aaowi;
-aaowj;
-aaowk;
-aaowl;
-aaowm;
-aaown;
-aaowo;
-aaowp;
-aaowq;
-aaowr;
-aaows;
-aaowt;
-aaowu;
-aaowv;
-aaoww;
-aaowx;
-aaowy;
-aaowz;
-aaoxa;
-aaoxb;
-aaoxc;
-aaoxd;
-aaoxe;
-aaoxf;
-aaoxg;
-aaoxh;
-aaoxi;
-aaoxj;
-aaoxk;
-aaoxl;
-aaoxm;
-aaoxn;
-aaoxo;
-aaoxp;
-aaoxq;
-aaoxr;
-aaoxs;
-aaoxt;
-aaoxu;
-aaoxv;
-aaoxw;
-aaoxx;
-aaoxy;
-aaoxz;
-aaoya;
-aaoyb;
-aaoyc;
-aaoyd;
-aaoye;
-aaoyf;
-aaoyg;
-aaoyh;
-aaoyi;
-aaoyj;
-aaoyk;
-aaoyl;
-aaoym;
-aaoyn;
-aaoyo;
-aaoyp;
-aaoyq;
-aaoyr;
-aaoys;
-aaoyt;
-aaoyu;
-aaoyv;
-aaoyw;
-aaoyx;
-aaoyy;
-aaoyz;
-aaoza;
-aaozb;
-aaozc;
-aaozd;
-aaoze;
-aaozf;
-aaozg;
-aaozh;
-aaozi;
-aaozj;
-aaozk;
-aaozl;
-aaozm;
-aaozn;
-aaozo;
-aaozp;
-aaozq;
-aaozr;
-aaozs;
-aaozt;
-aaozu;
-aaozv;
-aaozw;
-aaozx;
-aaozy;
-aaozz;
-aapaa;
-aapab;
-aapac;
-aapad;
-aapae;
-aapaf;
-aapag;
-aapah;
-aapai;
-aapaj;
-aapak;
-aapal;
-aapam;
-aapan;
-aapao;
-aapap;
-aapaq;
-aapar;
-aapas;
-aapat;
-aapau;
-aapav;
-aapaw;
-aapax;
-aapay;
-aapaz;
-aapba;
-aapbb;
-aapbc;
-aapbd;
-aapbe;
-aapbf;
-aapbg;
-aapbh;
-aapbi;
-aapbj;
-aapbk;
-aapbl;
-aapbm;
-aapbn;
-aapbo;
-aapbp;
-aapbq;
-aapbr;
-aapbs;
-aapbt;
-aapbu;
-aapbv;
-aapbw;
-aapbx;
-aapby;
-aapbz;
-aapca;
-aapcb;
-aapcc;
-aapcd;
-aapce;
-aapcf;
-aapcg;
-aapch;
-aapci;
-aapcj;
-aapck;
-aapcl;
-aapcm;
-aapcn;
-aapco;
-aapcp;
-aapcq;
-aapcr;
-aapcs;
-aapct;
-aapcu;
-aapcv;
-aapcw;
-aapcx;
-aapcy;
-aapcz;
-aapda;
-aapdb;
-aapdc;
-aapdd;
-aapde;
-aapdf;
-aapdg;
-aapdh;
-aapdi;
-aapdj;
-aapdk;
-aapdl;
-aapdm;
-aapdn;
-aapdo;
-aapdp;
-aapdq;
-aapdr;
-aapds;
-aapdt;
-aapdu;
-aapdv;
-aapdw;
-aapdx;
-aapdy;
-aapdz;
-aapea;
-aapeb;
-aapec;
-aaped;
-aapee;
-aapef;
-aapeg;
-aapeh;
-aapei;
-aapej;
-aapek;
-aapel;
-aapem;
-aapen;
-aapeo;
-aapep;
-aapeq;
-aaper;
-aapes;
-aapet;
-aapeu;
-aapev;
-aapew;
-aapex;
-aapey;
-aapez;
-aapfa;
-aapfb;
-aapfc;
-aapfd;
-aapfe;
-aapff;
-aapfg;
-aapfh;
-aapfi;
-aapfj;
-aapfk;
-aapfl;
-aapfm;
-aapfn;
-aapfo;
-aapfp;
-aapfq;
-aapfr;
-aapfs;
-aapft;
-aapfu;
-aapfv;
-aapfw;
-aapfx;
-aapfy;
-aapfz;
-aapga;
-aapgb;
-aapgc;
-aapgd;
-aapge;
-aapgf;
-aapgg;
-aapgh;
-aapgi;
-aapgj;
-aapgk;
-aapgl;
-aapgm;
-aapgn;
-aapgo;
-aapgp;
-aapgq;
-aapgr;
-aapgs;
-aapgt;
-aapgu;
-aapgv;
-aapgw;
-aapgx;
-aapgy;
-aapgz;
-aapha;
-aaphb;
-aaphc;
-aaphd;
-aaphe;
-aaphf;
-aaphg;
-aaphh;
-aaphi;
-aaphj;
-aaphk;
-aaphl;
-aaphm;
-aaphn;
-aapho;
-aaphp;
-aaphq;
-aaphr;
-aaphs;
-aapht;
-aaphu;
-aaphv;
-aaphw;
-aaphx;
-aaphy;
-aaphz;
-aapia;
-aapib;
-aapic;
-aapid;
-aapie;
-aapif;
-aapig;
-aapih;
-aapii;
-aapij;
-aapik;
-aapil;
-aapim;
-aapin;
-aapio;
-aapip;
-aapiq;
-aapir;
-aapis;
-aapit;
-aapiu;
-aapiv;
-aapiw;
-aapix;
-aapiy;
-aapiz;
-aapja;
-aapjb;
-aapjc;
-aapjd;
-aapje;
-aapjf;
-aapjg;
-aapjh;
-aapji;
-aapjj;
-aapjk;
-aapjl;
-aapjm;
-aapjn;
-aapjo;
-aapjp;
-aapjq;
-aapjr;
-aapjs;
-aapjt;
-aapju;
-aapjv;
-aapjw;
-aapjx;
-aapjy;
-aapjz;
-aapka;
-aapkb;
-aapkc;
-aapkd;
-aapke;
-aapkf;
-aapkg;
-aapkh;
-aapki;
-aapkj;
-aapkk;
-aapkl;
-aapkm;
-aapkn;
-aapko;
-aapkp;
-aapkq;
-aapkr;
-aapks;
-aapkt;
-aapku;
-aapkv;
-aapkw;
-aapkx;
-aapky;
-aapkz;
-aapla;
-aaplb;
-aaplc;
-aapld;
-aaple;
-aaplf;
-aaplg;
-aaplh;
-aapli;
-aaplj;
-aaplk;
-aapll;
-aaplm;
-aapln;
-aaplo;
-aaplp;
-aaplq;
-aaplr;
-aapls;
-aaplt;
-aaplu;
-aaplv;
-aaplw;
-aaplx;
-aaply;
-aaplz;
-aapma;
-aapmb;
-aapmc;
-aapmd;
-aapme;
-aapmf;
-aapmg;
-aapmh;
-aapmi;
-aapmj;
-aapmk;
-aapml;
-aapmm;
-aapmn;
-aapmo;
-aapmp;
-aapmq;
-aapmr;
-aapms;
-aapmt;
-aapmu;
-aapmv;
-aapmw;
-aapmx;
-aapmy;
-aapmz;
-aapna;
-aapnb;
-aapnc;
-aapnd;
-aapne;
-aapnf;
-aapng;
-aapnh;
-aapni;
-aapnj;
-aapnk;
-aapnl;
-aapnm;
-aapnn;
-aapno;
-aapnp;
-aapnq;
-aapnr;
-aapns;
-aapnt;
-aapnu;
-aapnv;
-aapnw;
-aapnx;
-aapny;
-aapnz;
-aapoa;
-aapob;
-aapoc;
-aapod;
-aapoe;
-aapof;
-aapog;
-aapoh;
-aapoi;
-aapoj;
-aapok;
-aapol;
-aapom;
-aapon;
-aapoo;
-aapop;
-aapoq;
-aapor;
-aapos;
-aapot;
-aapou;
-aapov;
-aapow;
-aapox;
-aapoy;
-aapoz;
-aappa;
-aappb;
-aappc;
-aappd;
-aappe;
-aappf;
-aappg;
-aapph;
-aappi;
-aappj;
-aappk;
-aappl;
-aappm;
-aappn;
-aappo;
-aappp;
-aappq;
-aappr;
-aapps;
-aappt;
-aappu;
-aappv;
-aappw;
-aappx;
-aappy;
-aappz;
-aapqa;
-aapqb;
-aapqc;
-aapqd;
-aapqe;
-aapqf;
-aapqg;
-aapqh;
-aapqi;
-aapqj;
-aapqk;
-aapql;
-aapqm;
-aapqn;
-aapqo;
-aapqp;
-aapqq;
-aapqr;
-aapqs;
-aapqt;
-aapqu;
-aapqv;
-aapqw;
-aapqx;
-aapqy;
-aapqz;
-aapra;
-aaprb;
-aaprc;
-aaprd;
-aapre;
-aaprf;
-aaprg;
-aaprh;
-aapri;
-aaprj;
-aaprk;
-aaprl;
-aaprm;
-aaprn;
-aapro;
-aaprp;
-aaprq;
-aaprr;
-aaprs;
-aaprt;
-aapru;
-aaprv;
-aaprw;
-aaprx;
-aapry;
-aaprz;
-aapsa;
-aapsb;
-aapsc;
-aapsd;
-aapse;
-aapsf;
-aapsg;
-aapsh;
-aapsi;
-aapsj;
-aapsk;
-aapsl;
-aapsm;
-aapsn;
-aapso;
-aapsp;
-aapsq;
-aapsr;
-aapss;
-aapst;
-aapsu;
-aapsv;
-aapsw;
-aapsx;
-aapsy;
-aapsz;
-aapta;
-aaptb;
-aaptc;
-aaptd;
-aapte;
-aaptf;
-aaptg;
-aapth;
-aapti;
-aaptj;
-aaptk;
-aaptl;
-aaptm;
-aaptn;
-aapto;
-aaptp;
-aaptq;
-aaptr;
-aapts;
-aaptt;
-aaptu;
-aaptv;
-aaptw;
-aaptx;
-aapty;
-aaptz;
-aapua;
-aapub;
-aapuc;
-aapud;
-aapue;
-aapuf;
-aapug;
-aapuh;
-aapui;
-aapuj;
-aapuk;
-aapul;
-aapum;
-aapun;
-aapuo;
-aapup;
-aapuq;
-aapur;
-aapus;
-aaput;
-aapuu;
-aapuv;
-aapuw;
-aapux;
-aapuy;
-aapuz;
-aapva;
-aapvb;
-aapvc;
-aapvd;
-aapve;
-aapvf;
-aapvg;
-aapvh;
-aapvi;
-aapvj;
-aapvk;
-aapvl;
-aapvm;
-aapvn;
-aapvo;
-aapvp;
-aapvq;
-aapvr;
-aapvs;
-aapvt;
-aapvu;
-aapvv;
-aapvw;
-aapvx;
-aapvy;
-aapvz;
-aapwa;
-aapwb;
-aapwc;
-aapwd;
-aapwe;
-aapwf;
-aapwg;
-aapwh;
-aapwi;
-aapwj;
-aapwk;
-aapwl;
-aapwm;
-aapwn;
-aapwo;
-aapwp;
-aapwq;
-aapwr;
-aapws;
-aapwt;
-aapwu;
-aapwv;
-aapww;
-aapwx;
-aapwy;
-aapwz;
-aapxa;
-aapxb;
-aapxc;
-aapxd;
-aapxe;
-aapxf;
-aapxg;
-aapxh;
-aapxi;
-aapxj;
-aapxk;
-aapxl;
-aapxm;
-aapxn;
-aapxo;
-aapxp;
-aapxq;
-aapxr;
-aapxs;
-aapxt;
-aapxu;
-aapxv;
-aapxw;
-aapxx;
-aapxy;
-aapxz;
-aapya;
-aapyb;
-aapyc;
-aapyd;
-aapye;
-aapyf;
-aapyg;
-aapyh;
-aapyi;
-aapyj;
-aapyk;
-aapyl;
-aapym;
-aapyn;
-aapyo;
-aapyp;
-aapyq;
-aapyr;
-aapys;
-aapyt;
-aapyu;
-aapyv;
-aapyw;
-aapyx;
-aapyy;
-aapyz;
-aapza;
-aapzb;
-aapzc;
-aapzd;
-aapze;
-aapzf;
-aapzg;
-aapzh;
-aapzi;
-aapzj;
-aapzk;
-aapzl;
-aapzm;
-aapzn;
-aapzo;
-aapzp;
-aapzq;
-aapzr;
-aapzs;
-aapzt;
-aapzu;
-aapzv;
-aapzw;
-aapzx;
-aapzy;
-aapzz;
-aaqaa;
-aaqab;
-aaqac;
-aaqad;
-aaqae;
-aaqaf;
-aaqag;
-aaqah;
-aaqai;
-aaqaj;
-aaqak;
-aaqal;
-aaqam;
-aaqan;
-aaqao;
-aaqap;
-aaqaq;
-aaqar;
-aaqas;
-aaqat;
-aaqau;
-aaqav;
-aaqaw;
-aaqax;
-aaqay;
-aaqaz;
-aaqba;
-aaqbb;
-aaqbc;
-aaqbd;
-aaqbe;
-aaqbf;
-aaqbg;
-aaqbh;
-aaqbi;
-aaqbj;
-aaqbk;
-aaqbl;
-aaqbm;
-aaqbn;
-aaqbo;
-aaqbp;
-aaqbq;
-aaqbr;
-aaqbs;
-aaqbt;
-aaqbu;
-aaqbv;
-aaqbw;
-aaqbx;
-aaqby;
-aaqbz;
-aaqca;
-aaqcb;
-aaqcc;
-aaqcd;
-aaqce;
-aaqcf;
-aaqcg;
-aaqch;
-aaqci;
-aaqcj;
-aaqck;
-aaqcl;
-aaqcm;
-aaqcn;
-aaqco;
-aaqcp;
-aaqcq;
-aaqcr;
-aaqcs;
-aaqct;
-aaqcu;
-aaqcv;
-aaqcw;
-aaqcx;
-aaqcy;
-aaqcz;
-aaqda;
-aaqdb;
-aaqdc;
-aaqdd;
-aaqde;
-aaqdf;
-aaqdg;
-aaqdh;
-aaqdi;
-aaqdj;
-aaqdk;
-aaqdl;
-aaqdm;
-aaqdn;
-aaqdo;
-aaqdp;
-aaqdq;
-aaqdr;
-aaqds;
-aaqdt;
-aaqdu;
-aaqdv;
-aaqdw;
-aaqdx;
-aaqdy;
-aaqdz;
-aaqea;
-aaqeb;
-aaqec;
-aaqed;
-aaqee;
-aaqef;
-aaqeg;
-aaqeh;
-aaqei;
-aaqej;
-aaqek;
-aaqel;
-aaqem;
-aaqen;
-aaqeo;
-aaqep;
-aaqeq;
-aaqer;
-aaqes;
-aaqet;
-aaqeu;
-aaqev;
-aaqew;
-aaqex;
-aaqey;
-aaqez;
-aaqfa;
-aaqfb;
-aaqfc;
-aaqfd;
-aaqfe;
-aaqff;
-aaqfg;
-aaqfh;
-aaqfi;
-aaqfj;
-aaqfk;
-aaqfl;
-aaqfm;
-aaqfn;
-aaqfo;
-aaqfp;
-aaqfq;
-aaqfr;
-aaqfs;
-aaqft;
-aaqfu;
-aaqfv;
-aaqfw;
-aaqfx;
-aaqfy;
-aaqfz;
-aaqga;
-aaqgb;
-aaqgc;
-aaqgd;
-aaqge;
-aaqgf;
-aaqgg;
-aaqgh;
-aaqgi;
-aaqgj;
-aaqgk;
-aaqgl;
-aaqgm;
-aaqgn;
-aaqgo;
-aaqgp;
-aaqgq;
-aaqgr;
-aaqgs;
-aaqgt;
-aaqgu;
-aaqgv;
-aaqgw;
-aaqgx;
-aaqgy;
-aaqgz;
-aaqha;
-aaqhb;
-aaqhc;
-aaqhd;
-aaqhe;
-aaqhf;
-aaqhg;
-aaqhh;
-aaqhi;
-aaqhj;
-aaqhk;
-aaqhl;
-aaqhm;
-aaqhn;
-aaqho;
-aaqhp;
-aaqhq;
-aaqhr;
-aaqhs;
-aaqht;
-aaqhu;
-aaqhv;
-aaqhw;
-aaqhx;
-aaqhy;
-aaqhz;
-aaqia;
-aaqib;
-aaqic;
-aaqid;
-aaqie;
-aaqif;
-aaqig;
-aaqih;
-aaqii;
-aaqij;
-aaqik;
-aaqil;
-aaqim;
-aaqin;
-aaqio;
-aaqip;
-aaqiq;
-aaqir;
-aaqis;
-aaqit;
-aaqiu;
-aaqiv;
-aaqiw;
-aaqix;
-aaqiy;
-aaqiz;
-aaqja;
-aaqjb;
-aaqjc;
-aaqjd;
-aaqje;
-aaqjf;
-aaqjg;
-aaqjh;
-aaqji;
-aaqjj;
-aaqjk;
-aaqjl;
-aaqjm;
-aaqjn;
-aaqjo;
-aaqjp;
-aaqjq;
-aaqjr;
-aaqjs;
-aaqjt;
-aaqju;
-aaqjv;
-aaqjw;
-aaqjx;
-aaqjy;
-aaqjz;
-aaqka;
-aaqkb;
-aaqkc;
-aaqkd;
-aaqke;
-aaqkf;
-aaqkg;
-aaqkh;
-aaqki;
-aaqkj;
-aaqkk;
-aaqkl;
-aaqkm;
-aaqkn;
-aaqko;
-aaqkp;
-aaqkq;
-aaqkr;
-aaqks;
-aaqkt;
-aaqku;
-aaqkv;
-aaqkw;
-aaqkx;
-aaqky;
-aaqkz;
-aaqla;
-aaqlb;
-aaqlc;
-aaqld;
-aaqle;
-aaqlf;
-aaqlg;
-aaqlh;
-aaqli;
-aaqlj;
-aaqlk;
-aaqll;
-aaqlm;
-aaqln;
-aaqlo;
-aaqlp;
-aaqlq;
-aaqlr;
-aaqls;
-aaqlt;
-aaqlu;
-aaqlv;
-aaqlw;
-aaqlx;
-aaqly;
-aaqlz;
-aaqma;
-aaqmb;
-aaqmc;
-aaqmd;
-aaqme;
-aaqmf;
-aaqmg;
-aaqmh;
-aaqmi;
-aaqmj;
-aaqmk;
-aaqml;
-aaqmm;
-aaqmn;
-aaqmo;
-aaqmp;
-aaqmq;
-aaqmr;
-aaqms;
-aaqmt;
-aaqmu;
-aaqmv;
-aaqmw;
-aaqmx;
-aaqmy;
-aaqmz;
-aaqna;
-aaqnb;
-aaqnc;
-aaqnd;
-aaqne;
-aaqnf;
-aaqng;
-aaqnh;
-aaqni;
-aaqnj;
-aaqnk;
-aaqnl;
-aaqnm;
-aaqnn;
-aaqno;
-aaqnp;
-aaqnq;
-aaqnr;
-aaqns;
-aaqnt;
-aaqnu;
-aaqnv;
-aaqnw;
-aaqnx;
-aaqny;
-aaqnz;
-aaqoa;
-aaqob;
-aaqoc;
-aaqod;
-aaqoe;
-aaqof;
-aaqog;
-aaqoh;
-aaqoi;
-aaqoj;
-aaqok;
-aaqol;
-aaqom;
-aaqon;
-aaqoo;
-aaqop;
-aaqoq;
-aaqor;
-aaqos;
-aaqot;
-aaqou;
-aaqov;
-aaqow;
-aaqox;
-aaqoy;
-aaqoz;
-aaqpa;
-aaqpb;
-aaqpc;
-aaqpd;
-aaqpe;
-aaqpf;
-aaqpg;
-aaqph;
-aaqpi;
-aaqpj;
-aaqpk;
-aaqpl;
-aaqpm;
-aaqpn;
-aaqpo;
-aaqpp;
-aaqpq;
-aaqpr;
-aaqps;
-aaqpt;
-aaqpu;
-aaqpv;
-aaqpw;
-aaqpx;
-aaqpy;
-aaqpz;
-aaqqa;
-aaqqb;
-aaqqc;
-aaqqd;
-aaqqe;
-aaqqf;
-aaqqg;
-aaqqh;
-aaqqi;
-aaqqj;
-aaqqk;
-aaqql;
-aaqqm;
-aaqqn;
-aaqqo;
-aaqqp;
-aaqqq;
-aaqqr;
-aaqqs;
-aaqqt;
-aaqqu;
-aaqqv;
-aaqqw;
-aaqqx;
-aaqqy;
-aaqqz;
-aaqra;
-aaqrb;
-aaqrc;
-aaqrd;
-aaqre;
-aaqrf;
-aaqrg;
-aaqrh;
-aaqri;
-aaqrj;
-aaqrk;
-aaqrl;
-aaqrm;
-aaqrn;
-aaqro;
-aaqrp;
-aaqrq;
-aaqrr;
-aaqrs;
-aaqrt;
-aaqru;
-aaqrv;
-aaqrw;
-aaqrx;
-aaqry;
-aaqrz;
-aaqsa;
-aaqsb;
-aaqsc;
-aaqsd;
-aaqse;
-aaqsf;
-aaqsg;
-aaqsh;
-aaqsi;
-aaqsj;
-aaqsk;
-aaqsl;
-aaqsm;
-aaqsn;
-aaqso;
-aaqsp;
-aaqsq;
-aaqsr;
-aaqss;
-aaqst;
-aaqsu;
-aaqsv;
-aaqsw;
-aaqsx;
-aaqsy;
-aaqsz;
-aaqta;
-aaqtb;
-aaqtc;
-aaqtd;
-aaqte;
-aaqtf;
-aaqtg;
-aaqth;
-aaqti;
-aaqtj;
-aaqtk;
-aaqtl;
-aaqtm;
-aaqtn;
-aaqto;
-aaqtp;
-aaqtq;
-aaqtr;
-aaqts;
-aaqtt;
-aaqtu;
-aaqtv;
-aaqtw;
-aaqtx;
-aaqty;
-aaqtz;
-aaqua;
-aaqub;
-aaquc;
-aaqud;
-aaque;
-aaquf;
-aaqug;
-aaquh;
-aaqui;
-aaquj;
-aaquk;
-aaqul;
-aaqum;
-aaqun;
-aaquo;
-aaqup;
-aaquq;
-aaqur;
-aaqus;
-aaqut;
-aaquu;
-aaquv;
-aaquw;
-aaqux;
-aaquy;
-aaquz;
-aaqva;
-aaqvb;
-aaqvc;
-aaqvd;
-aaqve;
-aaqvf;
-aaqvg;
-aaqvh;
-aaqvi;
-aaqvj;
-aaqvk;
-aaqvl;
-aaqvm;
-aaqvn;
-aaqvo;
-aaqvp;
-aaqvq;
-aaqvr;
-aaqvs;
-aaqvt;
-aaqvu;
-aaqvv;
-aaqvw;
-aaqvx;
-aaqvy;
-aaqvz;
-aaqwa;
-aaqwb;
-aaqwc;
-aaqwd;
-aaqwe;
-aaqwf;
-aaqwg;
-aaqwh;
-aaqwi;
-aaqwj;
-aaqwk;
-aaqwl;
-aaqwm;
-aaqwn;
-aaqwo;
-aaqwp;
-aaqwq;
-aaqwr;
-aaqws;
-aaqwt;
-aaqwu;
-aaqwv;
-aaqww;
-aaqwx;
-aaqwy;
-aaqwz;
-aaqxa;
-aaqxb;
-aaqxc;
-aaqxd;
-aaqxe;
-aaqxf;
-aaqxg;
-aaqxh;
-aaqxi;
-aaqxj;
-aaqxk;
-aaqxl;
-aaqxm;
-aaqxn;
-aaqxo;
-aaqxp;
-aaqxq;
-aaqxr;
-aaqxs;
-aaqxt;
-aaqxu;
-aaqxv;
-aaqxw;
-aaqxx;
-aaqxy;
-aaqxz;
-aaqya;
-aaqyb;
-aaqyc;
-aaqyd;
-aaqye;
-aaqyf;
-aaqyg;
-aaqyh;
-aaqyi;
-aaqyj;
-aaqyk;
-aaqyl;
-aaqym;
-aaqyn;
-aaqyo;
-aaqyp;
-aaqyq;
-aaqyr;
-aaqys;
-aaqyt;
-aaqyu;
-aaqyv;
-aaqyw;
-aaqyx;
-aaqyy;
-aaqyz;
-aaqza;
-aaqzb;
-aaqzc;
-aaqzd;
-aaqze;
-aaqzf;
-aaqzg;
-aaqzh;
-aaqzi;
-aaqzj;
-aaqzk;
-aaqzl;
-aaqzm;
-aaqzn;
-aaqzo;
-aaqzp;
-aaqzq;
-aaqzr;
-aaqzs;
-aaqzt;
-aaqzu;
-aaqzv;
-aaqzw;
-aaqzx;
-aaqzy;
-aaqzz;
-aaraa;
-aarab;
-aarac;
-aarad;
-aarae;
-aaraf;
-aarag;
-aarah;
-aarai;
-aaraj;
-aarak;
-aaral;
-aaram;
-aaran;
-aarao;
-aarap;
-aaraq;
-aarar;
-aaras;
-aarat;
-aarau;
-aarav;
-aaraw;
-aarax;
-aaray;
-aaraz;
-aarba;
-aarbb;
-aarbc;
-aarbd;
-aarbe;
-aarbf;
-aarbg;
-aarbh;
-aarbi;
-aarbj;
-aarbk;
-aarbl;
-aarbm;
-aarbn;
-aarbo;
-aarbp;
-aarbq;
-aarbr;
-aarbs;
-aarbt;
-aarbu;
-aarbv;
-aarbw;
-aarbx;
-aarby;
-aarbz;
-aarca;
-aarcb;
-aarcc;
-aarcd;
-aarce;
-aarcf;
-aarcg;
-aarch;
-aarci;
-aarcj;
-aarck;
-aarcl;
-aarcm;
-aarcn;
-aarco;
-aarcp;
-aarcq;
-aarcr;
-aarcs;
-aarct;
-aarcu;
-aarcv;
-aarcw;
-aarcx;
-aarcy;
-aarcz;
-aarda;
-aardb;
-aardc;
-aardd;
-aarde;
-aardf;
-aardg;
-aardh;
-aardi;
-aardj;
-aardk;
-aardl;
-aardm;
-aardn;
-aardo;
-aardp;
-aardq;
-aardr;
-aards;
-aardt;
-aardu;
-aardv;
-aardw;
-aardx;
-aardy;
-aardz;
-aarea;
-aareb;
-aarec;
-aared;
-aaree;
-aaref;
-aareg;
-aareh;
-aarei;
-aarej;
-aarek;
-aarel;
-aarem;
-aaren;
-aareo;
-aarep;
-aareq;
-aarer;
-aares;
-aaret;
-aareu;
-aarev;
-aarew;
-aarex;
-aarey;
-aarez;
-aarfa;
-aarfb;
-aarfc;
-aarfd;
-aarfe;
-aarff;
-aarfg;
-aarfh;
-aarfi;
-aarfj;
-aarfk;
-aarfl;
-aarfm;
-aarfn;
-aarfo;
-aarfp;
-aarfq;
-aarfr;
-aarfs;
-aarft;
-aarfu;
-aarfv;
-aarfw;
-aarfx;
-aarfy;
-aarfz;
-aarga;
-aargb;
-aargc;
-aargd;
-aarge;
-aargf;
-aargg;
-aargh;
-aargi;
-aargj;
-aargk;
-aargl;
-aargm;
-aargn;
-aargo;
-aargp;
-aargq;
-aargr;
-aargs;
-aargt;
-aargu;
-aargv;
-aargw;
-aargx;
-aargy;
-aargz;
-aarha;
-aarhb;
-aarhc;
-aarhd;
-aarhe;
-aarhf;
-aarhg;
-aarhh;
-aarhi;
-aarhj;
-aarhk;
-aarhl;
-aarhm;
-aarhn;
-aarho;
-aarhp;
-aarhq;
-aarhr;
-aarhs;
-aarht;
-aarhu;
-aarhv;
-aarhw;
-aarhx;
-aarhy;
-aarhz;
-aaria;
-aarib;
-aaric;
-aarid;
-aarie;
-aarif;
-aarig;
-aarih;
-aarii;
-aarij;
-aarik;
-aaril;
-aarim;
-aarin;
-aario;
-aarip;
-aariq;
-aarir;
-aaris;
-aarit;
-aariu;
-aariv;
-aariw;
-aarix;
-aariy;
-aariz;
-aarja;
-aarjb;
-aarjc;
-aarjd;
-aarje;
-aarjf;
-aarjg;
-aarjh;
-aarji;
-aarjj;
-aarjk;
-aarjl;
-aarjm;
-aarjn;
-aarjo;
-aarjp;
-aarjq;
-aarjr;
-aarjs;
-aarjt;
-aarju;
-aarjv;
-aarjw;
-aarjx;
-aarjy;
-aarjz;
-aarka;
-aarkb;
-aarkc;
-aarkd;
-aarke;
-aarkf;
-aarkg;
-aarkh;
-aarki;
-aarkj;
-aarkk;
-aarkl;
-aarkm;
-aarkn;
-aarko;
-aarkp;
-aarkq;
-aarkr;
-aarks;
-aarkt;
-aarku;
-aarkv;
-aarkw;
-aarkx;
-aarky;
-aarkz;
-aarla;
-aarlb;
-aarlc;
-aarld;
-aarle;
-aarlf;
-aarlg;
-aarlh;
-aarli;
-aarlj;
-aarlk;
-aarll;
-aarlm;
-aarln;
-aarlo;
-aarlp;
-aarlq;
-aarlr;
-aarls;
-aarlt;
-aarlu;
-aarlv;
-aarlw;
-aarlx;
-aarly;
-aarlz;
-aarma;
-aarmb;
-aarmc;
-aarmd;
-aarme;
-aarmf;
-aarmg;
-aarmh;
-aarmi;
-aarmj;
-aarmk;
-aarml;
-aarmm;
-aarmn;
-aarmo;
-aarmp;
-aarmq;
-aarmr;
-aarms;
-aarmt;
-aarmu;
-aarmv;
-aarmw;
-aarmx;
-aarmy;
-aarmz;
-aarna;
-aarnb;
-aarnc;
-aarnd;
-aarne;
-aarnf;
-aarng;
-aarnh;
-aarni;
-aarnj;
-aarnk;
-aarnl;
-aarnm;
-aarnn;
-aarno;
-aarnp;
-aarnq;
-aarnr;
-aarns;
-aarnt;
-aarnu;
-aarnv;
-aarnw;
-aarnx;
-aarny;
-aarnz;
-aaroa;
-aarob;
-aaroc;
-aarod;
-aaroe;
-aarof;
-aarog;
-aaroh;
-aaroi;
-aaroj;
-aarok;
-aarol;
-aarom;
-aaron;
-aaroo;
-aarop;
-aaroq;
-aaror;
-aaros;
-aarot;
-aarou;
-aarov;
-aarow;
-aarox;
-aaroy;
-aaroz;
-aarpa;
-aarpb;
-aarpc;
-aarpd;
-aarpe;
-aarpf;
-aarpg;
-aarph;
-aarpi;
-aarpj;
-aarpk;
-aarpl;
-aarpm;
-aarpn;
-aarpo;
-aarpp;
-aarpq;
-aarpr;
-aarps;
-aarpt;
-aarpu;
-aarpv;
-aarpw;
-aarpx;
-aarpy;
-aarpz;
-aarqa;
-aarqb;
-aarqc;
-aarqd;
-aarqe;
-aarqf;
-aarqg;
-aarqh;
-aarqi;
-aarqj;
-aarqk;
-aarql;
-aarqm;
-aarqn;
-aarqo;
-aarqp;
-aarqq;
-aarqr;
-aarqs;
-aarqt;
-aarqu;
-aarqv;
-aarqw;
-aarqx;
-aarqy;
-aarqz;
-aarra;
-aarrb;
-aarrc;
-aarrd;
-aarre;
-aarrf;
-aarrg;
-aarrh;
-aarri;
-aarrj;
-aarrk;
-aarrl;
-aarrm;
-aarrn;
-aarro;
-aarrp;
-aarrq;
-aarrr;
-aarrs;
-aarrt;
-aarru;
-aarrv;
-aarrw;
-aarrx;
-aarry;
-aarrz;
-aarsa;
-aarsb;
-aarsc;
-aarsd;
-aarse;
-aarsf;
-aarsg;
-aarsh;
-aarsi;
-aarsj;
-aarsk;
-aarsl;
-aarsm;
-aarsn;
-aarso;
-aarsp;
-aarsq;
-aarsr;
-aarss;
-aarst;
-aarsu;
-aarsv;
-aarsw;
-aarsx;
-aarsy;
-aarsz;
-aarta;
-aartb;
-aartc;
-aartd;
-aarte;
-aartf;
-aartg;
-aarth;
-aarti;
-aartj;
-aartk;
-aartl;
-aartm;
-aartn;
-aarto;
-aartp;
-aartq;
-aartr;
-aarts;
-aartt;
-aartu;
-aartv;
-aartw;
-aartx;
-aarty;
-aartz;
-aarua;
-aarub;
-aaruc;
-aarud;
-aarue;
-aaruf;
-aarug;
-aaruh;
-aarui;
-aaruj;
-aaruk;
-aarul;
-aarum;
-aarun;
-aaruo;
-aarup;
-aaruq;
-aarur;
-aarus;
-aarut;
-aaruu;
-aaruv;
-aaruw;
-aarux;
-aaruy;
-aaruz;
-aarva;
-aarvb;
-aarvc;
-aarvd;
-aarve;
-aarvf;
-aarvg;
-aarvh;
-aarvi;
-aarvj;
-aarvk;
-aarvl;
-aarvm;
-aarvn;
-aarvo;
-aarvp;
-aarvq;
-aarvr;
-aarvs;
-aarvt;
-aarvu;
-aarvv;
-aarvw;
-aarvx;
-aarvy;
-aarvz;
-aarwa;
-aarwb;
-aarwc;
-aarwd;
-aarwe;
-aarwf;
-aarwg;
-aarwh;
-aarwi;
-aarwj;
-aarwk;
-aarwl;
-aarwm;
-aarwn;
-aarwo;
-aarwp;
-aarwq;
-aarwr;
-aarws;
-aarwt;
-aarwu;
-aarwv;
-aarww;
-aarwx;
-aarwy;
-aarwz;
-aarxa;
-aarxb;
-aarxc;
-aarxd;
-aarxe;
-aarxf;
-aarxg;
-aarxh;
-aarxi;
-aarxj;
-aarxk;
-aarxl;
-aarxm;
-aarxn;
-aarxo;
-aarxp;
-aarxq;
-aarxr;
-aarxs;
-aarxt;
-aarxu;
-aarxv;
-aarxw;
-aarxx;
-aarxy;
-aarxz;
-aarya;
-aaryb;
-aaryc;
-aaryd;
-aarye;
-aaryf;
-aaryg;
-aaryh;
-aaryi;
-aaryj;
-aaryk;
-aaryl;
-aarym;
-aaryn;
-aaryo;
-aaryp;
-aaryq;
-aaryr;
-aarys;
-aaryt;
-aaryu;
-aaryv;
-aaryw;
-aaryx;
-aaryy;
-aaryz;
-aarza;
-aarzb;
-aarzc;
-aarzd;
-aarze;
-aarzf;
-aarzg;
-aarzh;
-aarzi;
-aarzj;
-aarzk;
-aarzl;
-aarzm;
-aarzn;
-aarzo;
-aarzp;
-aarzq;
-aarzr;
-aarzs;
-aarzt;
-aarzu;
-aarzv;
-aarzw;
-aarzx;
-aarzy;
-aarzz;
-aasaa;
-aasab;
-aasac;
-aasad;
-aasae;
-aasaf;
-aasag;
-aasah;
-aasai;
-aasaj;
-aasak;
-aasal;
-aasam;
-aasan;
-aasao;
-aasap;
-aasaq;
-aasar;
-aasas;
-aasat;
-aasau;
-aasav;
-aasaw;
-aasax;
-aasay;
-aasaz;
-aasba;
-aasbb;
-aasbc;
-aasbd;
-aasbe;
-aasbf;
-aasbg;
-aasbh;
-aasbi;
-aasbj;
-aasbk;
-aasbl;
-aasbm;
-aasbn;
-aasbo;
-aasbp;
-aasbq;
-aasbr;
-aasbs;
-aasbt;
-aasbu;
-aasbv;
-aasbw;
-aasbx;
-aasby;
-aasbz;
-aasca;
-aascb;
-aascc;
-aascd;
-aasce;
-aascf;
-aascg;
-aasch;
-aasci;
-aascj;
-aasck;
-aascl;
-aascm;
-aascn;
-aasco;
-aascp;
-aascq;
-aascr;
-aascs;
-aasct;
-aascu;
-aascv;
-aascw;
-aascx;
-aascy;
-aascz;
-aasda;
-aasdb;
-aasdc;
-aasdd;
-aasde;
-aasdf;
-aasdg;
-aasdh;
-aasdi;
-aasdj;
-aasdk;
-aasdl;
-aasdm;
-aasdn;
-aasdo;
-aasdp;
-aasdq;
-aasdr;
-aasds;
-aasdt;
-aasdu;
-aasdv;
-aasdw;
-aasdx;
-aasdy;
-aasdz;
-aasea;
-aaseb;
-aasec;
-aased;
-aasee;
-aasef;
-aaseg;
-aaseh;
-aasei;
-aasej;
-aasek;
-aasel;
-aasem;
-aasen;
-aaseo;
-aasep;
-aaseq;
-aaser;
-aases;
-aaset;
-aaseu;
-aasev;
-aasew;
-aasex;
-aasey;
-aasez;
-aasfa;
-aasfb;
-aasfc;
-aasfd;
-aasfe;
-aasff;
-aasfg;
-aasfh;
-aasfi;
-aasfj;
-aasfk;
-aasfl;
-aasfm;
-aasfn;
-aasfo;
-aasfp;
-aasfq;
-aasfr;
-aasfs;
-aasft;
-aasfu;
-aasfv;
-aasfw;
-aasfx;
-aasfy;
-aasfz;
-aasga;
-aasgb;
-aasgc;
-aasgd;
-aasge;
-aasgf;
-aasgg;
-aasgh;
-aasgi;
-aasgj;
-aasgk;
-aasgl;
-aasgm;
-aasgn;
-aasgo;
-aasgp;
-aasgq;
-aasgr;
-aasgs;
-aasgt;
-aasgu;
-aasgv;
-aasgw;
-aasgx;
-aasgy;
-aasgz;
-aasha;
-aashb;
-aashc;
-aashd;
-aashe;
-aashf;
-aashg;
-aashh;
-aashi;
-aashj;
-aashk;
-aashl;
-aashm;
-aashn;
-aasho;
-aashp;
-aashq;
-aashr;
-aashs;
-aasht;
-aashu;
-aashv;
-aashw;
-aashx;
-aashy;
-aashz;
-aasia;
-aasib;
-aasic;
-aasid;
-aasie;
-aasif;
-aasig;
-aasih;
-aasii;
-aasij;
-aasik;
-aasil;
-aasim;
-aasin;
-aasio;
-aasip;
-aasiq;
-aasir;
-aasis;
-aasit;
-aasiu;
-aasiv;
-aasiw;
-aasix;
-aasiy;
-aasiz;
-aasja;
-aasjb;
-aasjc;
-aasjd;
-aasje;
-aasjf;
-aasjg;
-aasjh;
-aasji;
-aasjj;
-aasjk;
-aasjl;
-aasjm;
-aasjn;
-aasjo;
-aasjp;
-aasjq;
-aasjr;
-aasjs;
-aasjt;
-aasju;
-aasjv;
-aasjw;
-aasjx;
-aasjy;
-aasjz;
-aaska;
-aaskb;
-aaskc;
-aaskd;
-aaske;
-aaskf;
-aaskg;
-aaskh;
-aaski;
-aaskj;
-aaskk;
-aaskl;
-aaskm;
-aaskn;
-aasko;
-aaskp;
-aaskq;
-aaskr;
-aasks;
-aaskt;
-aasku;
-aaskv;
-aaskw;
-aaskx;
-aasky;
-aaskz;
-aasla;
-aaslb;
-aaslc;
-aasld;
-aasle;
-aaslf;
-aaslg;
-aaslh;
-aasli;
-aaslj;
-aaslk;
-aasll;
-aaslm;
-aasln;
-aaslo;
-aaslp;
-aaslq;
-aaslr;
-aasls;
-aaslt;
-aaslu;
-aaslv;
-aaslw;
-aaslx;
-aasly;
-aaslz;
-aasma;
-aasmb;
-aasmc;
-aasmd;
-aasme;
-aasmf;
-aasmg;
-aasmh;
-aasmi;
-aasmj;
-aasmk;
-aasml;
-aasmm;
-aasmn;
-aasmo;
-aasmp;
-aasmq;
-aasmr;
-aasms;
-aasmt;
-aasmu;
-aasmv;
-aasmw;
-aasmx;
-aasmy;
-aasmz;
-aasna;
-aasnb;
-aasnc;
-aasnd;
-aasne;
-aasnf;
-aasng;
-aasnh;
-aasni;
-aasnj;
-aasnk;
-aasnl;
-aasnm;
-aasnn;
-aasno;
-aasnp;
-aasnq;
-aasnr;
-aasns;
-aasnt;
-aasnu;
-aasnv;
-aasnw;
-aasnx;
-aasny;
-aasnz;
-aasoa;
-aasob;
-aasoc;
-aasod;
-aasoe;
-aasof;
-aasog;
-aasoh;
-aasoi;
-aasoj;
-aasok;
-aasol;
-aasom;
-aason;
-aasoo;
-aasop;
-aasoq;
-aasor;
-aasos;
-aasot;
-aasou;
-aasov;
-aasow;
-aasox;
-aasoy;
-aasoz;
-aaspa;
-aaspb;
-aaspc;
-aaspd;
-aaspe;
-aaspf;
-aaspg;
-aasph;
-aaspi;
-aaspj;
-aaspk;
-aaspl;
-aaspm;
-aaspn;
-aaspo;
-aaspp;
-aaspq;
-aaspr;
-aasps;
-aaspt;
-aaspu;
-aaspv;
-aaspw;
-aaspx;
-aaspy;
-aaspz;
-aasqa;
-aasqb;
-aasqc;
-aasqd;
-aasqe;
-aasqf;
-aasqg;
-aasqh;
-aasqi;
-aasqj;
-aasqk;
-aasql;
-aasqm;
-aasqn;
-aasqo;
-aasqp;
-aasqq;
-aasqr;
-aasqs;
-aasqt;
-aasqu;
-aasqv;
-aasqw;
-aasqx;
-aasqy;
-aasqz;
-aasra;
-aasrb;
-aasrc;
-aasrd;
-aasre;
-aasrf;
-aasrg;
-aasrh;
-aasri;
-aasrj;
-aasrk;
-aasrl;
-aasrm;
-aasrn;
-aasro;
-aasrp;
-aasrq;
-aasrr;
-aasrs;
-aasrt;
-aasru;
-aasrv;
-aasrw;
-aasrx;
-aasry;
-aasrz;
-aassa;
-aassb;
-aassc;
-aassd;
-aasse;
-aassf;
-aassg;
-aassh;
-aassi;
-aassj;
-aassk;
-aassl;
-aassm;
-aassn;
-aasso;
-aassp;
-aassq;
-aassr;
-aasss;
-aasst;
-aassu;
-aassv;
-aassw;
-aassx;
-aassy;
-aassz;
-aasta;
-aastb;
-aastc;
-aastd;
-aaste;
-aastf;
-aastg;
-aasth;
-aasti;
-aastj;
-aastk;
-aastl;
-aastm;
-aastn;
-aasto;
-aastp;
-aastq;
-aastr;
-aasts;
-aastt;
-aastu;
-aastv;
-aastw;
-aastx;
-aasty;
-aastz;
-aasua;
-aasub;
-aasuc;
-aasud;
-aasue;
-aasuf;
-aasug;
-aasuh;
-aasui;
-aasuj;
-aasuk;
-aasul;
-aasum;
-aasun;
-aasuo;
-aasup;
-aasuq;
-aasur;
-aasus;
-aasut;
-aasuu;
-aasuv;
-aasuw;
-aasux;
-aasuy;
-aasuz;
-aasva;
-aasvb;
-aasvc;
-aasvd;
-aasve;
-aasvf;
-aasvg;
-aasvh;
-aasvi;
-aasvj;
-aasvk;
-aasvl;
-aasvm;
-aasvn;
-aasvo;
-aasvp;
-aasvq;
-aasvr;
-aasvs;
-aasvt;
-aasvu;
-aasvv;
-aasvw;
-aasvx;
-aasvy;
-aasvz;
-aaswa;
-aaswb;
-aaswc;
-aaswd;
-aaswe;
-aaswf;
-aaswg;
-aaswh;
-aaswi;
-aaswj;
-aaswk;
-aaswl;
-aaswm;
-aaswn;
-aaswo;
-aaswp;
-aaswq;
-aaswr;
-aasws;
-aaswt;
-aaswu;
-aaswv;
-aasww;
-aaswx;
-aaswy;
-aaswz;
-aasxa;
-aasxb;
-aasxc;
-aasxd;
-aasxe;
-aasxf;
-aasxg;
-aasxh;
-aasxi;
-aasxj;
-aasxk;
-aasxl;
-aasxm;
-aasxn;
-aasxo;
-aasxp;
-aasxq;
-aasxr;
-aasxs;
-aasxt;
-aasxu;
-aasxv;
-aasxw;
-aasxx;
-aasxy;
-aasxz;
-aasya;
-aasyb;
-aasyc;
-aasyd;
-aasye;
-aasyf;
-aasyg;
-aasyh;
-aasyi;
-aasyj;
-aasyk;
-aasyl;
-aasym;
-aasyn;
-aasyo;
-aasyp;
-aasyq;
-aasyr;
-aasys;
-aasyt;
-aasyu;
-aasyv;
-aasyw;
-aasyx;
-aasyy;
-aasyz;
-aasza;
-aaszb;
-aaszc;
-aaszd;
-aasze;
-aaszf;
-aaszg;
-aaszh;
-aaszi;
-aaszj;
-aaszk;
-aaszl;
-aaszm;
-aaszn;
-aaszo;
-aaszp;
-aaszq;
-aaszr;
-aaszs;
-aaszt;
-aaszu;
-aaszv;
-aaszw;
-aaszx;
-aaszy;
-aaszz;
-aataa;
-aatab;
-aatac;
-aatad;
-aatae;
-aataf;
-aatag;
-aatah;
-aatai;
-aataj;
-aatak;
-aatal;
-aatam;
-aatan;
-aatao;
-aatap;
-aataq;
-aatar;
-aatas;
-aatat;
-aatau;
-aatav;
-aataw;
-aatax;
-aatay;
-aataz;
-aatba;
-aatbb;
-aatbc;
-aatbd;
-aatbe;
-aatbf;
-aatbg;
-aatbh;
-aatbi;
-aatbj;
-aatbk;
-aatbl;
-aatbm;
-aatbn;
-aatbo;
-aatbp;
-aatbq;
-aatbr;
-aatbs;
-aatbt;
-aatbu;
-aatbv;
-aatbw;
-aatbx;
-aatby;
-aatbz;
-aatca;
-aatcb;
-aatcc;
-aatcd;
-aatce;
-aatcf;
-aatcg;
-aatch;
-aatci;
-aatcj;
-aatck;
-aatcl;
-aatcm;
-aatcn;
-aatco;
-aatcp;
-aatcq;
-aatcr;
-aatcs;
-aatct;
-aatcu;
-aatcv;
-aatcw;
-aatcx;
-aatcy;
-aatcz;
-aatda;
-aatdb;
-aatdc;
-aatdd;
-aatde;
-aatdf;
-aatdg;
-aatdh;
-aatdi;
-aatdj;
-aatdk;
-aatdl;
-aatdm;
-aatdn;
-aatdo;
-aatdp;
-aatdq;
-aatdr;
-aatds;
-aatdt;
-aatdu;
-aatdv;
-aatdw;
-aatdx;
-aatdy;
-aatdz;
-aatea;
-aateb;
-aatec;
-aated;
-aatee;
-aatef;
-aateg;
-aateh;
-aatei;
-aatej;
-aatek;
-aatel;
-aatem;
-aaten;
-aateo;
-aatep;
-aateq;
-aater;
-aates;
-aatet;
-aateu;
-aatev;
-aatew;
-aatex;
-aatey;
-aatez;
-aatfa;
-aatfb;
-aatfc;
-aatfd;
-aatfe;
-aatff;
-aatfg;
-aatfh;
-aatfi;
-aatfj;
-aatfk;
-aatfl;
-aatfm;
-aatfn;
-aatfo;
-aatfp;
-aatfq;
-aatfr;
-aatfs;
-aatft;
-aatfu;
-aatfv;
-aatfw;
-aatfx;
-aatfy;
-aatfz;
-aatga;
-aatgb;
-aatgc;
-aatgd;
-aatge;
-aatgf;
-aatgg;
-aatgh;
-aatgi;
-aatgj;
-aatgk;
-aatgl;
-aatgm;
-aatgn;
-aatgo;
-aatgp;
-aatgq;
-aatgr;
-aatgs;
-aatgt;
-aatgu;
-aatgv;
-aatgw;
-aatgx;
-aatgy;
-aatgz;
-aatha;
-aathb;
-aathc;
-aathd;
-aathe;
-aathf;
-aathg;
-aathh;
-aathi;
-aathj;
-aathk;
-aathl;
-aathm;
-aathn;
-aatho;
-aathp;
-aathq;
-aathr;
-aaths;
-aatht;
-aathu;
-aathv;
-aathw;
-aathx;
-aathy;
-aathz;
-aatia;
-aatib;
-aatic;
-aatid;
-aatie;
-aatif;
-aatig;
-aatih;
-aatii;
-aatij;
-aatik;
-aatil;
-aatim;
-aatin;
-aatio;
-aatip;
-aatiq;
-aatir;
-aatis;
-aatit;
-aatiu;
-aativ;
-aatiw;
-aatix;
-aatiy;
-aatiz;
-aatja;
-aatjb;
-aatjc;
-aatjd;
-aatje;
-aatjf;
-aatjg;
-aatjh;
-aatji;
-aatjj;
-aatjk;
-aatjl;
-aatjm;
-aatjn;
-aatjo;
-aatjp;
-aatjq;
-aatjr;
-aatjs;
-aatjt;
-aatju;
-aatjv;
-aatjw;
-aatjx;
-aatjy;
-aatjz;
-aatka;
-aatkb;
-aatkc;
-aatkd;
-aatke;
-aatkf;
-aatkg;
-aatkh;
-aatki;
-aatkj;
-aatkk;
-aatkl;
-aatkm;
-aatkn;
-aatko;
-aatkp;
-aatkq;
-aatkr;
-aatks;
-aatkt;
-aatku;
-aatkv;
-aatkw;
-aatkx;
-aatky;
-aatkz;
-aatla;
-aatlb;
-aatlc;
-aatld;
-aatle;
-aatlf;
-aatlg;
-aatlh;
-aatli;
-aatlj;
-aatlk;
-aatll;
-aatlm;
-aatln;
-aatlo;
-aatlp;
-aatlq;
-aatlr;
-aatls;
-aatlt;
-aatlu;
-aatlv;
-aatlw;
-aatlx;
-aatly;
-aatlz;
-aatma;
-aatmb;
-aatmc;
-aatmd;
-aatme;
-aatmf;
-aatmg;
-aatmh;
-aatmi;
-aatmj;
-aatmk;
-aatml;
-aatmm;
-aatmn;
-aatmo;
-aatmp;
-aatmq;
-aatmr;
-aatms;
-aatmt;
-aatmu;
-aatmv;
-aatmw;
-aatmx;
-aatmy;
-aatmz;
-aatna;
-aatnb;
-aatnc;
-aatnd;
-aatne;
-aatnf;
-aatng;
-aatnh;
-aatni;
-aatnj;
-aatnk;
-aatnl;
-aatnm;
-aatnn;
-aatno;
-aatnp;
-aatnq;
-aatnr;
-aatns;
-aatnt;
-aatnu;
-aatnv;
-aatnw;
-aatnx;
-aatny;
-aatnz;
-aatoa;
-aatob;
-aatoc;
-aatod;
-aatoe;
-aatof;
-aatog;
-aatoh;
-aatoi;
-aatoj;
-aatok;
-aatol;
-aatom;
-aaton;
-aatoo;
-aatop;
-aatoq;
-aator;
-aatos;
-aatot;
-aatou;
-aatov;
-aatow;
-aatox;
-aatoy;
-aatoz;
-aatpa;
-aatpb;
-aatpc;
-aatpd;
-aatpe;
-aatpf;
-aatpg;
-aatph;
-aatpi;
-aatpj;
-aatpk;
-aatpl;
-aatpm;
-aatpn;
-aatpo;
-aatpp;
-aatpq;
-aatpr;
-aatps;
-aatpt;
-aatpu;
-aatpv;
-aatpw;
-aatpx;
-aatpy;
-aatpz;
-aatqa;
-aatqb;
-aatqc;
-aatqd;
-aatqe;
-aatqf;
-aatqg;
-aatqh;
-aatqi;
-aatqj;
-aatqk;
-aatql;
-aatqm;
-aatqn;
-aatqo;
-aatqp;
-aatqq;
-aatqr;
-aatqs;
-aatqt;
-aatqu;
-aatqv;
-aatqw;
-aatqx;
-aatqy;
-aatqz;
-aatra;
-aatrb;
-aatrc;
-aatrd;
-aatre;
-aatrf;
-aatrg;
-aatrh;
-aatri;
-aatrj;
-aatrk;
-aatrl;
-aatrm;
-aatrn;
-aatro;
-aatrp;
-aatrq;
-aatrr;
-aatrs;
-aatrt;
-aatru;
-aatrv;
-aatrw;
-aatrx;
-aatry;
-aatrz;
-aatsa;
-aatsb;
-aatsc;
-aatsd;
-aatse;
-aatsf;
-aatsg;
-aatsh;
-aatsi;
-aatsj;
-aatsk;
-aatsl;
-aatsm;
-aatsn;
-aatso;
-aatsp;
-aatsq;
-aatsr;
-aatss;
-aatst;
-aatsu;
-aatsv;
-aatsw;
-aatsx;
-aatsy;
-aatsz;
-aatta;
-aattb;
-aattc;
-aattd;
-aatte;
-aattf;
-aattg;
-aatth;
-aatti;
-aattj;
-aattk;
-aattl;
-aattm;
-aattn;
-aatto;
-aattp;
-aattq;
-aattr;
-aatts;
-aattt;
-aattu;
-aattv;
-aattw;
-aattx;
-aatty;
-aattz;
-aatua;
-aatub;
-aatuc;
-aatud;
-aatue;
-aatuf;
-aatug;
-aatuh;
-aatui;
-aatuj;
-aatuk;
-aatul;
-aatum;
-aatun;
-aatuo;
-aatup;
-aatuq;
-aatur;
-aatus;
-aatut;
-aatuu;
-aatuv;
-aatuw;
-aatux;
-aatuy;
-aatuz;
-aatva;
-aatvb;
-aatvc;
-aatvd;
-aatve;
-aatvf;
-aatvg;
-aatvh;
-aatvi;
-aatvj;
-aatvk;
-aatvl;
-aatvm;
-aatvn;
-aatvo;
-aatvp;
-aatvq;
-aatvr;
-aatvs;
-aatvt;
-aatvu;
-aatvv;
-aatvw;
-aatvx;
-aatvy;
-aatvz;
-aatwa;
-aatwb;
-aatwc;
-aatwd;
-aatwe;
-aatwf;
-aatwg;
-aatwh;
-aatwi;
-aatwj;
-aatwk;
-aatwl;
-aatwm;
-aatwn;
-aatwo;
-aatwp;
-aatwq;
-aatwr;
-aatws;
-aatwt;
-aatwu;
-aatwv;
-aatww;
-aatwx;
-aatwy;
-aatwz;
-aatxa;
-aatxb;
-aatxc;
-aatxd;
-aatxe;
-aatxf;
-aatxg;
-aatxh;
-aatxi;
-aatxj;
-aatxk;
-aatxl;
-aatxm;
-aatxn;
-aatxo;
-aatxp;
-aatxq;
-aatxr;
-aatxs;
-aatxt;
-aatxu;
-aatxv;
-aatxw;
-aatxx;
-aatxy;
-aatxz;
-aatya;
-aatyb;
-aatyc;
-aatyd;
-aatye;
-aatyf;
-aatyg;
-aatyh;
-aatyi;
-aatyj;
-aatyk;
-aatyl;
-aatym;
-aatyn;
-aatyo;
-aatyp;
-aatyq;
-aatyr;
-aatys;
-aatyt;
-aatyu;
-aatyv;
-aatyw;
-aatyx;
-aatyy;
-aatyz;
-aatza;
-aatzb;
-aatzc;
-aatzd;
-aatze;
-aatzf;
-aatzg;
-aatzh;
-aatzi;
-aatzj;
-aatzk;
-aatzl;
-aatzm;
-aatzn;
-aatzo;
-aatzp;
-aatzq;
-aatzr;
-aatzs;
-aatzt;
-aatzu;
-aatzv;
-aatzw;
-aatzx;
-aatzy;
-aatzz;
-aauaa;
-aauab;
-aauac;
-aauad;
-aauae;
-aauaf;
-aauag;
-aauah;
-aauai;
-aauaj;
-aauak;
-aaual;
-aauam;
-aauan;
-aauao;
-aauap;
-aauaq;
-aauar;
-aauas;
-aauat;
-aauau;
-aauav;
-aauaw;
-aauax;
-aauay;
-aauaz;
-aauba;
-aaubb;
-aaubc;
-aaubd;
-aaube;
-aaubf;
-aaubg;
-aaubh;
-aaubi;
-aaubj;
-aaubk;
-aaubl;
-aaubm;
-aaubn;
-aaubo;
-aaubp;
-aaubq;
-aaubr;
-aaubs;
-aaubt;
-aaubu;
-aaubv;
-aaubw;
-aaubx;
-aauby;
-aaubz;
-aauca;
-aaucb;
-aaucc;
-aaucd;
-aauce;
-aaucf;
-aaucg;
-aauch;
-aauci;
-aaucj;
-aauck;
-aaucl;
-aaucm;
-aaucn;
-aauco;
-aaucp;
-aaucq;
-aaucr;
-aaucs;
-aauct;
-aaucu;
-aaucv;
-aaucw;
-aaucx;
-aaucy;
-aaucz;
-aauda;
-aaudb;
-aaudc;
-aaudd;
-aaude;
-aaudf;
-aaudg;
-aaudh;
-aaudi;
-aaudj;
-aaudk;
-aaudl;
-aaudm;
-aaudn;
-aaudo;
-aaudp;
-aaudq;
-aaudr;
-aauds;
-aaudt;
-aaudu;
-aaudv;
-aaudw;
-aaudx;
-aaudy;
-aaudz;
-aauea;
-aaueb;
-aauec;
-aaued;
-aauee;
-aauef;
-aaueg;
-aaueh;
-aauei;
-aauej;
-aauek;
-aauel;
-aauem;
-aauen;
-aaueo;
-aauep;
-aaueq;
-aauer;
-aaues;
-aauet;
-aaueu;
-aauev;
-aauew;
-aauex;
-aauey;
-aauez;
-aaufa;
-aaufb;
-aaufc;
-aaufd;
-aaufe;
-aauff;
-aaufg;
-aaufh;
-aaufi;
-aaufj;
-aaufk;
-aaufl;
-aaufm;
-aaufn;
-aaufo;
-aaufp;
-aaufq;
-aaufr;
-aaufs;
-aauft;
-aaufu;
-aaufv;
-aaufw;
-aaufx;
-aaufy;
-aaufz;
-aauga;
-aaugb;
-aaugc;
-aaugd;
-aauge;
-aaugf;
-aaugg;
-aaugh;
-aaugi;
-aaugj;
-aaugk;
-aaugl;
-aaugm;
-aaugn;
-aaugo;
-aaugp;
-aaugq;
-aaugr;
-aaugs;
-aaugt;
-aaugu;
-aaugv;
-aaugw;
-aaugx;
-aaugy;
-aaugz;
-aauha;
-aauhb;
-aauhc;
-aauhd;
-aauhe;
-aauhf;
-aauhg;
-aauhh;
-aauhi;
-aauhj;
-aauhk;
-aauhl;
-aauhm;
-aauhn;
-aauho;
-aauhp;
-aauhq;
-aauhr;
-aauhs;
-aauht;
-aauhu;
-aauhv;
-aauhw;
-aauhx;
-aauhy;
-aauhz;
-aauia;
-aauib;
-aauic;
-aauid;
-aauie;
-aauif;
-aauig;
-aauih;
-aauii;
-aauij;
-aauik;
-aauil;
-aauim;
-aauin;
-aauio;
-aauip;
-aauiq;
-aauir;
-aauis;
-aauit;
-aauiu;
-aauiv;
-aauiw;
-aauix;
-aauiy;
-aauiz;
-aauja;
-aaujb;
-aaujc;
-aaujd;
-aauje;
-aaujf;
-aaujg;
-aaujh;
-aauji;
-aaujj;
-aaujk;
-aaujl;
-aaujm;
-aaujn;
-aaujo;
-aaujp;
-aaujq;
-aaujr;
-aaujs;
-aaujt;
-aauju;
-aaujv;
-aaujw;
-aaujx;
-aaujy;
-aaujz;
-aauka;
-aaukb;
-aaukc;
-aaukd;
-aauke;
-aaukf;
-aaukg;
-aaukh;
-aauki;
-aaukj;
-aaukk;
-aaukl;
-aaukm;
-aaukn;
-aauko;
-aaukp;
-aaukq;
-aaukr;
-aauks;
-aaukt;
-aauku;
-aaukv;
-aaukw;
-aaukx;
-aauky;
-aaukz;
-aaula;
-aaulb;
-aaulc;
-aauld;
-aaule;
-aaulf;
-aaulg;
-aaulh;
-aauli;
-aaulj;
-aaulk;
-aaull;
-aaulm;
-aauln;
-aaulo;
-aaulp;
-aaulq;
-aaulr;
-aauls;
-aault;
-aaulu;
-aaulv;
-aaulw;
-aaulx;
-aauly;
-aaulz;
-aauma;
-aaumb;
-aaumc;
-aaumd;
-aaume;
-aaumf;
-aaumg;
-aaumh;
-aaumi;
-aaumj;
-aaumk;
-aauml;
-aaumm;
-aaumn;
-aaumo;
-aaump;
-aaumq;
-aaumr;
-aaums;
-aaumt;
-aaumu;
-aaumv;
-aaumw;
-aaumx;
-aaumy;
-aaumz;
-aauna;
-aaunb;
-aaunc;
-aaund;
-aaune;
-aaunf;
-aaung;
-aaunh;
-aauni;
-aaunj;
-aaunk;
-aaunl;
-aaunm;
-aaunn;
-aauno;
-aaunp;
-aaunq;
-aaunr;
-aauns;
-aaunt;
-aaunu;
-aaunv;
-aaunw;
-aaunx;
-aauny;
-aaunz;
-aauoa;
-aauob;
-aauoc;
-aauod;
-aauoe;
-aauof;
-aauog;
-aauoh;
-aauoi;
-aauoj;
-aauok;
-aauol;
-aauom;
-aauon;
-aauoo;
-aauop;
-aauoq;
-aauor;
-aauos;
-aauot;
-aauou;
-aauov;
-aauow;
-aauox;
-aauoy;
-aauoz;
-aaupa;
-aaupb;
-aaupc;
-aaupd;
-aaupe;
-aaupf;
-aaupg;
-aauph;
-aaupi;
-aaupj;
-aaupk;
-aaupl;
-aaupm;
-aaupn;
-aaupo;
-aaupp;
-aaupq;
-aaupr;
-aaups;
-aaupt;
-aaupu;
-aaupv;
-aaupw;
-aaupx;
-aaupy;
-aaupz;
-aauqa;
-aauqb;
-aauqc;
-aauqd;
-aauqe;
-aauqf;
-aauqg;
-aauqh;
-aauqi;
-aauqj;
-aauqk;
-aauql;
-aauqm;
-aauqn;
-aauqo;
-aauqp;
-aauqq;
-aauqr;
-aauqs;
-aauqt;
-aauqu;
-aauqv;
-aauqw;
-aauqx;
-aauqy;
-aauqz;
-aaura;
-aaurb;
-aaurc;
-aaurd;
-aaure;
-aaurf;
-aaurg;
-aaurh;
-aauri;
-aaurj;
-aaurk;
-aaurl;
-aaurm;
-aaurn;
-aauro;
-aaurp;
-aaurq;
-aaurr;
-aaurs;
-aaurt;
-aauru;
-aaurv;
-aaurw;
-aaurx;
-aaury;
-aaurz;
-aausa;
-aausb;
-aausc;
-aausd;
-aause;
-aausf;
-aausg;
-aaush;
-aausi;
-aausj;
-aausk;
-aausl;
-aausm;
-aausn;
-aauso;
-aausp;
-aausq;
-aausr;
-aauss;
-aaust;
-aausu;
-aausv;
-aausw;
-aausx;
-aausy;
-aausz;
-aauta;
-aautb;
-aautc;
-aautd;
-aaute;
-aautf;
-aautg;
-aauth;
-aauti;
-aautj;
-aautk;
-aautl;
-aautm;
-aautn;
-aauto;
-aautp;
-aautq;
-aautr;
-aauts;
-aautt;
-aautu;
-aautv;
-aautw;
-aautx;
-aauty;
-aautz;
-aauua;
-aauub;
-aauuc;
-aauud;
-aauue;
-aauuf;
-aauug;
-aauuh;
-aauui;
-aauuj;
-aauuk;
-aauul;
-aauum;
-aauun;
-aauuo;
-aauup;
-aauuq;
-aauur;
-aauus;
-aauut;
-aauuu;
-aauuv;
-aauuw;
-aauux;
-aauuy;
-aauuz;
-aauva;
-aauvb;
-aauvc;
-aauvd;
-aauve;
-aauvf;
-aauvg;
-aauvh;
-aauvi;
-aauvj;
-aauvk;
-aauvl;
-aauvm;
-aauvn;
-aauvo;
-aauvp;
-aauvq;
-aauvr;
-aauvs;
-aauvt;
-aauvu;
-aauvv;
-aauvw;
-aauvx;
-aauvy;
-aauvz;
-aauwa;
-aauwb;
-aauwc;
-aauwd;
-aauwe;
-aauwf;
-aauwg;
-aauwh;
-aauwi;
-aauwj;
-aauwk;
-aauwl;
-aauwm;
-aauwn;
-aauwo;
-aauwp;
-aauwq;
-aauwr;
-aauws;
-aauwt;
-aauwu;
-aauwv;
-aauww;
-aauwx;
-aauwy;
-aauwz;
-aauxa;
-aauxb;
-aauxc;
-aauxd;
-aauxe;
-aauxf;
-aauxg;
-aauxh;
-aauxi;
-aauxj;
-aauxk;
-aauxl;
-aauxm;
-aauxn;
-aauxo;
-aauxp;
-aauxq;
-aauxr;
-aauxs;
-aauxt;
-aauxu;
-aauxv;
-aauxw;
-aauxx;
-aauxy;
-aauxz;
-aauya;
-aauyb;
-aauyc;
-aauyd;
-aauye;
-aauyf;
-aauyg;
-aauyh;
-aauyi;
-aauyj;
-aauyk;
-aauyl;
-aauym;
-aauyn;
-aauyo;
-aauyp;
-aauyq;
-aauyr;
-aauys;
-aauyt;
-aauyu;
-aauyv;
-aauyw;
-aauyx;
-aauyy;
-aauyz;
-aauza;
-aauzb;
-aauzc;
-aauzd;
-aauze;
-aauzf;
-aauzg;
-aauzh;
-aauzi;
-aauzj;
-aauzk;
-aauzl;
-aauzm;
-aauzn;
-aauzo;
-aauzp;
-aauzq;
-aauzr;
-aauzs;
-aauzt;
-aauzu;
-aauzv;
-aauzw;
-aauzx;
-aauzy;
-aauzz;
-aavaa;
-aavab;
-aavac;
-aavad;
-aavae;
-aavaf;
-aavag;
-aavah;
-aavai;
-aavaj;
-aavak;
-aaval;
-aavam;
-aavan;
-aavao;
-aavap;
-aavaq;
-aavar;
-aavas;
-aavat;
-aavau;
-aavav;
-aavaw;
-aavax;
-aavay;
-aavaz;
-aavba;
-aavbb;
-aavbc;
-aavbd;
-aavbe;
-aavbf;
-aavbg;
-aavbh;
-aavbi;
-aavbj;
-aavbk;
-aavbl;
-aavbm;
-aavbn;
-aavbo;
-aavbp;
-aavbq;
-aavbr;
-aavbs;
-aavbt;
-aavbu;
-aavbv;
-aavbw;
-aavbx;
-aavby;
-aavbz;
-aavca;
-aavcb;
-aavcc;
-aavcd;
-aavce;
-aavcf;
-aavcg;
-aavch;
-aavci;
-aavcj;
-aavck;
-aavcl;
-aavcm;
-aavcn;
-aavco;
-aavcp;
-aavcq;
-aavcr;
-aavcs;
-aavct;
-aavcu;
-aavcv;
-aavcw;
-aavcx;
-aavcy;
-aavcz;
-aavda;
-aavdb;
-aavdc;
-aavdd;
-aavde;
-aavdf;
-aavdg;
-aavdh;
-aavdi;
-aavdj;
-aavdk;
-aavdl;
-aavdm;
-aavdn;
-aavdo;
-aavdp;
-aavdq;
-aavdr;
-aavds;
-aavdt;
-aavdu;
-aavdv;
-aavdw;
-aavdx;
-aavdy;
-aavdz;
-aavea;
-aaveb;
-aavec;
-aaved;
-aavee;
-aavef;
-aaveg;
-aaveh;
-aavei;
-aavej;
-aavek;
-aavel;
-aavem;
-aaven;
-aaveo;
-aavep;
-aaveq;
-aaver;
-aaves;
-aavet;
-aaveu;
-aavev;
-aavew;
-aavex;
-aavey;
-aavez;
-aavfa;
-aavfb;
-aavfc;
-aavfd;
-aavfe;
-aavff;
-aavfg;
-aavfh;
-aavfi;
-aavfj;
-aavfk;
-aavfl;
-aavfm;
-aavfn;
-aavfo;
-aavfp;
-aavfq;
-aavfr;
-aavfs;
-aavft;
-aavfu;
-aavfv;
-aavfw;
-aavfx;
-aavfy;
-aavfz;
-aavga;
-aavgb;
-aavgc;
-aavgd;
-aavge;
-aavgf;
-aavgg;
-aavgh;
-aavgi;
-aavgj;
-aavgk;
-aavgl;
-aavgm;
-aavgn;
-aavgo;
-aavgp;
-aavgq;
-aavgr;
-aavgs;
-aavgt;
-aavgu;
-aavgv;
-aavgw;
-aavgx;
-aavgy;
-aavgz;
-aavha;
-aavhb;
-aavhc;
-aavhd;
-aavhe;
-aavhf;
-aavhg;
-aavhh;
-aavhi;
-aavhj;
-aavhk;
-aavhl;
-aavhm;
-aavhn;
-aavho;
-aavhp;
-aavhq;
-aavhr;
-aavhs;
-aavht;
-aavhu;
-aavhv;
-aavhw;
-aavhx;
-aavhy;
-aavhz;
-aavia;
-aavib;
-aavic;
-aavid;
-aavie;
-aavif;
-aavig;
-aavih;
-aavii;
-aavij;
-aavik;
-aavil;
-aavim;
-aavin;
-aavio;
-aavip;
-aaviq;
-aavir;
-aavis;
-aavit;
-aaviu;
-aaviv;
-aaviw;
-aavix;
-aaviy;
-aaviz;
-aavja;
-aavjb;
-aavjc;
-aavjd;
-aavje;
-aavjf;
-aavjg;
-aavjh;
-aavji;
-aavjj;
-aavjk;
-aavjl;
-aavjm;
-aavjn;
-aavjo;
-aavjp;
-aavjq;
-aavjr;
-aavjs;
-aavjt;
-aavju;
-aavjv;
-aavjw;
-aavjx;
-aavjy;
-aavjz;
-aavka;
-aavkb;
-aavkc;
-aavkd;
-aavke;
-aavkf;
-aavkg;
-aavkh;
-aavki;
-aavkj;
-aavkk;
-aavkl;
-aavkm;
-aavkn;
-aavko;
-aavkp;
-aavkq;
-aavkr;
-aavks;
-aavkt;
-aavku;
-aavkv;
-aavkw;
-aavkx;
-aavky;
-aavkz;
-aavla;
-aavlb;
-aavlc;
-aavld;
-aavle;
-aavlf;
-aavlg;
-aavlh;
-aavli;
-aavlj;
-aavlk;
-aavll;
-aavlm;
-aavln;
-aavlo;
-aavlp;
-aavlq;
-aavlr;
-aavls;
-aavlt;
-aavlu;
-aavlv;
-aavlw;
-aavlx;
-aavly;
-aavlz;
-aavma;
-aavmb;
-aavmc;
-aavmd;
-aavme;
-aavmf;
-aavmg;
-aavmh;
-aavmi;
-aavmj;
-aavmk;
-aavml;
-aavmm;
-aavmn;
-aavmo;
-aavmp;
-aavmq;
-aavmr;
-aavms;
-aavmt;
-aavmu;
-aavmv;
-aavmw;
-aavmx;
-aavmy;
-aavmz;
-aavna;
-aavnb;
-aavnc;
-aavnd;
-aavne;
-aavnf;
-aavng;
-aavnh;
-aavni;
-aavnj;
-aavnk;
-aavnl;
-aavnm;
-aavnn;
-aavno;
-aavnp;
-aavnq;
-aavnr;
-aavns;
-aavnt;
-aavnu;
-aavnv;
-aavnw;
-aavnx;
-aavny;
-aavnz;
-aavoa;
-aavob;
-aavoc;
-aavod;
-aavoe;
-aavof;
-aavog;
-aavoh;
-aavoi;
-aavoj;
-aavok;
-aavol;
-aavom;
-aavon;
-aavoo;
-aavop;
-aavoq;
-aavor;
-aavos;
-aavot;
-aavou;
-aavov;
-aavow;
-aavox;
-aavoy;
-aavoz;
-aavpa;
-aavpb;
-aavpc;
-aavpd;
-aavpe;
-aavpf;
-aavpg;
-aavph;
-aavpi;
-aavpj;
-aavpk;
-aavpl;
-aavpm;
-aavpn;
-aavpo;
-aavpp;
-aavpq;
-aavpr;
-aavps;
-aavpt;
-aavpu;
-aavpv;
-aavpw;
-aavpx;
-aavpy;
-aavpz;
-aavqa;
-aavqb;
-aavqc;
-aavqd;
-aavqe;
-aavqf;
-aavqg;
-aavqh;
-aavqi;
-aavqj;
-aavqk;
-aavql;
-aavqm;
-aavqn;
-aavqo;
-aavqp;
-aavqq;
-aavqr;
-aavqs;
-aavqt;
-aavqu;
-aavqv;
-aavqw;
-aavqx;
-aavqy;
-aavqz;
-aavra;
-aavrb;
-aavrc;
-aavrd;
-aavre;
-aavrf;
-aavrg;
-aavrh;
-aavri;
-aavrj;
-aavrk;
-aavrl;
-aavrm;
-aavrn;
-aavro;
-aavrp;
-aavrq;
-aavrr;
-aavrs;
-aavrt;
-aavru;
-aavrv;
-aavrw;
-aavrx;
-aavry;
-aavrz;
-aavsa;
-aavsb;
-aavsc;
-aavsd;
-aavse;
-aavsf;
-aavsg;
-aavsh;
-aavsi;
-aavsj;
-aavsk;
-aavsl;
-aavsm;
-aavsn;
-aavso;
-aavsp;
-aavsq;
-aavsr;
-aavss;
-aavst;
-aavsu;
-aavsv;
-aavsw;
-aavsx;
-aavsy;
-aavsz;
-aavta;
-aavtb;
-aavtc;
-aavtd;
-aavte;
-aavtf;
-aavtg;
-aavth;
-aavti;
-aavtj;
-aavtk;
-aavtl;
-aavtm;
-aavtn;
-aavto;
-aavtp;
-aavtq;
-aavtr;
-aavts;
-aavtt;
-aavtu;
-aavtv;
-aavtw;
-aavtx;
-aavty;
-aavtz;
-aavua;
-aavub;
-aavuc;
-aavud;
-aavue;
-aavuf;
-aavug;
-aavuh;
-aavui;
-aavuj;
-aavuk;
-aavul;
-aavum;
-aavun;
-aavuo;
-aavup;
-aavuq;
-aavur;
-aavus;
-aavut;
-aavuu;
-aavuv;
-aavuw;
-aavux;
-aavuy;
-aavuz;
-aavva;
-aavvb;
-aavvc;
-aavvd;
-aavve;
-aavvf;
-aavvg;
-aavvh;
-aavvi;
-aavvj;
-aavvk;
-aavvl;
-aavvm;
-aavvn;
-aavvo;
-aavvp;
-aavvq;
-aavvr;
-aavvs;
-aavvt;
-aavvu;
-aavvv;
-aavvw;
-aavvx;
-aavvy;
-aavvz;
-aavwa;
-aavwb;
-aavwc;
-aavwd;
-aavwe;
-aavwf;
-aavwg;
-aavwh;
-aavwi;
-aavwj;
-aavwk;
-aavwl;
-aavwm;
-aavwn;
-aavwo;
-aavwp;
-aavwq;
-aavwr;
-aavws;
-aavwt;
-aavwu;
-aavwv;
-aavww;
-aavwx;
-aavwy;
-aavwz;
-aavxa;
-aavxb;
-aavxc;
-aavxd;
-aavxe;
-aavxf;
-aavxg;
-aavxh;
-aavxi;
-aavxj;
-aavxk;
-aavxl;
-aavxm;
-aavxn;
-aavxo;
-aavxp;
-aavxq;
-aavxr;
-aavxs;
-aavxt;
-aavxu;
-aavxv;
-aavxw;
-aavxx;
-aavxy;
-aavxz;
-aavya;
-aavyb;
-aavyc;
-aavyd;
-aavye;
-aavyf;
-aavyg;
-aavyh;
-aavyi;
-aavyj;
-aavyk;
-aavyl;
-aavym;
-aavyn;
-aavyo;
-aavyp;
-aavyq;
-aavyr;
-aavys;
-aavyt;
-aavyu;
-aavyv;
-aavyw;
-aavyx;
-aavyy;
-aavyz;
-aavza;
-aavzb;
-aavzc;
-aavzd;
-aavze;
-aavzf;
-aavzg;
-aavzh;
-aavzi;
-aavzj;
-aavzk;
-aavzl;
-aavzm;
-aavzn;
-aavzo;
-aavzp;
-aavzq;
-aavzr;
-aavzs;
-aavzt;
-aavzu;
-aavzv;
-aavzw;
-aavzx;
-aavzy;
-aavzz;
-aawaa;
-aawab;
-aawac;
-aawad;
-aawae;
-aawaf;
-aawag;
-aawah;
-aawai;
-aawaj;
-aawak;
-aawal;
-aawam;
-aawan;
-aawao;
-aawap;
-aawaq;
-aawar;
-aawas;
-aawat;
-aawau;
-aawav;
-aawaw;
-aawax;
-aaway;
-aawaz;
-aawba;
-aawbb;
-aawbc;
-aawbd;
-aawbe;
-aawbf;
-aawbg;
-aawbh;
-aawbi;
-aawbj;
-aawbk;
-aawbl;
-aawbm;
-aawbn;
-aawbo;
-aawbp;
-aawbq;
-aawbr;
-aawbs;
-aawbt;
-aawbu;
-aawbv;
-aawbw;
-aawbx;
-aawby;
-aawbz;
-aawca;
-aawcb;
-aawcc;
-aawcd;
-aawce;
-aawcf;
-aawcg;
-aawch;
-aawci;
-aawcj;
-aawck;
-aawcl;
-aawcm;
-aawcn;
-aawco;
-aawcp;
-aawcq;
-aawcr;
-aawcs;
-aawct;
-aawcu;
-aawcv;
-aawcw;
-aawcx;
-aawcy;
-aawcz;
-aawda;
-aawdb;
-aawdc;
-aawdd;
-aawde;
-aawdf;
-aawdg;
-aawdh;
-aawdi;
-aawdj;
-aawdk;
-aawdl;
-aawdm;
-aawdn;
-aawdo;
-aawdp;
-aawdq;
-aawdr;
-aawds;
-aawdt;
-aawdu;
-aawdv;
-aawdw;
-aawdx;
-aawdy;
-aawdz;
-aawea;
-aaweb;
-aawec;
-aawed;
-aawee;
-aawef;
-aaweg;
-aaweh;
-aawei;
-aawej;
-aawek;
-aawel;
-aawem;
-aawen;
-aaweo;
-aawep;
-aaweq;
-aawer;
-aawes;
-aawet;
-aaweu;
-aawev;
-aawew;
-aawex;
-aawey;
-aawez;
-aawfa;
-aawfb;
-aawfc;
-aawfd;
-aawfe;
-aawff;
-aawfg;
-aawfh;
-aawfi;
-aawfj;
-aawfk;
-aawfl;
-aawfm;
-aawfn;
-aawfo;
-aawfp;
-aawfq;
-aawfr;
-aawfs;
-aawft;
-aawfu;
-aawfv;
-aawfw;
-aawfx;
-aawfy;
-aawfz;
-aawga;
-aawgb;
-aawgc;
-aawgd;
-aawge;
-aawgf;
-aawgg;
-aawgh;
-aawgi;
-aawgj;
-aawgk;
-aawgl;
-aawgm;
-aawgn;
-aawgo;
-aawgp;
-aawgq;
-aawgr;
-aawgs;
-aawgt;
-aawgu;
-aawgv;
-aawgw;
-aawgx;
-aawgy;
-aawgz;
-aawha;
-aawhb;
-aawhc;
-aawhd;
-aawhe;
-aawhf;
-aawhg;
-aawhh;
-aawhi;
-aawhj;
-aawhk;
-aawhl;
-aawhm;
-aawhn;
-aawho;
-aawhp;
-aawhq;
-aawhr;
-aawhs;
-aawht;
-aawhu;
-aawhv;
-aawhw;
-aawhx;
-aawhy;
-aawhz;
-aawia;
-aawib;
-aawic;
-aawid;
-aawie;
-aawif;
-aawig;
-aawih;
-aawii;
-aawij;
-aawik;
-aawil;
-aawim;
-aawin;
-aawio;
-aawip;
-aawiq;
-aawir;
-aawis;
-aawit;
-aawiu;
-aawiv;
-aawiw;
-aawix;
-aawiy;
-aawiz;
-aawja;
-aawjb;
-aawjc;
-aawjd;
-aawje;
-aawjf;
-aawjg;
-aawjh;
-aawji;
-aawjj;
-aawjk;
-aawjl;
-aawjm;
-aawjn;
-aawjo;
-aawjp;
-aawjq;
-aawjr;
-aawjs;
-aawjt;
-aawju;
-aawjv;
-aawjw;
-aawjx;
-aawjy;
-aawjz;
-aawka;
-aawkb;
-aawkc;
-aawkd;
-aawke;
-aawkf;
-aawkg;
-aawkh;
-aawki;
-aawkj;
-aawkk;
-aawkl;
-aawkm;
-aawkn;
-aawko;
-aawkp;
-aawkq;
-aawkr;
-aawks;
-aawkt;
-aawku;
-aawkv;
-aawkw;
-aawkx;
-aawky;
-aawkz;
-aawla;
-aawlb;
-aawlc;
-aawld;
-aawle;
-aawlf;
-aawlg;
-aawlh;
-aawli;
-aawlj;
-aawlk;
-aawll;
-aawlm;
-aawln;
-aawlo;
-aawlp;
-aawlq;
-aawlr;
-aawls;
-aawlt;
-aawlu;
-aawlv;
-aawlw;
-aawlx;
-aawly;
-aawlz;
-aawma;
-aawmb;
-aawmc;
-aawmd;
-aawme;
-aawmf;
-aawmg;
-aawmh;
-aawmi;
-aawmj;
-aawmk;
-aawml;
-aawmm;
-aawmn;
-aawmo;
-aawmp;
-aawmq;
-aawmr;
-aawms;
-aawmt;
-aawmu;
-aawmv;
-aawmw;
-aawmx;
-aawmy;
-aawmz;
-aawna;
-aawnb;
-aawnc;
-aawnd;
-aawne;
-aawnf;
-aawng;
-aawnh;
-aawni;
-aawnj;
-aawnk;
-aawnl;
-aawnm;
-aawnn;
-aawno;
-aawnp;
-aawnq;
-aawnr;
-aawns;
-aawnt;
-aawnu;
-aawnv;
-aawnw;
-aawnx;
-aawny;
-aawnz;
-aawoa;
-aawob;
-aawoc;
-aawod;
-aawoe;
-aawof;
-aawog;
-aawoh;
-aawoi;
-aawoj;
-aawok;
-aawol;
-aawom;
-aawon;
-aawoo;
-aawop;
-aawoq;
-aawor;
-aawos;
-aawot;
-aawou;
-aawov;
-aawow;
-aawox;
-aawoy;
-aawoz;
-aawpa;
-aawpb;
-aawpc;
-aawpd;
-aawpe;
-aawpf;
-aawpg;
-aawph;
-aawpi;
-aawpj;
-aawpk;
-aawpl;
-aawpm;
-aawpn;
-aawpo;
-aawpp;
-aawpq;
-aawpr;
-aawps;
-aawpt;
-aawpu;
-aawpv;
-aawpw;
-aawpx;
-aawpy;
-aawpz;
-aawqa;
-aawqb;
-aawqc;
-aawqd;
-aawqe;
-aawqf;
-aawqg;
-aawqh;
-aawqi;
-aawqj;
-aawqk;
-aawql;
-aawqm;
-aawqn;
-aawqo;
-aawqp;
-aawqq;
-aawqr;
-aawqs;
-aawqt;
-aawqu;
-aawqv;
-aawqw;
-aawqx;
-aawqy;
-aawqz;
-aawra;
-aawrb;
-aawrc;
-aawrd;
-aawre;
-aawrf;
-aawrg;
-aawrh;
-aawri;
-aawrj;
-aawrk;
-aawrl;
-aawrm;
-aawrn;
-aawro;
-aawrp;
-aawrq;
-aawrr;
-aawrs;
-aawrt;
-aawru;
-aawrv;
-aawrw;
-aawrx;
-aawry;
-aawrz;
-aawsa;
-aawsb;
-aawsc;
-aawsd;
-aawse;
-aawsf;
-aawsg;
-aawsh;
-aawsi;
-aawsj;
-aawsk;
-aawsl;
-aawsm;
-aawsn;
-aawso;
-aawsp;
-aawsq;
-aawsr;
-aawss;
-aawst;
-aawsu;
-aawsv;
-aawsw;
-aawsx;
-aawsy;
-aawsz;
-aawta;
-aawtb;
-aawtc;
-aawtd;
-aawte;
-aawtf;
-aawtg;
-aawth;
-aawti;
-aawtj;
-aawtk;
-aawtl;
-aawtm;
-aawtn;
-aawto;
-aawtp;
-aawtq;
-aawtr;
-aawts;
-aawtt;
-aawtu;
-aawtv;
-aawtw;
-aawtx;
-aawty;
-aawtz;
-aawua;
-aawub;
-aawuc;
-aawud;
-aawue;
-aawuf;
-aawug;
-aawuh;
-aawui;
-aawuj;
-aawuk;
-aawul;
-aawum;
-aawun;
-aawuo;
-aawup;
-aawuq;
-aawur;
-aawus;
-aawut;
-aawuu;
-aawuv;
-aawuw;
-aawux;
-aawuy;
-aawuz;
-aawva;
-aawvb;
-aawvc;
-aawvd;
-aawve;
-aawvf;
-aawvg;
-aawvh;
-aawvi;
-aawvj;
-aawvk;
-aawvl;
-aawvm;
-aawvn;
-aawvo;
-aawvp;
-aawvq;
-aawvr;
-aawvs;
-aawvt;
-aawvu;
-aawvv;
-aawvw;
-aawvx;
-aawvy;
-aawvz;
-aawwa;
-aawwb;
-aawwc;
-aawwd;
-aawwe;
-aawwf;
-aawwg;
-aawwh;
-aawwi;
-aawwj;
-aawwk;
-aawwl;
-aawwm;
-aawwn;
-aawwo;
-aawwp;
-aawwq;
-aawwr;
-aawws;
-aawwt;
-aawwu;
-aawwv;
-aawww;
-aawwx;
-aawwy;
-aawwz;
-aawxa;
-aawxb;
-aawxc;
-aawxd;
-aawxe;
-aawxf;
-aawxg;
-aawxh;
-aawxi;
-aawxj;
-aawxk;
-aawxl;
-aawxm;
-aawxn;
-aawxo;
-aawxp;
-aawxq;
-aawxr;
-aawxs;
-aawxt;
-aawxu;
-aawxv;
-aawxw;
-aawxx;
-aawxy;
-aawxz;
-aawya;
-aawyb;
-aawyc;
-aawyd;
-aawye;
-aawyf;
-aawyg;
-aawyh;
-aawyi;
-aawyj;
-aawyk;
-aawyl;
-aawym;
-aawyn;
-aawyo;
-aawyp;
-aawyq;
-aawyr;
-aawys;
-aawyt;
-aawyu;
-aawyv;
-aawyw;
-aawyx;
-aawyy;
-aawyz;
-aawza;
-aawzb;
-aawzc;
-aawzd;
-aawze;
-aawzf;
-aawzg;
-aawzh;
-aawzi;
-aawzj;
-aawzk;
-aawzl;
-aawzm;
-aawzn;
-aawzo;
-aawzp;
-aawzq;
-aawzr;
-aawzs;
-aawzt;
-aawzu;
-aawzv;
-aawzw;
-aawzx;
-aawzy;
-aawzz;
-aaxaa;
-aaxab;
-aaxac;
-aaxad;
-aaxae;
-aaxaf;
-aaxag;
-aaxah;
-aaxai;
-aaxaj;
-aaxak;
-aaxal;
-aaxam;
-aaxan;
-aaxao;
-aaxap;
-aaxaq;
-aaxar;
-aaxas;
-aaxat;
-aaxau;
-aaxav;
-aaxaw;
-aaxax;
-aaxay;
-aaxaz;
-aaxba;
-aaxbb;
-aaxbc;
-aaxbd;
-aaxbe;
-aaxbf;
-aaxbg;
-aaxbh;
-aaxbi;
-aaxbj;
-aaxbk;
-aaxbl;
-aaxbm;
-aaxbn;
-aaxbo;
-aaxbp;
-aaxbq;
-aaxbr;
-aaxbs;
-aaxbt;
-aaxbu;
-aaxbv;
-aaxbw;
-aaxbx;
-aaxby;
-aaxbz;
-aaxca;
-aaxcb;
-aaxcc;
-aaxcd;
-aaxce;
-aaxcf;
-aaxcg;
-aaxch;
-aaxci;
-aaxcj;
-aaxck;
-aaxcl;
-aaxcm;
-aaxcn;
-aaxco;
-aaxcp;
-aaxcq;
-aaxcr;
-aaxcs;
-aaxct;
-aaxcu;
-aaxcv;
-aaxcw;
-aaxcx;
-aaxcy;
-aaxcz;
-aaxda;
-aaxdb;
-aaxdc;
-aaxdd;
-aaxde;
-aaxdf;
-aaxdg;
-aaxdh;
-aaxdi;
-aaxdj;
-aaxdk;
-aaxdl;
-aaxdm;
-aaxdn;
-aaxdo;
-aaxdp;
-aaxdq;
-aaxdr;
-aaxds;
-aaxdt;
-aaxdu;
-aaxdv;
-aaxdw;
-aaxdx;
-aaxdy;
-aaxdz;
-aaxea;
-aaxeb;
-aaxec;
-aaxed;
-aaxee;
-aaxef;
-aaxeg;
-aaxeh;
-aaxei;
-aaxej;
-aaxek;
-aaxel;
-aaxem;
-aaxen;
-aaxeo;
-aaxep;
-aaxeq;
-aaxer;
-aaxes;
-aaxet;
-aaxeu;
-aaxev;
-aaxew;
-aaxex;
-aaxey;
-aaxez;
-aaxfa;
-aaxfb;
-aaxfc;
-aaxfd;
-aaxfe;
-aaxff;
-aaxfg;
-aaxfh;
-aaxfi;
-aaxfj;
-aaxfk;
-aaxfl;
-aaxfm;
-aaxfn;
-aaxfo;
-aaxfp;
-aaxfq;
-aaxfr;
-aaxfs;
-aaxft;
-aaxfu;
-aaxfv;
-aaxfw;
-aaxfx;
-aaxfy;
-aaxfz;
-aaxga;
-aaxgb;
-aaxgc;
-aaxgd;
-aaxge;
-aaxgf;
-aaxgg;
-aaxgh;
-aaxgi;
-aaxgj;
-aaxgk;
-aaxgl;
-aaxgm;
-aaxgn;
-aaxgo;
-aaxgp;
-aaxgq;
-aaxgr;
-aaxgs;
-aaxgt;
-aaxgu;
-aaxgv;
-aaxgw;
-aaxgx;
-aaxgy;
-aaxgz;
-aaxha;
-aaxhb;
-aaxhc;
-aaxhd;
-aaxhe;
-aaxhf;
-aaxhg;
-aaxhh;
-aaxhi;
-aaxhj;
-aaxhk;
-aaxhl;
-aaxhm;
-aaxhn;
-aaxho;
-aaxhp;
-aaxhq;
-aaxhr;
-aaxhs;
-aaxht;
-aaxhu;
-aaxhv;
-aaxhw;
-aaxhx;
-aaxhy;
-aaxhz;
-aaxia;
-aaxib;
-aaxic;
-aaxid;
-aaxie;
-aaxif;
-aaxig;
-aaxih;
-aaxii;
-aaxij;
-aaxik;
-aaxil;
-aaxim;
-aaxin;
-aaxio;
-aaxip;
-aaxiq;
-aaxir;
-aaxis;
-aaxit;
-aaxiu;
-aaxiv;
-aaxiw;
-aaxix;
-aaxiy;
-aaxiz;
-aaxja;
-aaxjb;
-aaxjc;
-aaxjd;
-aaxje;
-aaxjf;
-aaxjg;
-aaxjh;
-aaxji;
-aaxjj;
-aaxjk;
-aaxjl;
-aaxjm;
-aaxjn;
-aaxjo;
-aaxjp;
-aaxjq;
-aaxjr;
-aaxjs;
-aaxjt;
-aaxju;
-aaxjv;
-aaxjw;
-aaxjx;
-aaxjy;
-aaxjz;
-aaxka;
-aaxkb;
-aaxkc;
-aaxkd;
-aaxke;
-aaxkf;
-aaxkg;
-aaxkh;
-aaxki;
-aaxkj;
-aaxkk;
-aaxkl;
-aaxkm;
-aaxkn;
-aaxko;
-aaxkp;
-aaxkq;
-aaxkr;
-aaxks;
-aaxkt;
-aaxku;
-aaxkv;
-aaxkw;
-aaxkx;
-aaxky;
-aaxkz;
-aaxla;
-aaxlb;
-aaxlc;
-aaxld;
-aaxle;
-aaxlf;
-aaxlg;
-aaxlh;
-aaxli;
-aaxlj;
-aaxlk;
-aaxll;
-aaxlm;
-aaxln;
-aaxlo;
-aaxlp;
-aaxlq;
-aaxlr;
-aaxls;
-aaxlt;
-aaxlu;
-aaxlv;
-aaxlw;
-aaxlx;
-aaxly;
-aaxlz;
-aaxma;
-aaxmb;
-aaxmc;
-aaxmd;
-aaxme;
-aaxmf;
-aaxmg;
-aaxmh;
-aaxmi;
-aaxmj;
-aaxmk;
-aaxml;
-aaxmm;
-aaxmn;
-aaxmo;
-aaxmp;
-aaxmq;
-aaxmr;
-aaxms;
-aaxmt;
-aaxmu;
-aaxmv;
-aaxmw;
-aaxmx;
-aaxmy;
-aaxmz;
-aaxna;
-aaxnb;
-aaxnc;
-aaxnd;
-aaxne;
-aaxnf;
-aaxng;
-aaxnh;
-aaxni;
-aaxnj;
-aaxnk;
-aaxnl;
-aaxnm;
-aaxnn;
-aaxno;
-aaxnp;
-aaxnq;
-aaxnr;
-aaxns;
-aaxnt;
-aaxnu;
-aaxnv;
-aaxnw;
-aaxnx;
-aaxny;
-aaxnz;
-aaxoa;
-aaxob;
-aaxoc;
-aaxod;
-aaxoe;
-aaxof;
-aaxog;
-aaxoh;
-aaxoi;
-aaxoj;
-aaxok;
-aaxol;
-aaxom;
-aaxon;
-aaxoo;
-aaxop;
-aaxoq;
-aaxor;
-aaxos;
-aaxot;
-aaxou;
-aaxov;
-aaxow;
-aaxox;
-aaxoy;
-aaxoz;
-aaxpa;
-aaxpb;
-aaxpc;
-aaxpd;
-aaxpe;
-aaxpf;
-aaxpg;
-aaxph;
-aaxpi;
-aaxpj;
-aaxpk;
-aaxpl;
-aaxpm;
-aaxpn;
-aaxpo;
-aaxpp;
-aaxpq;
-aaxpr;
-aaxps;
-aaxpt;
-aaxpu;
-aaxpv;
-aaxpw;
-aaxpx;
-aaxpy;
-aaxpz;
-aaxqa;
-aaxqb;
-aaxqc;
-aaxqd;
-aaxqe;
-aaxqf;
-aaxqg;
-aaxqh;
-aaxqi;
-aaxqj;
-aaxqk;
-aaxql;
-aaxqm;
-aaxqn;
-aaxqo;
-aaxqp;
-aaxqq;
-aaxqr;
-aaxqs;
-aaxqt;
-aaxqu;
-aaxqv;
-aaxqw;
-aaxqx;
-aaxqy;
-aaxqz;
-aaxra;
-aaxrb;
-aaxrc;
-aaxrd;
-aaxre;
-aaxrf;
-aaxrg;
-aaxrh;
-aaxri;
-aaxrj;
-aaxrk;
-aaxrl;
-aaxrm;
-aaxrn;
-aaxro;
-aaxrp;
-aaxrq;
-aaxrr;
-aaxrs;
-aaxrt;
-aaxru;
-aaxrv;
-aaxrw;
-aaxrx;
-aaxry;
-aaxrz;
-aaxsa;
-aaxsb;
-aaxsc;
-aaxsd;
-aaxse;
-aaxsf;
-aaxsg;
-aaxsh;
-aaxsi;
-aaxsj;
-aaxsk;
-aaxsl;
-aaxsm;
-aaxsn;
-aaxso;
-aaxsp;
-aaxsq;
-aaxsr;
-aaxss;
-aaxst;
-aaxsu;
-aaxsv;
-aaxsw;
-aaxsx;
-aaxsy;
-aaxsz;
-aaxta;
-aaxtb;
-aaxtc;
-aaxtd;
-aaxte;
-aaxtf;
-aaxtg;
-aaxth;
-aaxti;
-aaxtj;
-aaxtk;
-aaxtl;
-aaxtm;
-aaxtn;
-aaxto;
-aaxtp;
-aaxtq;
-aaxtr;
-aaxts;
-aaxtt;
-aaxtu;
-aaxtv;
-aaxtw;
-aaxtx;
-aaxty;
-aaxtz;
-aaxua;
-aaxub;
-aaxuc;
-aaxud;
-aaxue;
-aaxuf;
-aaxug;
-aaxuh;
-aaxui;
-aaxuj;
-aaxuk;
-aaxul;
-aaxum;
-aaxun;
-aaxuo;
-aaxup;
-aaxuq;
-aaxur;
-aaxus;
-aaxut;
-aaxuu;
-aaxuv;
-aaxuw;
-aaxux;
-aaxuy;
-aaxuz;
-aaxva;
-aaxvb;
-aaxvc;
-aaxvd;
-aaxve;
-aaxvf;
-aaxvg;
-aaxvh;
-aaxvi;
-aaxvj;
-aaxvk;
-aaxvl;
-aaxvm;
-aaxvn;
-aaxvo;
-aaxvp;
-aaxvq;
-aaxvr;
-aaxvs;
-aaxvt;
-aaxvu;
-aaxvv;
-aaxvw;
-aaxvx;
-aaxvy;
-aaxvz;
-aaxwa;
-aaxwb;
-aaxwc;
-aaxwd;
-aaxwe;
-aaxwf;
-aaxwg;
-aaxwh;
-aaxwi;
-aaxwj;
-aaxwk;
-aaxwl;
-aaxwm;
-aaxwn;
-aaxwo;
-aaxwp;
-aaxwq;
-aaxwr;
-aaxws;
-aaxwt;
-aaxwu;
-aaxwv;
-aaxww;
-aaxwx;
-aaxwy;
-aaxwz;
-aaxxa;
-aaxxb;
-aaxxc;
-aaxxd;
-aaxxe;
-aaxxf;
-aaxxg;
-aaxxh;
-aaxxi;
-aaxxj;
-aaxxk;
-aaxxl;
-aaxxm;
-aaxxn;
-aaxxo;
-aaxxp;
-aaxxq;
-aaxxr;
-aaxxs;
-aaxxt;
-aaxxu;
-aaxxv;
-aaxxw;
-aaxxx;
-aaxxy;
-aaxxz;
-aaxya;
-aaxyb;
-aaxyc;
-aaxyd;
-aaxye;
-aaxyf;
-aaxyg;
-aaxyh;
-aaxyi;
-aaxyj;
-aaxyk;
-aaxyl;
-aaxym;
-aaxyn;
-aaxyo;
-aaxyp;
-aaxyq;
-aaxyr;
-aaxys;
-aaxyt;
-aaxyu;
-aaxyv;
-aaxyw;
-aaxyx;
-aaxyy;
-aaxyz;
-aaxza;
-aaxzb;
-aaxzc;
-aaxzd;
-aaxze;
-aaxzf;
-aaxzg;
-aaxzh;
-aaxzi;
-aaxzj;
-aaxzk;
-aaxzl;
-aaxzm;
-aaxzn;
-aaxzo;
-aaxzp;
-aaxzq;
-aaxzr;
-aaxzs;
-aaxzt;
-aaxzu;
-aaxzv;
-aaxzw;
-aaxzx;
-aaxzy;
-aaxzz;
-aayaa;
-aayab;
-aayac;
-aayad;
-aayae;
-aayaf;
-aayag;
-aayah;
-aayai;
-aayaj;
-aayak;
-aayal;
-aayam;
-aayan;
-aayao;
-aayap;
-aayaq;
-aayar;
-aayas;
-aayat;
-aayau;
-aayav;
-aayaw;
-aayax;
-aayay;
-aayaz;
-aayba;
-aaybb;
-aaybc;
-aaybd;
-aaybe;
-aaybf;
-aaybg;
-aaybh;
-aaybi;
-aaybj;
-aaybk;
-aaybl;
-aaybm;
-aaybn;
-aaybo;
-aaybp;
-aaybq;
-aaybr;
-aaybs;
-aaybt;
-aaybu;
-aaybv;
-aaybw;
-aaybx;
-aayby;
-aaybz;
-aayca;
-aaycb;
-aaycc;
-aaycd;
-aayce;
-aaycf;
-aaycg;
-aaych;
-aayci;
-aaycj;
-aayck;
-aaycl;
-aaycm;
-aaycn;
-aayco;
-aaycp;
-aaycq;
-aaycr;
-aaycs;
-aayct;
-aaycu;
-aaycv;
-aaycw;
-aaycx;
-aaycy;
-aaycz;
-aayda;
-aaydb;
-aaydc;
-aaydd;
-aayde;
-aaydf;
-aaydg;
-aaydh;
-aaydi;
-aaydj;
-aaydk;
-aaydl;
-aaydm;
-aaydn;
-aaydo;
-aaydp;
-aaydq;
-aaydr;
-aayds;
-aaydt;
-aaydu;
-aaydv;
-aaydw;
-aaydx;
-aaydy;
-aaydz;
-aayea;
-aayeb;
-aayec;
-aayed;
-aayee;
-aayef;
-aayeg;
-aayeh;
-aayei;
-aayej;
-aayek;
-aayel;
-aayem;
-aayen;
-aayeo;
-aayep;
-aayeq;
-aayer;
-aayes;
-aayet;
-aayeu;
-aayev;
-aayew;
-aayex;
-aayey;
-aayez;
-aayfa;
-aayfb;
-aayfc;
-aayfd;
-aayfe;
-aayff;
-aayfg;
-aayfh;
-aayfi;
-aayfj;
-aayfk;
-aayfl;
-aayfm;
-aayfn;
-aayfo;
-aayfp;
-aayfq;
-aayfr;
-aayfs;
-aayft;
-aayfu;
-aayfv;
-aayfw;
-aayfx;
-aayfy;
-aayfz;
-aayga;
-aaygb;
-aaygc;
-aaygd;
-aayge;
-aaygf;
-aaygg;
-aaygh;
-aaygi;
-aaygj;
-aaygk;
-aaygl;
-aaygm;
-aaygn;
-aaygo;
-aaygp;
-aaygq;
-aaygr;
-aaygs;
-aaygt;
-aaygu;
-aaygv;
-aaygw;
-aaygx;
-aaygy;
-aaygz;
-aayha;
-aayhb;
-aayhc;
-aayhd;
-aayhe;
-aayhf;
-aayhg;
-aayhh;
-aayhi;
-aayhj;
-aayhk;
-aayhl;
-aayhm;
-aayhn;
-aayho;
-aayhp;
-aayhq;
-aayhr;
-aayhs;
-aayht;
-aayhu;
-aayhv;
-aayhw;
-aayhx;
-aayhy;
-aayhz;
-aayia;
-aayib;
-aayic;
-aayid;
-aayie;
-aayif;
-aayig;
-aayih;
-aayii;
-aayij;
-aayik;
-aayil;
-aayim;
-aayin;
-aayio;
-aayip;
-aayiq;
-aayir;
-aayis;
-aayit;
-aayiu;
-aayiv;
-aayiw;
-aayix;
-aayiy;
-aayiz;
-aayja;
-aayjb;
-aayjc;
-aayjd;
-aayje;
-aayjf;
-aayjg;
-aayjh;
-aayji;
-aayjj;
-aayjk;
-aayjl;
-aayjm;
-aayjn;
-aayjo;
-aayjp;
-aayjq;
-aayjr;
-aayjs;
-aayjt;
-aayju;
-aayjv;
-aayjw;
-aayjx;
-aayjy;
-aayjz;
-aayka;
-aaykb;
-aaykc;
-aaykd;
-aayke;
-aaykf;
-aaykg;
-aaykh;
-aayki;
-aaykj;
-aaykk;
-aaykl;
-aaykm;
-aaykn;
-aayko;
-aaykp;
-aaykq;
-aaykr;
-aayks;
-aaykt;
-aayku;
-aaykv;
-aaykw;
-aaykx;
-aayky;
-aaykz;
-aayla;
-aaylb;
-aaylc;
-aayld;
-aayle;
-aaylf;
-aaylg;
-aaylh;
-aayli;
-aaylj;
-aaylk;
-aayll;
-aaylm;
-aayln;
-aaylo;
-aaylp;
-aaylq;
-aaylr;
-aayls;
-aaylt;
-aaylu;
-aaylv;
-aaylw;
-aaylx;
-aayly;
-aaylz;
-aayma;
-aaymb;
-aaymc;
-aaymd;
-aayme;
-aaymf;
-aaymg;
-aaymh;
-aaymi;
-aaymj;
-aaymk;
-aayml;
-aaymm;
-aaymn;
-aaymo;
-aaymp;
-aaymq;
-aaymr;
-aayms;
-aaymt;
-aaymu;
-aaymv;
-aaymw;
-aaymx;
-aaymy;
-aaymz;
-aayna;
-aaynb;
-aaync;
-aaynd;
-aayne;
-aaynf;
-aayng;
-aaynh;
-aayni;
-aaynj;
-aaynk;
-aaynl;
-aaynm;
-aaynn;
-aayno;
-aaynp;
-aaynq;
-aaynr;
-aayns;
-aaynt;
-aaynu;
-aaynv;
-aaynw;
-aaynx;
-aayny;
-aaynz;
-aayoa;
-aayob;
-aayoc;
-aayod;
-aayoe;
-aayof;
-aayog;
-aayoh;
-aayoi;
-aayoj;
-aayok;
-aayol;
-aayom;
-aayon;
-aayoo;
-aayop;
-aayoq;
-aayor;
-aayos;
-aayot;
-aayou;
-aayov;
-aayow;
-aayox;
-aayoy;
-aayoz;
-aaypa;
-aaypb;
-aaypc;
-aaypd;
-aaype;
-aaypf;
-aaypg;
-aayph;
-aaypi;
-aaypj;
-aaypk;
-aaypl;
-aaypm;
-aaypn;
-aaypo;
-aaypp;
-aaypq;
-aaypr;
-aayps;
-aaypt;
-aaypu;
-aaypv;
-aaypw;
-aaypx;
-aaypy;
-aaypz;
-aayqa;
-aayqb;
-aayqc;
-aayqd;
-aayqe;
-aayqf;
-aayqg;
-aayqh;
-aayqi;
-aayqj;
-aayqk;
-aayql;
-aayqm;
-aayqn;
-aayqo;
-aayqp;
-aayqq;
-aayqr;
-aayqs;
-aayqt;
-aayqu;
-aayqv;
-aayqw;
-aayqx;
-aayqy;
-aayqz;
-aayra;
-aayrb;
-aayrc;
-aayrd;
-aayre;
-aayrf;
-aayrg;
-aayrh;
-aayri;
-aayrj;
-aayrk;
-aayrl;
-aayrm;
-aayrn;
-aayro;
-aayrp;
-aayrq;
-aayrr;
-aayrs;
-aayrt;
-aayru;
-aayrv;
-aayrw;
-aayrx;
-aayry;
-aayrz;
-aaysa;
-aaysb;
-aaysc;
-aaysd;
-aayse;
-aaysf;
-aaysg;
-aaysh;
-aaysi;
-aaysj;
-aaysk;
-aaysl;
-aaysm;
-aaysn;
-aayso;
-aaysp;
-aaysq;
-aaysr;
-aayss;
-aayst;
-aaysu;
-aaysv;
-aaysw;
-aaysx;
-aaysy;
-aaysz;
-aayta;
-aaytb;
-aaytc;
-aaytd;
-aayte;
-aaytf;
-aaytg;
-aayth;
-aayti;
-aaytj;
-aaytk;
-aaytl;
-aaytm;
-aaytn;
-aayto;
-aaytp;
-aaytq;
-aaytr;
-aayts;
-aaytt;
-aaytu;
-aaytv;
-aaytw;
-aaytx;
-aayty;
-aaytz;
-aayua;
-aayub;
-aayuc;
-aayud;
-aayue;
-aayuf;
-aayug;
-aayuh;
-aayui;
-aayuj;
-aayuk;
-aayul;
-aayum;
-aayun;
-aayuo;
-aayup;
-aayuq;
-aayur;
-aayus;
-aayut;
-aayuu;
-aayuv;
-aayuw;
-aayux;
-aayuy;
-aayuz;
-aayva;
-aayvb;
-aayvc;
-aayvd;
-aayve;
-aayvf;
-aayvg;
-aayvh;
-aayvi;
-aayvj;
-aayvk;
-aayvl;
-aayvm;
-aayvn;
-aayvo;
-aayvp;
-aayvq;
-aayvr;
-aayvs;
-aayvt;
-aayvu;
-aayvv;
-aayvw;
-aayvx;
-aayvy;
-aayvz;
-aaywa;
-aaywb;
-aaywc;
-aaywd;
-aaywe;
-aaywf;
-aaywg;
-aaywh;
-aaywi;
-aaywj;
-aaywk;
-aaywl;
-aaywm;
-aaywn;
-aaywo;
-aaywp;
-aaywq;
-aaywr;
-aayws;
-aaywt;
-aaywu;
-aaywv;
-aayww;
-aaywx;
-aaywy;
-aaywz;
-aayxa;
-aayxb;
-aayxc;
-aayxd;
-aayxe;
-aayxf;
-aayxg;
-aayxh;
-aayxi;
-aayxj;
-aayxk;
-aayxl;
-aayxm;
-aayxn;
-aayxo;
-aayxp;
-aayxq;
-aayxr;
-aayxs;
-aayxt;
-aayxu;
-aayxv;
-aayxw;
-aayxx;
-aayxy;
-aayxz;
-aayya;
-aayyb;
-aayyc;
-aayyd;
-aayye;
-aayyf;
-aayyg;
-aayyh;
-aayyi;
-aayyj;
-aayyk;
-aayyl;
-aayym;
-aayyn;
-aayyo;
-aayyp;
-aayyq;
-aayyr;
-aayys;
-aayyt;
-aayyu;
-aayyv;
-aayyw;
-aayyx;
-aayyy;
-aayyz;
-aayza;
-aayzb;
-aayzc;
-aayzd;
-aayze;
-aayzf;
-aayzg;
-aayzh;
-aayzi;
-aayzj;
-aayzk;
-aayzl;
-aayzm;
-aayzn;
-aayzo;
-aayzp;
-aayzq;
-aayzr;
-aayzs;
-aayzt;
-aayzu;
-aayzv;
-aayzw;
-aayzx;
-aayzy;
-aayzz;
-aazaa;
-aazab;
-aazac;
-aazad;
-aazae;
-aazaf;
-aazag;
-aazah;
-aazai;
-aazaj;
-aazak;
-aazal;
-aazam;
-aazan;
-aazao;
-aazap;
-aazaq;
-aazar;
-aazas;
-aazat;
-aazau;
-aazav;
-aazaw;
-aazax;
-aazay;
-aazaz;
-aazba;
-aazbb;
-aazbc;
-aazbd;
-aazbe;
-aazbf;
-aazbg;
-aazbh;
-aazbi;
-aazbj;
-aazbk;
-aazbl;
-aazbm;
-aazbn;
-aazbo;
-aazbp;
-aazbq;
-aazbr;
-aazbs;
-aazbt;
-aazbu;
-aazbv;
-aazbw;
-aazbx;
-aazby;
-aazbz;
-aazca;
-aazcb;
-aazcc;
-aazcd;
-aazce;
-aazcf;
-aazcg;
-aazch;
-aazci;
-aazcj;
-aazck;
-aazcl;
-aazcm;
-aazcn;
-aazco;
-aazcp;
-aazcq;
-aazcr;
-aazcs;
-aazct;
-aazcu;
-aazcv;
-aazcw;
-aazcx;
-aazcy;
-aazcz;
-aazda;
-aazdb;
-aazdc;
-aazdd;
-aazde;
-aazdf;
-aazdg;
-aazdh;
-aazdi;
-aazdj;
-aazdk;
-aazdl;
-aazdm;
-aazdn;
-aazdo;
-aazdp;
-aazdq;
-aazdr;
-aazds;
-aazdt;
-aazdu;
-aazdv;
-aazdw;
-aazdx;
-aazdy;
-aazdz;
-aazea;
-aazeb;
-aazec;
-aazed;
-aazee;
-aazef;
-aazeg;
-aazeh;
-aazei;
-aazej;
-aazek;
-aazel;
-aazem;
-aazen;
-aazeo;
-aazep;
-aazeq;
-aazer;
-aazes;
-aazet;
-aazeu;
-aazev;
-aazew;
-aazex;
-aazey;
-aazez;
-aazfa;
-aazfb;
-aazfc;
-aazfd;
-aazfe;
-aazff;
-aazfg;
-aazfh;
-aazfi;
-aazfj;
-aazfk;
-aazfl;
-aazfm;
-aazfn;
-aazfo;
-aazfp;
-aazfq;
-aazfr;
-aazfs;
-aazft;
-aazfu;
-aazfv;
-aazfw;
-aazfx;
-aazfy;
-aazfz;
-aazga;
-aazgb;
-aazgc;
-aazgd;
-aazge;
-aazgf;
-aazgg;
-aazgh;
-aazgi;
-aazgj;
-aazgk;
-aazgl;
-aazgm;
-aazgn;
-aazgo;
-aazgp;
-aazgq;
-aazgr;
-aazgs;
-aazgt;
-aazgu;
-aazgv;
-aazgw;
-aazgx;
-aazgy;
-aazgz;
-aazha;
-aazhb;
-aazhc;
-aazhd;
-aazhe;
-aazhf;
-aazhg;
-aazhh;
-aazhi;
-aazhj;
-aazhk;
-aazhl;
-aazhm;
-aazhn;
-aazho;
-aazhp;
-aazhq;
-aazhr;
-aazhs;
-aazht;
-aazhu;
-aazhv;
-aazhw;
-aazhx;
-aazhy;
-aazhz;
-aazia;
-aazib;
-aazic;
-aazid;
-aazie;
-aazif;
-aazig;
-aazih;
-aazii;
-aazij;
-aazik;
-aazil;
-aazim;
-aazin;
-aazio;
-aazip;
-aaziq;
-aazir;
-aazis;
-aazit;
-aaziu;
-aaziv;
-aaziw;
-aazix;
-aaziy;
-aaziz;
-aazja;
-aazjb;
-aazjc;
-aazjd;
-aazje;
-aazjf;
-aazjg;
-aazjh;
-aazji;
-aazjj;
-aazjk;
-aazjl;
-aazjm;
-aazjn;
-aazjo;
-aazjp;
-aazjq;
-aazjr;
-aazjs;
-aazjt;
-aazju;
-aazjv;
-aazjw;
-aazjx;
-aazjy;
-aazjz;
-aazka;
-aazkb;
-aazkc;
-aazkd;
-aazke;
-aazkf;
-aazkg;
-aazkh;
-aazki;
-aazkj;
-aazkk;
-aazkl;
-aazkm;
-aazkn;
-aazko;
-aazkp;
-aazkq;
-aazkr;
-aazks;
-aazkt;
-aazku;
-aazkv;
-aazkw;
-aazkx;
-aazky;
-aazkz;
-aazla;
-aazlb;
-aazlc;
-aazld;
-aazle;
-aazlf;
-aazlg;
-aazlh;
-aazli;
-aazlj;
-aazlk;
-aazll;
-aazlm;
-aazln;
-aazlo;
-aazlp;
-aazlq;
-aazlr;
-aazls;
-aazlt;
-aazlu;
-aazlv;
-aazlw;
-aazlx;
-aazly;
-aazlz;
-aazma;
-aazmb;
-aazmc;
-aazmd;
-aazme;
-aazmf;
-aazmg;
-aazmh;
-aazmi;
-aazmj;
-aazmk;
-aazml;
-aazmm;
-aazmn;
-aazmo;
-aazmp;
-aazmq;
-aazmr;
-aazms;
-aazmt;
-aazmu;
-aazmv;
-aazmw;
-aazmx;
-aazmy;
-aazmz;
-aazna;
-aaznb;
-aaznc;
-aaznd;
-aazne;
-aaznf;
-aazng;
-aaznh;
-aazni;
-aaznj;
-aaznk;
-aaznl;
-aaznm;
-aaznn;
-aazno;
-aaznp;
-aaznq;
-aaznr;
-aazns;
-aaznt;
-aaznu;
-aaznv;
-aaznw;
-aaznx;
-aazny;
-aaznz;
-aazoa;
-aazob;
-aazoc;
-aazod;
-aazoe;
-aazof;
-aazog;
-aazoh;
-aazoi;
-aazoj;
-aazok;
-aazol;
-aazom;
-aazon;
-aazoo;
-aazop;
-aazoq;
-aazor;
-aazos;
-aazot;
-aazou;
-aazov;
-aazow;
-aazox;
-aazoy;
-aazoz;
-aazpa;
-aazpb;
-aazpc;
-aazpd;
-aazpe;
-aazpf;
-aazpg;
-aazph;
-aazpi;
-aazpj;
-aazpk;
-aazpl;
-aazpm;
-aazpn;
-aazpo;
-aazpp;
-aazpq;
-aazpr;
-aazps;
-aazpt;
-aazpu;
-aazpv;
-aazpw;
-aazpx;
-aazpy;
-aazpz;
-aazqa;
-aazqb;
-aazqc;
-aazqd;
-aazqe;
-aazqf;
-aazqg;
-aazqh;
-aazqi;
-aazqj;
-aazqk;
-aazql;
-aazqm;
-aazqn;
-aazqo;
-aazqp;
-aazqq;
-aazqr;
-aazqs;
-aazqt;
-aazqu;
-aazqv;
-aazqw;
-aazqx;
-aazqy;
-aazqz;
-aazra;
-aazrb;
-aazrc;
-aazrd;
-aazre;
-aazrf;
-aazrg;
-aazrh;
-aazri;
-aazrj;
-aazrk;
-aazrl;
-aazrm;
-aazrn;
-aazro;
-aazrp;
-aazrq;
-aazrr;
-aazrs;
-aazrt;
-aazru;
-aazrv;
-aazrw;
-aazrx;
-aazry;
-aazrz;
-aazsa;
-aazsb;
-aazsc;
-aazsd;
-aazse;
-aazsf;
-aazsg;
-aazsh;
-aazsi;
-aazsj;
-aazsk;
-aazsl;
-aazsm;
-aazsn;
-aazso;
-aazsp;
-aazsq;
-aazsr;
-aazss;
-aazst;
-aazsu;
-aazsv;
-aazsw;
-aazsx;
-aazsy;
-aazsz;
-aazta;
-aaztb;
-aaztc;
-aaztd;
-aazte;
-aaztf;
-aaztg;
-aazth;
-aazti;
-aaztj;
-aaztk;
-aaztl;
-aaztm;
-aaztn;
-aazto;
-aaztp;
-aaztq;
-aaztr;
-aazts;
-aaztt;
-aaztu;
-aaztv;
-aaztw;
-aaztx;
-aazty;
-aaztz;
-aazua;
-aazub;
-aazuc;
-aazud;
-aazue;
-aazuf;
-aazug;
-aazuh;
-aazui;
-aazuj;
-aazuk;
-aazul;
-aazum;
-aazun;
-aazuo;
-aazup;
-aazuq;
-aazur;
-aazus;
-aazut;
-aazuu;
-aazuv;
-aazuw;
-aazux;
-aazuy;
-aazuz;
-aazva;
-aazvb;
-aazvc;
-aazvd;
-aazve;
-aazvf;
-aazvg;
-aazvh;
-aazvi;
-aazvj;
-aazvk;
-aazvl;
-aazvm;
-aazvn;
-aazvo;
-aazvp;
-aazvq;
-aazvr;
-aazvs;
-aazvt;
-aazvu;
-aazvv;
-aazvw;
-aazvx;
-aazvy;
-aazvz;
-aazwa;
-aazwb;
-aazwc;
-aazwd;
-aazwe;
-aazwf;
-aazwg;
-aazwh;
-aazwi;
-aazwj;
-aazwk;
-aazwl;
-aazwm;
-aazwn;
-aazwo;
-aazwp;
-aazwq;
-aazwr;
-aazws;
-aazwt;
-aazwu;
-aazwv;
-aazww;
-aazwx;
-aazwy;
-aazwz;
-aazxa;
-aazxb;
-aazxc;
-aazxd;
-aazxe;
-aazxf;
-aazxg;
-aazxh;
-aazxi;
-aazxj;
-aazxk;
-aazxl;
-aazxm;
-aazxn;
-aazxo;
-aazxp;
-aazxq;
-aazxr;
-aazxs;
-aazxt;
-aazxu;
-aazxv;
-aazxw;
-aazxx;
-aazxy;
-aazxz;
-aazya;
-aazyb;
-aazyc;
-aazyd;
-aazye;
-aazyf;
-aazyg;
-aazyh;
-aazyi;
-aazyj;
-aazyk;
-aazyl;
-aazym;
-aazyn;
-aazyo;
-aazyp;
-aazyq;
-aazyr;
-aazys;
-aazyt;
-aazyu;
-aazyv;
-aazyw;
-aazyx;
-aazyy;
-aazyz;
-aazza;
-aazzb;
-aazzc;
-aazzd;
-aazze;
-aazzf;
-aazzg;
-aazzh;
-aazzi;
-aazzj;
-aazzk;
-aazzl;
-aazzm;
-aazzn;
-aazzo;
-aazzp;
-aazzq;
-aazzr;
-aazzs;
-aazzt;
-aazzu;
-aazzv;
-aazzw;
-aazzx;
-aazzy;
-aazzz;
-abaaa;
-abaab;
-abaac;
-abaad;
-abaae;
-abaaf;
-abaag;
-abaah;
-abaai;
-abaaj;
-abaak;
-abaal;
-abaam;
-abaan;
-abaao;
-abaap;
-abaaq;
-abaar;
-abaas;
-abaat;
-abaau;
-abaav;
-abaaw;
-abaax;
-abaay;
-abaaz;
-ababa;
-ababb;
-ababc;
-ababd;
-ababe;
-ababf;
-ababg;
-ababh;
-ababi;
-ababj;
-ababk;
-ababl;
-ababm;
-ababn;
-ababo;
-ababp;
-ababq;
-ababr;
-ababs;
-ababt;
-ababu;
-ababv;
-ababw;
-ababx;
-ababy;
-ababz;
-abaca;
-abacb;
-abacc;
-abacd;
-abace;
-abacf;
-abacg;
-abach;
-abaci;
-abacj;
-aback;
-abacl;
-abacm;
-abacn;
-abaco;
-abacp;
-abacq;
-abacr;
-abacs;
-abact;
-abacu;
-abacv;
-abacw;
-abacx;
-abacy;
-abacz;
-abada;
-abadb;
-abadc;
-abadd;
-abade;
-abadf;
-abadg;
-abadh;
-abadi;
-abadj;
-abadk;
-abadl;
-abadm;
-abadn;
-abado;
-abadp;
-abadq;
-abadr;
-abads;
-abadt;
-abadu;
-abadv;
-abadw;
-abadx;
-abady;
-abadz;
-abaea;
-abaeb;
-abaec;
-abaed;
-abaee;
-abaef;
-abaeg;
-abaeh;
-abaei;
-abaej;
-abaek;
-abael;
-abaem;
-abaen;
-abaeo;
-abaep;
-abaeq;
-abaer;
-abaes;
-abaet;
-abaeu;
-abaev;
-abaew;
-abaex;
-abaey;
-abaez;
-abafa;
-abafb;
-abafc;
-abafd;
-abafe;
-abaff;
-abafg;
-abafh;
-abafi;
-abafj;
-abafk;
-abafl;
-abafm;
-abafn;
-abafo;
-abafp;
-abafq;
-abafr;
-abafs;
-abaft;
-abafu;
-abafv;
-abafw;
-abafx;
-abafy;
-abafz;
-abaga;
-abagb;
-abagc;
-abagd;
-abage;
-abagf;
-abagg;
-abagh;
-abagi;
-abagj;
-abagk;
-abagl;
-abagm;
-abagn;
-abago;
-abagp;
-abagq;
-abagr;
-abags;
-abagt;
-abagu;
-abagv;
-abagw;
-abagx;
-abagy;
-abagz;
-abaha;
-abahb;
-abahc;
-abahd;
-abahe;
-abahf;
-abahg;
-abahh;
-abahi;
-abahj;
-abahk;
-abahl;
-abahm;
-abahn;
-abaho;
-abahp;
-abahq;
-abahr;
-abahs;
-abaht;
-abahu;
-abahv;
-abahw;
-abahx;
-abahy;
-abahz;
-abaia;
-abaib;
-abaic;
-abaid;
-abaie;
-abaif;
-abaig;
-abaih;
-abaii;
-abaij;
-abaik;
-abail;
-abaim;
-abain;
-abaio;
-abaip;
-abaiq;
-abair;
-abais;
-abait;
-abaiu;
-abaiv;
-abaiw;
-abaix;
-abaiy;
-abaiz;
-abaja;
-abajb;
-abajc;
-abajd;
-abaje;
-abajf;
-abajg;
-abajh;
-abaji;
-abajj;
-abajk;
-abajl;
-abajm;
-abajn;
-abajo;
-abajp;
-abajq;
-abajr;
-abajs;
-abajt;
-abaju;
-abajv;
-abajw;
-abajx;
-abajy;
-abajz;
-abaka;
-abakb;
-abakc;
-abakd;
-abake;
-abakf;
-abakg;
-abakh;
-abaki;
-abakj;
-abakk;
-abakl;
-abakm;
-abakn;
-abako;
-abakp;
-abakq;
-abakr;
-abaks;
-abakt;
-abaku;
-abakv;
-abakw;
-abakx;
-abaky;
-abakz;
-abala;
-abalb;
-abalc;
-abald;
-abale;
-abalf;
-abalg;
-abalh;
-abali;
-abalj;
-abalk;
-aball;
-abalm;
-abaln;
-abalo;
-abalp;
-abalq;
-abalr;
-abals;
-abalt;
-abalu;
-abalv;
-abalw;
-abalx;
-abaly;
-abalz;
-abama;
-abamb;
-abamc;
-abamd;
-abame;
-abamf;
-abamg;
-abamh;
-abami;
-abamj;
-abamk;
-abaml;
-abamm;
-abamn;
-abamo;
-abamp;
-abamq;
-abamr;
-abams;
-abamt;
-abamu;
-abamv;
-abamw;
-abamx;
-abamy;
-abamz;
-abana;
-abanb;
-abanc;
-aband;
-abane;
-abanf;
-abang;
-abanh;
-abani;
-abanj;
-abank;
-abanl;
-abanm;
-abann;
-abano;
-abanp;
-abanq;
-abanr;
-abans;
-abant;
-abanu;
-abanv;
-abanw;
-abanx;
-abany;
-abanz;
-abaoa;
-abaob;
-abaoc;
-abaod;
-abaoe;
-abaof;
-abaog;
-abaoh;
-abaoi;
-abaoj;
-abaok;
-abaol;
-abaom;
-abaon;
-abaoo;
-abaop;
-abaoq;
-abaor;
-abaos;
-abaot;
-abaou;
-abaov;
-abaow;
-abaox;
-abaoy;
-abaoz;
-abapa;
-abapb;
-abapc;
-abapd;
-abape;
-abapf;
-abapg;
-abaph;
-abapi;
-abapj;
-abapk;
-abapl;
-abapm;
-abapn;
-abapo;
-abapp;
-abapq;
-abapr;
-abaps;
-abapt;
-abapu;
-abapv;
-abapw;
-abapx;
-abapy;
-abapz;
-abaqa;
-abaqb;
-abaqc;
-abaqd;
-abaqe;
-abaqf;
-abaqg;
-abaqh;
-abaqi;
-abaqj;
-abaqk;
-abaql;
-abaqm;
-abaqn;
-abaqo;
-abaqp;
-abaqq;
-abaqr;
-abaqs;
-abaqt;
-abaqu;
-abaqv;
-abaqw;
-abaqx;
-abaqy;
-abaqz;
-abara;
-abarb;
-abarc;
-abard;
-abare;
-abarf;
-abarg;
-abarh;
-abari;
-abarj;
-abark;
-abarl;
-abarm;
-abarn;
-abaro;
-abarp;
-abarq;
-abarr;
-abars;
-abart;
-abaru;
-abarv;
-abarw;
-abarx;
-abary;
-abarz;
-abasa;
-abasb;
-abasc;
-abasd;
-abase;
-abasf;
-abasg;
-abash;
-abasi;
-abasj;
-abask;
-abasl;
-abasm;
-abasn;
-abaso;
-abasp;
-abasq;
-abasr;
-abass;
-abast;
-abasu;
-abasv;
-abasw;
-abasx;
-abasy;
-abasz;
-abata;
-abatb;
-abatc;
-abatd;
-abate;
-abatf;
-abatg;
-abath;
-abati;
-abatj;
-abatk;
-abatl;
-abatm;
-abatn;
-abato;
-abatp;
-abatq;
-abatr;
-abats;
-abatt;
-abatu;
-abatv;
-abatw;
-abatx;
-abaty;
-abatz;
-abaua;
-abaub;
-abauc;
-abaud;
-abaue;
-abauf;
-abaug;
-abauh;
-abaui;
-abauj;
-abauk;
-abaul;
-abaum;
-abaun;
-abauo;
-abaup;
-abauq;
-abaur;
-abaus;
-abaut;
-abauu;
-abauv;
-abauw;
-abaux;
-abauy;
-abauz;
-abava;
-abavb;
-abavc;
-abavd;
-abave;
-abavf;
-abavg;
-abavh;
-abavi;
-abavj;
-abavk;
-abavl;
-abavm;
-abavn;
-abavo;
-abavp;
-abavq;
-abavr;
-abavs;
-abavt;
-abavu;
-abavv;
-abavw;
-abavx;
-abavy;
-abavz;
-abawa;
-abawb;
-abawc;
-abawd;
-abawe;
-abawf;
-abawg;
-abawh;
-abawi;
-abawj;
-abawk;
-abawl;
-abawm;
-abawn;
-abawo;
-abawp;
-abawq;
-abawr;
-abaws;
-abawt;
-abawu;
-abawv;
-abaww;
-abawx;
-abawy;
-abawz;
-abaxa;
-abaxb;
-abaxc;
-abaxd;
-abaxe;
-abaxf;
-abaxg;
-abaxh;
-abaxi;
-abaxj;
-abaxk;
-abaxl;
-abaxm;
-abaxn;
-abaxo;
-abaxp;
-abaxq;
-abaxr;
-abaxs;
-abaxt;
-abaxu;
-abaxv;
-abaxw;
-abaxx;
-abaxy;
-abaxz;
-abaya;
-abayb;
-abayc;
-abayd;
-abaye;
-abayf;
-abayg;
-abayh;
-abayi;
-abayj;
-abayk;
-abayl;
-abaym;
-abayn;
-abayo;
-abayp;
-abayq;
-abayr;
-abays;
-abayt;
-abayu;
-abayv;
-abayw;
-abayx;
-abayy;
-abayz;
-abaza;
-abazb;
-abazc;
-abazd;
-abaze;
-abazf;
-abazg;
-abazh;
-abazi;
-abazj;
-abazk;
-abazl;
-abazm;
-abazn;
-abazo;
-abazp;
-abazq;
-abazr;
-abazs;
-abazt;
-abazu;
-abazv;
-abazw;
-abazx;
-abazy;
-abazz;
-abbaa;
-abbab;
-abbac;
-abbad;
-abbae;
-abbaf;
-abbag;
-abbah;
-abbai;
-abbaj;
-abbak;
-abbal;
-abbam;
-abban;
-abbao;
-abbap;
-abbaq;
-abbar;
-abbas;
-abbat;
-abbau;
-abbav;
-abbaw;
-abbax;
-abbay;
-abbaz;
-abbba;
-abbbb;
-abbbc;
-abbbd;
-abbbe;
-abbbf;
-abbbg;
-abbbh;
-abbbi;
-abbbj;
-abbbk;
-abbbl;
-abbbm;
-abbbn;
-abbbo;
-abbbp;
-abbbq;
-abbbr;
-abbbs;
-abbbt;
-abbbu;
-abbbv;
-abbbw;
-abbbx;
-abbby;
-abbbz;
-abbca;
-abbcb;
-abbcc;
-abbcd;
-abbce;
-abbcf;
-abbcg;
-abbch;
-abbci;
-abbcj;
-abbck;
-abbcl;
-abbcm;
-abbcn;
-abbco;
-abbcp;
-abbcq;
-abbcr;
-abbcs;
-abbct;
-abbcu;
-abbcv;
-abbcw;
-abbcx;
-abbcy;
-abbcz;
-abbda;
-abbdb;
-abbdc;
-abbdd;
-abbde;
-abbdf;
-abbdg;
-abbdh;
-abbdi;
-abbdj;
-abbdk;
-abbdl;
-abbdm;
-abbdn;
-abbdo;
-abbdp;
-abbdq;
-abbdr;
-abbds;
-abbdt;
-abbdu;
-abbdv;
-abbdw;
-abbdx;
-abbdy;
-abbdz;
-abbea;
-abbeb;
-abbec;
-abbed;
-abbee;
-abbef;
-abbeg;
-abbeh;
-abbei;
-abbej;
-abbek;
-abbel;
-abbem;
-abben;
-abbeo;
-abbep;
-abbeq;
-abber;
-abbes;
-abbet;
-abbeu;
-abbev;
-abbew;
-abbex;
-abbey;
-abbez;
-abbfa;
-abbfb;
-abbfc;
-abbfd;
-abbfe;
-abbff;
-abbfg;
-abbfh;
-abbfi;
-abbfj;
-abbfk;
-abbfl;
-abbfm;
-abbfn;
-abbfo;
-abbfp;
-abbfq;
-abbfr;
-abbfs;
-abbft;
-abbfu;
-abbfv;
-abbfw;
-abbfx;
-abbfy;
-abbfz;
-abbga;
-abbgb;
-abbgc;
-abbgd;
-abbge;
-abbgf;
-abbgg;
-abbgh;
-abbgi;
-abbgj;
-abbgk;
-abbgl;
-abbgm;
-abbgn;
-abbgo;
-abbgp;
-abbgq;
-abbgr;
-abbgs;
-abbgt;
-abbgu;
-abbgv;
-abbgw;
-abbgx;
-abbgy;
-abbgz;
-abbha;
-abbhb;
-abbhc;
-abbhd;
-abbhe;
-abbhf;
-abbhg;
-abbhh;
-abbhi;
-abbhj;
-abbhk;
-abbhl;
-abbhm;
-abbhn;
-abbho;
-abbhp;
-abbhq;
-abbhr;
-abbhs;
-abbht;
-abbhu;
-abbhv;
-abbhw;
-abbhx;
-abbhy;
-abbhz;
-abbia;
-abbib;
-abbic;
-abbid;
-abbie;
-abbif;
-abbig;
-abbih;
-abbii;
-abbij;
-abbik;
-abbil;
-abbim;
-abbin;
-abbio;
-abbip;
-abbiq;
-abbir;
-abbis;
-abbit;
-abbiu;
-abbiv;
-abbiw;
-abbix;
-abbiy;
-abbiz;
-abbja;
-abbjb;
-abbjc;
-abbjd;
-abbje;
-abbjf;
-abbjg;
-abbjh;
-abbji;
-abbjj;
-abbjk;
-abbjl;
-abbjm;
-abbjn;
-abbjo;
-abbjp;
-abbjq;
-abbjr;
-abbjs;
-abbjt;
-abbju;
-abbjv;
-abbjw;
-abbjx;
-abbjy;
-abbjz;
-abbka;
-abbkb;
-abbkc;
-abbkd;
-abbke;
-abbkf;
-abbkg;
-abbkh;
-abbki;
-abbkj;
-abbkk;
-abbkl;
-abbkm;
-abbkn;
-abbko;
-abbkp;
-abbkq;
-abbkr;
-abbks;
-abbkt;
-abbku;
-abbkv;
-abbkw;
-abbkx;
-abbky;
-abbkz;
-abbla;
-abblb;
-abblc;
-abbld;
-abble;
-abblf;
-abblg;
-abblh;
-abbli;
-abblj;
-abblk;
-abbll;
-abblm;
-abbln;
-abblo;
-abblp;
-abblq;
-abblr;
-abbls;
-abblt;
-abblu;
-abblv;
-abblw;
-abblx;
-abbly;
-abblz;
-abbma;
-abbmb;
-abbmc;
-abbmd;
-abbme;
-abbmf;
-abbmg;
-abbmh;
-abbmi;
-abbmj;
-abbmk;
-abbml;
-abbmm;
-abbmn;
-abbmo;
-abbmp;
-abbmq;
-abbmr;
-abbms;
-abbmt;
-abbmu;
-abbmv;
-abbmw;
-abbmx;
-abbmy;
-abbmz;
-abbna;
-abbnb;
-abbnc;
-abbnd;
-abbne;
-abbnf;
-abbng;
-abbnh;
-abbni;
-abbnj;
-abbnk;
-abbnl;
-abbnm;
-abbnn;
-abbno;
-abbnp;
-abbnq;
-abbnr;
-abbns;
-abbnt;
-abbnu;
-abbnv;
-abbnw;
-abbnx;
-abbny;
-abbnz;
-abboa;
-abbob;
-abboc;
-abbod;
-abboe;
-abbof;
-abbog;
-abboh;
-abboi;
-abboj;
-abbok;
-abbol;
-abbom;
-abbon;
-abboo;
-abbop;
-abboq;
-abbor;
-abbos;
-abbot;
-abbou;
-abbov;
-abbow;
-abbox;
-abboy;
-abboz;
-abbpa;
-abbpb;
-abbpc;
-abbpd;
-abbpe;
-abbpf;
-abbpg;
-abbph;
-abbpi;
-abbpj;
-abbpk;
-abbpl;
-abbpm;
-abbpn;
-abbpo;
-abbpp;
-abbpq;
-abbpr;
-abbps;
-abbpt;
-abbpu;
-abbpv;
-abbpw;
-abbpx;
-abbpy;
-abbpz;
-abbqa;
-abbqb;
-abbqc;
-abbqd;
-abbqe;
-abbqf;
-abbqg;
-abbqh;
-abbqi;
-abbqj;
-abbqk;
-abbql;
-abbqm;
-abbqn;
-abbqo;
-abbqp;
-abbqq;
-abbqr;
-abbqs;
-abbqt;
-abbqu;
-abbqv;
-abbqw;
-abbqx;
-abbqy;
-abbqz;
-abbra;
-abbrb;
-abbrc;
-abbrd;
-abbre;
-abbrf;
-abbrg;
-abbrh;
-abbri;
-abbrj;
-abbrk;
-abbrl;
-abbrm;
-abbrn;
-abbro;
-abbrp;
-abbrq;
-abbrr;
-abbrs;
-abbrt;
-abbru;
-abbrv;
-abbrw;
-abbrx;
-abbry;
-abbrz;
-abbsa;
-abbsb;
-abbsc;
-abbsd;
-abbse;
-abbsf;
-abbsg;
-abbsh;
-abbsi;
-abbsj;
-abbsk;
-abbsl;
-abbsm;
-abbsn;
-abbso;
-abbsp;
-abbsq;
-abbsr;
-abbss;
-abbst;
-abbsu;
-abbsv;
-abbsw;
-abbsx;
-abbsy;
-abbsz;
-abbta;
-abbtb;
-abbtc;
-abbtd;
-abbte;
-abbtf;
-abbtg;
-abbth;
-abbti;
-abbtj;
-abbtk;
-abbtl;
-abbtm;
-abbtn;
-abbto;
-abbtp;
-abbtq;
-abbtr;
-abbts;
-abbtt;
-abbtu;
-abbtv;
-abbtw;
-abbtx;
-abbty;
-abbtz;
-abbua;
-abbub;
-abbuc;
-abbud;
-abbue;
-abbuf;
-abbug;
-abbuh;
-abbui;
-abbuj;
-abbuk;
-abbul;
-abbum;
-abbun;
-abbuo;
-abbup;
-abbuq;
-abbur;
-abbus;
-abbut;
-abbuu;
-abbuv;
-abbuw;
-abbux;
-abbuy;
-abbuz;
-abbva;
-abbvb;
-abbvc;
-abbvd;
-abbve;
-abbvf;
-abbvg;
-abbvh;
-abbvi;
-abbvj;
-abbvk;
-abbvl;
-abbvm;
-abbvn;
-abbvo;
-abbvp;
-abbvq;
-abbvr;
-abbvs;
-abbvt;
-abbvu;
-abbvv;
-abbvw;
-abbvx;
-abbvy;
-abbvz;
-abbwa;
-abbwb;
-abbwc;
-abbwd;
-abbwe;
-abbwf;
-abbwg;
-abbwh;
-abbwi;
-abbwj;
-abbwk;
-abbwl;
-abbwm;
-abbwn;
-abbwo;
-abbwp;
-abbwq;
-abbwr;
-abbws;
-abbwt;
-abbwu;
-abbwv;
-abbww;
-abbwx;
-abbwy;
-abbwz;
-abbxa;
-abbxb;
-abbxc;
-abbxd;
-abbxe;
-abbxf;
-abbxg;
-abbxh;
-abbxi;
-abbxj;
-abbxk;
-abbxl;
-abbxm;
-abbxn;
-abbxo;
-abbxp;
-abbxq;
-abbxr;
-abbxs;
-abbxt;
-abbxu;
-abbxv;
-abbxw;
-abbxx;
-abbxy;
-abbxz;
-abbya;
-abbyb;
-abbyc;
-abbyd;
-abbye;
-abbyf;
-abbyg;
-abbyh;
-abbyi;
-abbyj;
-abbyk;
-abbyl;
-abbym;
-abbyn;
-abbyo;
-abbyp;
-abbyq;
-abbyr;
-abbys;
-abbyt;
-abbyu;
-abbyv;
-abbyw;
-abbyx;
-abbyy;
-abbyz;
-abbza;
-abbzb;
-abbzc;
-abbzd;
-abbze;
-abbzf;
-abbzg;
-abbzh;
-abbzi;
-abbzj;
-abbzk;
-abbzl;
-abbzm;
-abbzn;
-abbzo;
-abbzp;
-abbzq;
-abbzr;
-abbzs;
-abbzt;
-abbzu;
-abbzv;
-abbzw;
-abbzx;
-abbzy;
-abbzz;
-abcaa;
-abcab;
-abcac;
-abcad;
-abcae;
-abcaf;
-abcag;
-abcah;
-abcai;
-abcaj;
-abcak;
-abcal;
-abcam;
-abcan;
-abcao;
-abcap;
-abcaq;
-abcar;
-abcas;
-abcat;
-abcau;
-abcav;
-abcaw;
-abcax;
-abcay;
-abcaz;
-abcba;
-abcbb;
-abcbc;
-abcbd;
-abcbe;
-abcbf;
-abcbg;
-abcbh;
-abcbi;
-abcbj;
-abcbk;
-abcbl;
-abcbm;
-abcbn;
-abcbo;
-abcbp;
-abcbq;
-abcbr;
-abcbs;
-abcbt;
-abcbu;
-abcbv;
-abcbw;
-abcbx;
-abcby;
-abcbz;
-abcca;
-abccb;
-abccc;
-abccd;
-abcce;
-abccf;
-abccg;
-abcch;
-abcci;
-abccj;
-abcck;
-abccl;
-abccm;
-abccn;
-abcco;
-abccp;
-abccq;
-abccr;
-abccs;
-abcct;
-abccu;
-abccv;
-abccw;
-abccx;
-abccy;
-abccz;
-abcda;
-abcdb;
-abcdc;
-abcdd;
-abcde;
-abcdf;
-abcdg;
-abcdh;
-abcdi;
-abcdj;
-abcdk;
-abcdl;
-abcdm;
-abcdn;
-abcdo;
-abcdp;
-abcdq;
-abcdr;
-abcds;
-abcdt;
-abcdu;
-abcdv;
-abcdw;
-abcdx;
-abcdy;
-abcdz;
-abcea;
-abceb;
-abcec;
-abced;
-abcee;
-abcef;
-abceg;
-abceh;
-abcei;
-abcej;
-abcek;
-abcel;
-abcem;
-abcen;
-abceo;
-abcep;
-abceq;
-abcer;
-abces;
-abcet;
-abceu;
-abcev;
-abcew;
-abcex;
-abcey;
-abcez;
-abcfa;
-abcfb;
-abcfc;
-abcfd;
-abcfe;
-abcff;
-abcfg;
-abcfh;
-abcfi;
-abcfj;
-abcfk;
-abcfl;
-abcfm;
-abcfn;
-abcfo;
-abcfp;
-abcfq;
-abcfr;
-abcfs;
-abcft;
-abcfu;
-abcfv;
-abcfw;
-abcfx;
-abcfy;
-abcfz;
-abcga;
-abcgb;
-abcgc;
-abcgd;
-abcge;
-abcgf;
-abcgg;
-abcgh;
-abcgi;
-abcgj;
-abcgk;
-abcgl;
-abcgm;
-abcgn;
-abcgo;
-abcgp;
-abcgq;
-abcgr;
-abcgs;
-abcgt;
-abcgu;
-abcgv;
-abcgw;
-abcgx;
-abcgy;
-abcgz;
-abcha;
-abchb;
-abchc;
-abchd;
-abche;
-abchf;
-abchg;
-abchh;
-abchi;
-abchj;
-abchk;
-abchl;
-abchm;
-abchn;
-abcho;
-abchp;
-abchq;
-abchr;
-abchs;
-abcht;
-abchu;
-abchv;
-abchw;
-abchx;
-abchy;
-abchz;
-abcia;
-abcib;
-abcic;
-abcid;
-abcie;
-abcif;
-abcig;
-abcih;
-abcii;
-abcij;
-abcik;
-abcil;
-abcim;
-abcin;
-abcio;
-abcip;
-abciq;
-abcir;
-abcis;
-abcit;
-abciu;
-abciv;
-abciw;
-abcix;
-abciy;
-abciz;
-abcja;
-abcjb;
-abcjc;
-abcjd;
-abcje;
-abcjf;
-abcjg;
-abcjh;
-abcji;
-abcjj;
-abcjk;
-abcjl;
-abcjm;
-abcjn;
-abcjo;
-abcjp;
-abcjq;
-abcjr;
-abcjs;
-abcjt;
-abcju;
-abcjv;
-abcjw;
-abcjx;
-abcjy;
-abcjz;
-abcka;
-abckb;
-abckc;
-abckd;
-abcke;
-abckf;
-abckg;
-abckh;
-abcki;
-abckj;
-abckk;
-abckl;
-abckm;
-abckn;
-abcko;
-abckp;
-abckq;
-abckr;
-abcks;
-abckt;
-abcku;
-abckv;
-abckw;
-abckx;
-abcky;
-abckz;
-abcla;
-abclb;
-abclc;
-abcld;
-abcle;
-abclf;
-abclg;
-abclh;
-abcli;
-abclj;
-abclk;
-abcll;
-abclm;
-abcln;
-abclo;
-abclp;
-abclq;
-abclr;
-abcls;
-abclt;
-abclu;
-abclv;
-abclw;
-abclx;
-abcly;
-abclz;
-abcma;
-abcmb;
-abcmc;
-abcmd;
-abcme;
-abcmf;
-abcmg;
-abcmh;
-abcmi;
-abcmj;
-abcmk;
-abcml;
-abcmm;
-abcmn;
-abcmo;
-abcmp;
-abcmq;
-abcmr;
-abcms;
-abcmt;
-abcmu;
-abcmv;
-abcmw;
-abcmx;
-abcmy;
-abcmz;
-abcna;
-abcnb;
-abcnc;
-abcnd;
-abcne;
-abcnf;
-abcng;
-abcnh;
-abcni;
-abcnj;
-abcnk;
-abcnl;
-abcnm;
-abcnn;
-abcno;
-abcnp;
-abcnq;
-abcnr;
-abcns;
-abcnt;
-abcnu;
-abcnv;
-abcnw;
-abcnx;
-abcny;
-abcnz;
-abcoa;
-abcob;
-abcoc;
-abcod;
-abcoe;
-abcof;
-abcog;
-abcoh;
-abcoi;
-abcoj;
-abcok;
-abcol;
-abcom;
-abcon;
-abcoo;
-abcop;
-abcoq;
-abcor;
-abcos;
-abcot;
-abcou;
-abcov;
-abcow;
-abcox;
-abcoy;
-abcoz;
-abcpa;
-abcpb;
-abcpc;
-abcpd;
-abcpe;
-abcpf;
-abcpg;
-abcph;
-abcpi;
-abcpj;
-abcpk;
-abcpl;
-abcpm;
-abcpn;
-abcpo;
-abcpp;
-abcpq;
-abcpr;
-abcps;
-abcpt;
-abcpu;
-abcpv;
-abcpw;
-abcpx;
-abcpy;
-abcpz;
-abcqa;
-abcqb;
-abcqc;
-abcqd;
-abcqe;
-abcqf;
-abcqg;
-abcqh;
-abcqi;
-abcqj;
-abcqk;
-abcql;
-abcqm;
-abcqn;
-abcqo;
-abcqp;
-abcqq;
-abcqr;
-abcqs;
-abcqt;
-abcqu;
-abcqv;
-abcqw;
-abcqx;
-abcqy;
-abcqz;
-abcra;
-abcrb;
-abcrc;
-abcrd;
-abcre;
-abcrf;
-abcrg;
-abcrh;
-abcri;
-abcrj;
-abcrk;
-abcrl;
-abcrm;
-abcrn;
-abcro;
-abcrp;
-abcrq;
-abcrr;
-abcrs;
-abcrt;
-abcru;
-abcrv;
-abcrw;
-abcrx;
-abcry;
-abcrz;
-abcsa;
-abcsb;
-abcsc;
-abcsd;
-abcse;
-abcsf;
-abcsg;
-abcsh;
-abcsi;
-abcsj;
-abcsk;
-abcsl;
-abcsm;
-abcsn;
-abcso;
-abcsp;
-abcsq;
-abcsr;
-abcss;
-abcst;
-abcsu;
-abcsv;
-abcsw;
-abcsx;
-abcsy;
-abcsz;
-abcta;
-abctb;
-abctc;
-abctd;
-abcte;
-abctf;
-abctg;
-abcth;
-abcti;
-abctj;
-abctk;
-abctl;
-abctm;
-abctn;
-abcto;
-abctp;
-abctq;
-abctr;
-abcts;
-abctt;
-abctu;
-abctv;
-abctw;
-abctx;
-abcty;
-abctz;
-abcua;
-abcub;
-abcuc;
-abcud;
-abcue;
-abcuf;
-abcug;
-abcuh;
-abcui;
-abcuj;
-abcuk;
-abcul;
-abcum;
-abcun;
-abcuo;
-abcup;
-abcuq;
-abcur;
-abcus;
-abcut;
-abcuu;
-abcuv;
-abcuw;
-abcux;
-abcuy;
-abcuz;
-abcva;
-abcvb;
-abcvc;
-abcvd;
-abcve;
-abcvf;
-abcvg;
-abcvh;
-abcvi;
-abcvj;
-abcvk;
-abcvl;
-abcvm;
-abcvn;
-abcvo;
-abcvp;
-abcvq;
-abcvr;
-abcvs;
-abcvt;
-abcvu;
-abcvv;
-abcvw;
-abcvx;
-abcvy;
-abcvz;
-abcwa;
-abcwb;
-abcwc;
-abcwd;
-abcwe;
-abcwf;
-abcwg;
-abcwh;
-abcwi;
-abcwj;
-abcwk;
-abcwl;
-abcwm;
-abcwn;
-abcwo;
-abcwp;
-abcwq;
-abcwr;
-abcws;
-abcwt;
-abcwu;
-abcwv;
-abcww;
-abcwx;
-abcwy;
-abcwz;
-abcxa;
-abcxb;
-abcxc;
-abcxd;
-abcxe;
-abcxf;
-abcxg;
-abcxh;
-abcxi;
-abcxj;
-abcxk;
-abcxl;
-abcxm;
-abcxn;
-abcxo;
-abcxp;
-abcxq;
-abcxr;
-abcxs;
-abcxt;
-abcxu;
-abcxv;
-abcxw;
-abcxx;
-abcxy;
-abcxz;
-abcya;
-abcyb;
-abcyc;
-abcyd;
-abcye;
-abcyf;
-abcyg;
-abcyh;
-abcyi;
-abcyj;
-abcyk;
-abcyl;
-abcym;
-abcyn;
-abcyo;
-abcyp;
-abcyq;
-abcyr;
-abcys;
-abcyt;
-abcyu;
-abcyv;
-abcyw;
-abcyx;
-abcyy;
-abcyz;
-abcza;
-abczb;
-abczc;
-abczd;
-abcze;
-abczf;
-abczg;
-abczh;
-abczi;
-abczj;
-abczk;
-abczl;
-abczm;
-abczn;
-abczo;
-abczp;
-abczq;
-abczr;
-abczs;
-abczt;
-abczu;
-abczv;
-abczw;
-abczx;
-abczy;
-abczz;
-abdaa;
-abdab;
-abdac;
-abdad;
-abdae;
-abdaf;
-abdag;
-abdah;
-abdai;
-abdaj;
-abdak;
-abdal;
-abdam;
-abdan;
-abdao;
-abdap;
-abdaq;
-abdar;
-abdas;
-abdat;
-abdau;
-abdav;
-abdaw;
-abdax;
-abday;
-abdaz;
-abdba;
-abdbb;
-abdbc;
-abdbd;
-abdbe;
-abdbf;
-abdbg;
-abdbh;
-abdbi;
-abdbj;
-abdbk;
-abdbl;
-abdbm;
-abdbn;
-abdbo;
-abdbp;
-abdbq;
-abdbr;
-abdbs;
-abdbt;
-abdbu;
-abdbv;
-abdbw;
-abdbx;
-abdby;
-abdbz;
-abdca;
-abdcb;
-abdcc;
-abdcd;
-abdce;
-abdcf;
-abdcg;
-abdch;
-abdci;
-abdcj;
-abdck;
-abdcl;
-abdcm;
-abdcn;
-abdco;
-abdcp;
-abdcq;
-abdcr;
-abdcs;
-abdct;
-abdcu;
-abdcv;
-abdcw;
-abdcx;
-abdcy;
-abdcz;
-abdda;
-abddb;
-abddc;
-abddd;
-abdde;
-abddf;
-abddg;
-abddh;
-abddi;
-abddj;
-abddk;
-abddl;
-abddm;
-abddn;
-abddo;
-abddp;
-abddq;
-abddr;
-abdds;
-abddt;
-abddu;
-abddv;
-abddw;
-abddx;
-abddy;
-abddz;
-abdea;
-abdeb;
-abdec;
-abded;
-abdee;
-abdef;
-abdeg;
-abdeh;
-abdei;
-abdej;
-abdek;
-abdel;
-abdem;
-abden;
-abdeo;
-abdep;
-abdeq;
-abder;
-abdes;
-abdet;
-abdeu;
-abdev;
-abdew;
-abdex;
-abdey;
-abdez;
-abdfa;
-abdfb;
-abdfc;
-abdfd;
-abdfe;
-abdff;
-abdfg;
-abdfh;
-abdfi;
-abdfj;
-abdfk;
-abdfl;
-abdfm;
-abdfn;
-abdfo;
-abdfp;
-abdfq;
-abdfr;
-abdfs;
-abdft;
-abdfu;
-abdfv;
-abdfw;
-abdfx;
-abdfy;
-abdfz;
-abdga;
-abdgb;
-abdgc;
-abdgd;
-abdge;
-abdgf;
-abdgg;
-abdgh;
-abdgi;
-abdgj;
-abdgk;
-abdgl;
-abdgm;
-abdgn;
-abdgo;
-abdgp;
-abdgq;
-abdgr;
-abdgs;
-abdgt;
-abdgu;
-abdgv;
-abdgw;
-abdgx;
-abdgy;
-abdgz;
-abdha;
-abdhb;
-abdhc;
-abdhd;
-abdhe;
-abdhf;
-abdhg;
-abdhh;
-abdhi;
-abdhj;
-abdhk;
-abdhl;
-abdhm;
-abdhn;
-abdho;
-abdhp;
-abdhq;
-abdhr;
-abdhs;
-abdht;
-abdhu;
-abdhv;
-abdhw;
-abdhx;
-abdhy;
-abdhz;
-abdia;
-abdib;
-abdic;
-abdid;
-abdie;
-abdif;
-abdig;
-abdih;
-abdii;
-abdij;
-abdik;
-abdil;
-abdim;
-abdin;
-abdio;
-abdip;
-abdiq;
-abdir;
-abdis;
-abdit;
-abdiu;
-abdiv;
-abdiw;
-abdix;
-abdiy;
-abdiz;
-abdja;
-abdjb;
-abdjc;
-abdjd;
-abdje;
-abdjf;
-abdjg;
-abdjh;
-abdji;
-abdjj;
-abdjk;
-abdjl;
-abdjm;
-abdjn;
-abdjo;
-abdjp;
-abdjq;
-abdjr;
-abdjs;
-abdjt;
-abdju;
-abdjv;
-abdjw;
-abdjx;
-abdjy;
-abdjz;
-abdka;
-abdkb;
-abdkc;
-abdkd;
-abdke;
-abdkf;
-abdkg;
-abdkh;
-abdki;
-abdkj;
-abdkk;
-abdkl;
-abdkm;
-abdkn;
-abdko;
-abdkp;
-abdkq;
-abdkr;
-abdks;
-abdkt;
-abdku;
-abdkv;
-abdkw;
-abdkx;
-abdky;
-abdkz;
-abdla;
-abdlb;
-abdlc;
-abdld;
-abdle;
-abdlf;
-abdlg;
-abdlh;
-abdli;
-abdlj;
-abdlk;
-abdll;
-abdlm;
-abdln;
-abdlo;
-abdlp;
-abdlq;
-abdlr;
-abdls;
-abdlt;
-abdlu;
-abdlv;
-abdlw;
-abdlx;
-abdly;
-abdlz;
-abdma;
-abdmb;
-abdmc;
-abdmd;
-abdme;
-abdmf;
-abdmg;
-abdmh;
-abdmi;
-abdmj;
-abdmk;
-abdml;
-abdmm;
-abdmn;
-abdmo;
-abdmp;
-abdmq;
-abdmr;
-abdms;
-abdmt;
-abdmu;
-abdmv;
-abdmw;
-abdmx;
-abdmy;
-abdmz;
-abdna;
-abdnb;
-abdnc;
-abdnd;
-abdne;
-abdnf;
-abdng;
-abdnh;
-abdni;
-abdnj;
-abdnk;
-abdnl;
-abdnm;
-abdnn;
-abdno;
-abdnp;
-abdnq;
-abdnr;
-abdns;
-abdnt;
-abdnu;
-abdnv;
-abdnw;
-abdnx;
-abdny;
-abdnz;
-abdoa;
-abdob;
-abdoc;
-abdod;
-abdoe;
-abdof;
-abdog;
-abdoh;
-abdoi;
-abdoj;
-abdok;
-abdol;
-abdom;
-abdon;
-abdoo;
-abdop;
-abdoq;
-abdor;
-abdos;
-abdot;
-abdou;
-abdov;
-abdow;
-abdox;
-abdoy;
-abdoz;
-abdpa;
-abdpb;
-abdpc;
-abdpd;
-aljwf
-|];
diff --git a/camlp4/test/fixtures/bug-4058.ml b/camlp4/test/fixtures/bug-4058.ml
deleted file mode 100644 (file)
index f83322b..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-let _ = (fun x -> x), 1
-let _ = (x := 1), 2
-let _ = (x <- 1), 2
-let _ = (if true then 1 else 2), 1
diff --git a/camlp4/test/fixtures/bug-4337.ml b/camlp4/test/fixtures/bug-4337.ml
deleted file mode 100644 (file)
index 5a44ed0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-match [] with []°-> () | _ -> ();;
diff --git a/camlp4/test/fixtures/bug-by-vincent-balat.ml b/camlp4/test/fixtures/bug-by-vincent-balat.ml
deleted file mode 100644 (file)
index ed75488..0000000
+++ /dev/null
@@ -1 +0,0 @@
-fun a -> x <- !x + 1; x <- !x + 2
diff --git a/camlp4/test/fixtures/bug-camlp4o-benjamin-monate.ml b/camlp4/test/fixtures/bug-camlp4o-benjamin-monate.ml
deleted file mode 100644 (file)
index e7e583d..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-type t = A of t | B ;;
-let f = function A A B -> B | B | A B | A (A _) -> B ;;
-
-exception True
-let qexists f q =
-  try
-    Queue.iter (fun v -> if f v then raise True) q;
-    false
-  with True -> true
-
-type u = True | False
-let g x = function | True -> () | False -> ()
-
-type v = [`True | `False]
-let h x = function | `True -> () | `False -> ()
diff --git a/camlp4/test/fixtures/bug-camlp4o-constr-arity-expr.ml b/camlp4/test/fixtures/bug-camlp4o-constr-arity-expr.ml
deleted file mode 100644 (file)
index fc9b6ad..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-(* Some Some Some None;; *)
-(* ((Some None) None) None;; *)
-((Some) None);;
-(* ((Some Some) Some) None;; *)
-type t = A of int * int * int;;
-A (1, 2, 3);;
-(A) (1, 2, 3);;
-(A (1, 2)) 3;;
diff --git a/camlp4/test/fixtures/bug-camlp4o-constr-arity.ml b/camlp4/test/fixtures/bug-camlp4o-constr-arity.ml
deleted file mode 100644 (file)
index 25efe04..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-type t = A of t * t | B;;
-type t2 = C of (t2 * t2) | D;;
-type 'a t3 = S of 'a | T;;
-
-fun B B B -> ();;
-
-fun B (A (B, B)) B -> ();;
-
-fun D (D, D) -> ();;
-
-fun (C (D, D)) -> ();;
-
-let A (b, B) = A (B, B);;
-
-let f (A (B, B)) = ();;
-
-let f B (A (B, B)) = ();;
-
-let (D, d) = (D, D);;
-
-let (C (D, d)) = (C (D, D));;
-
-function S S T -> ();;
-
-function Some (A (B, B)) -> ();;
-
-function S (A (B, B)) -> ();;
-
-function S (D, D) -> ();;
-
-function (C (D, D)) -> ();;
-
-function
-| Some Some Some x -> x
-(* | None None None x -> x *)
-| _ -> assert false;;
-
-fun None None None -> ();;
-
-fun (Some None) None None -> ();;
-
-let Some a = Some 42;;
-let Some a :: y = [Some 42];;
-let Some a, b = Some 42, 43;;
-let (Some a), b = Some 42, 43;;
-let Some a as b = let _ = b = 42 in Some 42;;
-(* let Some (a as b) = let _ = b = None in Some 42;; *)
-(* let Some (a as b) = let _ = b = 42 in Some 42;; *)
-(* let (Some a) as b = let _ = b = 42 in Some 42;; *)
-(* let (Some a) as b = let _ = b = None in Some 42;; *)
-let Some a | Some a = Some 42;;
-let x,y as r = 1,2 ;;
-let ((x, y) as r) = (1, 2);;
-
-type top = Top of (int * int);;
-
-match Top (1,2) with Top min as t -> ();;
-
-match Top (1,2) with Top (min,max) as t -> ();;
-
-(* let Some 'a' .. 'b' = Some 'b';; *)
-
-let rec f x y = ();;
-
-fun x y -> ();;
-
-fun (x, y) -> ();;
-
-function x, y -> ();;
-
-let rec next line pos0 = () in ();;
-
-(* fun Some None None None -> ();; *)
-(* fun x, y -> ();; |+ syntax error +| *)
-
diff --git a/camlp4/test/fixtures/bug_escaping_quot.ml b/camlp4/test/fixtures/bug_escaping_quot.ml
deleted file mode 100644 (file)
index 57e5ecd..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-open Camlp4.PreCast;;
-Camlp4_config.antiquotations := true;;
-let expand_my_quot_expr _loc _loc_name_opt quotation_contents =
-  Printf.eprintf "%S\n%!" quotation_contents;
-  <:expr< dummy >>
-;;
-Syntax.Quotation.add "my" Syntax.Quotation.DynAst.expr_tag expand_my_quot_expr;;
diff --git a/camlp4/test/fixtures/chars.ml b/camlp4/test/fixtures/chars.ml
deleted file mode 100644 (file)
index 3d307f0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-'"'
diff --git a/camlp4/test/fixtures/class_expr_quot.ml b/camlp4/test/fixtures/class_expr_quot.ml
deleted file mode 100644 (file)
index f37e976..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<:class_expr< a >>;
-<:class_expr< A.a B.b >>;
-<:class_expr< a [ t ] >>;
-<:class_expr< virtual a >>;
-<:class_expr< virtual $a$ >>;
-<:class_expr< virtual $lid:a$ >>;
-<:class_expr< virtual $lid:a$ [ 't ] >>;
-(* <:class_expr< virtual a [ t ] >>; *)
-<:class_expr< $opt:v$ a >>;
-<:class_expr< $opt:v$ a [ t ] >>;
-<:class_expr< $opt:v$ $a$ >>;
-<:class_expr< $opt:v$ $id:a$ >>;
-<:class_expr< $opt:v$ $a$ [ $t$ ] >>;
-(* <:class_expr< $opt:v$ a [ $t$ ] >>; *)
-(* <:class_expr< $opt:v$ a $opt:t$ >>; *)
-(* <:class_expr< $opt:v$ $a$ $opt:t$ >>; *)
-
-<:class_type< a >>;
-<:class_type< a [ t ] >>;
-<:class_type< virtual a >>;
-<:class_type< virtual $a$ >>;
-<:class_type< virtual $lid:a$ >>;
-<:class_type< virtual $lid:a$ [ 't ] >>;
-<:class_type< $opt:v$ a >>;
-<:class_type< $opt:v$ a [ t ] >>;
-<:class_type< $opt:v$ $a$ >>;
-<:class_type< $opt:v$ $a$ [ $t$ ] >>;
diff --git a/camlp4/test/fixtures/comments.ml b/camlp4/test/fixtures/comments.ml
deleted file mode 100644 (file)
index 5a64876..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-(** The first special comment of the file is the comment associated
-    to the whole module.*)
-
-(** The comment for function f *)
-let f x y = x + y
-
-(** This comment is not attached to any element since there is another
-    special comment just before the next element. *)
-
-(** Comment for exception My_exception, even with a simple comment
-    between the special comment and the exception.*)
-(* A simple comment. *)
-exception My_exception of (int -> int) * int
-
-(** Comment for type weather  *)
-type weather =
-| Rain of int (** The comment for constructor Rain *)
-| Sun (** The comment for constructor Sun *)
-
-(** The comment for type my_record *)
-type my_record = {
-    foo : int ;    (** Comment for field foo *)
-    bar : string ; (** Comment for field bar *)
-  }
-
-(** The comment for class my_class *)
-class my_class =
-    object
-      (** A comment to describe inheritance from cl *)
-      inherit cl
-
-      (** The comment for the instance variable tutu *)
-      val mutable tutu = "tutu"
-      (** The comment for toto *)
-      val toto = 1
-      val titi = "titi"
-      (** Comment for method toto *)
-      method toto = tutu ^ "!"
-      (** Comment for method m *)
-      method m (f : float) = 1
-    end
-
-(** The comment for class type my_class_type *)
-class type my_class_type =
-  object
-    (** The comment for the instance variable x. *)
-    val mutable x : int
-    (** The commend for method m. *)
-    method m : int -> int
-  end
-
-(** The comment for module Foo *)
-module Foo =
-  struct
-    (** The comment for x *)
-    let x = 42
-    (** A special comment in the class, but not associated to any element. *)
-  end
-
-(** The comment for module type my_module_type. *)
-module type MY_MODULE_TYPE =
-  sig
-    (* Comment for value x. *)
-    val x : int
-    (* ... *)
-  end
diff --git a/camlp4/test/fixtures/comments.mli b/camlp4/test/fixtures/comments.mli
deleted file mode 100644 (file)
index 33e1434..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-(** The first special comment of the file is the comment associated
-    with the whole module.*)
-
-
-(** Special comments can be placed between elements and are kept
-    by the OCamldoc tool, but are not associated to any element.
-    @-tags in these comments are ignored.*)
-
-(*******************************************************************)
-(** Comments like the one above, with more than two asterisks,
-    are ignored. *)
-
-(** The comment for function f. *)
-val f : int -> int -> int
-(** The continuation of the comment for function f. *)
-
-(** Comment for exception My_exception, even with a simple comment
-    between the special comment and the exception.*)
-(* Hello, I'm a simple comment :-) *)
-exception My_exception of (int -> int) * int
-
-(** Comment for type weather  *)
-type weather =
-| Rain of int (** The comment for construtor Rain *)
-| Sun (** The comment for constructor Sun *)
-
-(** Comment for type weather2  *)
-type weather2 =
-| Rain of int (** The comment for construtor Rain *)
-| Sun (** The comment for constructor Sun *)
-(** I can continue the comment for type weather2 here
-  because there is already a comment associated to the last constructor.*)
-
-(** The comment for type my_record *)
-type my_record = {
-    foo : int ;    (** Comment for field foo *)
-    bar : string ; (** Comment for field bar *)
-  }
-  (** Continuation of comment for type my_record *)
-
-(** Comment for foo *)
-val foo : string
-(** This comment is associated to foo and not to bar. *)
-val bar : string
-(** This comment is assciated to bar. *)
-
-(** The comment for class my_class *)
-class my_class :
-  object
-    (** A comment to describe inheritance from cl *)
-    inherit cl
-
-    (** The comment for attribute tutu *)
-    val mutable tutu : string
-
-    (** The comment for attribute toto. *)
-    val toto : int
-
-    (** This comment is not attached to titi since
-        there is a blank line before titi, but is kept
-        as a comment in the class. *)
-
-    val titi : string
-
-    (** Comment for method toto *)
-    method toto : string
-
-    (** Comment for method m *)
-    method m : float -> int
-  end
-
-(** The comment for the class type my_class_type *)
-class type my_class_type =
-  object
-    (** The comment for variable x. *)
-    val mutable x : int
-
-    (** The commend for method m. *)
-    method m : int -> int
-end
-
-(** The comment for module Foo *)
-module Foo :
-  sig
-    (** The comment for x *)
-    val x : int
-
-    (** A special comment that is kept but not associated to any element *)
-  end
-
-(** The comment for module type my_module_type. *)
-module type MY_MODULE_TYPE =
-  sig
-    (** The comment for value x. *)
-    val x : int
-
-    (** The comment for module M. *)
-    module M :
-      sig
-        (** The comment for value y. *)
-        val y : int
-
-        (* ... *)
-      end
-
-  end
diff --git a/camlp4/test/fixtures/comments2.ml b/camlp4/test/fixtures/comments2.ml
deleted file mode 100644 (file)
index d99e851..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-(** The first special comment of the file is the comment associated
-    to the whole module.*)
-
-(** The comment for function f *)
-let f x y = x + y
-
-(** This comment is not attached to any element since there is another
-    special comment just before the next element. *)
-
-(** Comment for exception My_exception, even with a simple comment
-    between the special comment and the exception.*)
-(* A simple comment. *)
-exception My_exception of (int -> int) * int
-
-(** Comment for type weather  *)
-type weather =
-  (** The comment for constructor Rain *)
-| Rain of int
-  (** The comment for constructor Sun *)
-| Sun
-
-(** The comment for type my_record *)
-type my_record = {
-    (** Comment for field foo *)
-    foo : int ;
-    (** Comment for field bar *)
-    bar : string ;
-  }
-
-(** The comment for class my_class *)
-class my_class =
-    object
-      (** A comment to describe inheritance from cl *)
-      inherit cl
-
-      (** The comment for the instance variable tutu *)
-      val mutable tutu = "tutu"
-      (** The comment for toto *)
-      val toto = 1
-      val titi = "titi"
-      (** Comment for method toto *)
-      method toto = tutu ^ "!"
-      (** Comment for method m *)
-      method m (f : float) = 1
-    end
-
-(** The comment for class type my_class_type *)
-class type my_class_type =
-  object
-    (** The comment for the instance variable x. *)
-    val mutable x : int
-    (** The commend for method m. *)
-    method m : int -> int
-  end
-
-(** The comment for module Foo *)
-module Foo =
-  struct
-    (** The comment for x *)
-    let x = 42
-    (** A special comment in the class, but not associated to any element. *)
-  end
-
-(** The comment for module type my_module_type. *)
-module type MY_MODULE_TYPE =
-  sig
-    (* Comment for value x. *)
-    val x : int
-    (* ... *)
-  end
diff --git a/camlp4/test/fixtures/constant-parser.ml b/camlp4/test/fixtures/constant-parser.ml
deleted file mode 100644 (file)
index a91f54b..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-open Camlp4
-
-module Id = struct
-  let name = "Camlp4Parsers.LoadCamlp4Ast"
-  let version = Sys.ocaml_version
-end
-
-module Make (Ast : Camlp4.Sig.Camlp4Ast.S) = struct
-  module Ast = Ast
-  open Ast
-
-  let _loc = Loc.ghost
-
-  let parse_implem ?directive_handler:(_) _ _ =
-    let e =
-    Ast.ExApp (_loc,
-      Ast.ExApp (_loc,
-        Ast.ExId (_loc,
-          Ast.IdAcc (_loc, Ast.IdUid (_loc, "G"), Ast.IdLid (_loc, "extend"))),
-        Ast.ExTyc (_loc, Ast.ExId (_loc, Ast.IdLid (_loc, "expr")),
-          Ast.TyApp (_loc,
-            Ast.TyId (_loc,
-              Ast.IdAcc (_loc, Ast.IdUid (_loc, "G"),
-                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Entry"),
-                  Ast.IdLid (_loc, "t")))),
-            Ast.TyQuo (_loc, "expr")))),
-      Ast.ExTup (_loc,
-        Ast.ExCom (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "None")),
-          Ast.ExApp (_loc,
-            Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-              Ast.ExTup (_loc,
-                Ast.ExCom (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "None")),
-                  Ast.ExCom (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "None")),
-                    Ast.ExApp (_loc,
-                      Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                        Ast.ExTup (_loc,
-                          Ast.ExCom (_loc,
-                            Ast.ExApp (_loc,
-                              Ast.ExApp (_loc,
-                                Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
-                                Ast.ExApp (_loc,
-                                  Ast.ExId (_loc,
-                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "G"),
-                                      Ast.IdUid (_loc, "Skeyword"))),
-                                  Ast.ExStr (_loc, "foo"))),
-                              Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))),
-                            Ast.ExApp (_loc,
-                              Ast.ExId (_loc,
-                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "G"),
-                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Action"),
-                                    Ast.IdLid (_loc, "mk")))),
-                              Ast.ExFun (_loc,
-                                Ast.AsArr (_loc, Ast.PaAny _loc, Ast.ONone,
-                                  Ast.ExFun (_loc,
-                                    Ast.AsArr (_loc,
-                                      Ast.PaTyc (_loc,
-                                        Ast.PaId (_loc,
-                                          Ast.IdLid (_loc, "_loc")),
-                                        Ast.TyId (_loc,
-                                          Ast.IdAcc (_loc,
-                                            Ast.IdUid (_loc, "Loc"),
-                                            Ast.IdLid (_loc, "t")))),
-                                      Ast.ONone,
-                                      Ast.ExTyc (_loc,
-                                        Ast.ExApp (_loc,
-                                          Ast.ExApp (_loc,
-                                            Ast.ExId (_loc,
-                                              Ast.IdAcc (_loc,
-                                                Ast.IdUid (_loc, "Ast"),
-                                                Ast.IdUid (_loc, "ExId"))),
-                                            Ast.ExId (_loc,
-                                              Ast.IdLid (_loc, "_loc"))),
-                                          Ast.ExApp (_loc,
-                                            Ast.ExApp (_loc,
-                                              Ast.ExId (_loc,
-                                                Ast.IdAcc (_loc,
-                                                  Ast.IdUid (_loc, "Ast"),
-                                                  Ast.IdUid (_loc, "IdLid"))),
-                                              Ast.ExId (_loc,
-                                                Ast.IdLid (_loc, "_loc"))),
-                                            Ast.ExStr (_loc, "foo"))),
-                                        Ast.TyQuo (_loc, "expr")))))))))),
-                      Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))))))),
-            Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))))))
-    in Ast.StExp (_loc, e)
-  let parse_interf ?directive_handler:(_) _ _ = assert false;;
-
-end;;
-
-let module M = Camlp4.Register.OCamlParser(Id)(Make) in ()
diff --git a/camlp4/test/fixtures/curry-constr.ml b/camlp4/test/fixtures/curry-constr.ml
deleted file mode 100644 (file)
index 4443ece..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-type t = A of int
-type u = B of t
-let f = function B A x -> x
diff --git a/camlp4/test/fixtures/default_quotation.ml b/camlp4/test/fixtures/default_quotation.ml
deleted file mode 100644 (file)
index c640507..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#default_quotation "expr";
-open Camlp4.PreCast;
-fun [ << $x$ - $y$ >> when x = y -> << 0 >>
-    | e -> e ];
diff --git a/camlp4/test/fixtures/exception-with-eqn-bug.ml b/camlp4/test/fixtures/exception-with-eqn-bug.ml
deleted file mode 100644 (file)
index b93c202..0000000
+++ /dev/null
@@ -1 +0,0 @@
-exception Foo of string = Bar
diff --git a/camlp4/test/fixtures/external.ml b/camlp4/test/fixtures/external.ml
deleted file mode 100644 (file)
index 9ee32bb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-external f : 'a -> 'b = "%identity";
diff --git a/camlp4/test/fixtures/fun.ml b/camlp4/test/fixtures/fun.ml
deleted file mode 100644 (file)
index 6c3264d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-value f = fun [];
-value f = fun [ [] -> fun [ 4 -> () ] ];
-value f = fun [];
-value f = fun [];
-value f = fun [];
-value f = g x y;
-value f = (g x) y;
diff --git a/camlp4/test/fixtures/functor-perf.ml b/camlp4/test/fixtures/functor-perf.ml
deleted file mode 100644 (file)
index 3e55acb..0000000
+++ /dev/null
@@ -1,2019 +0,0 @@
-module type S = sig
-(* <%- for i in 0 .. 1000 do -%>
-  val f<%= i %> : int -> int -> int
-<%- end -%>                            *)
-  val f0 : int -> int -> int
-  val f1 : int -> int -> int
-  val f2 : int -> int -> int
-  val f3 : int -> int -> int
-  val f4 : int -> int -> int
-  val f5 : int -> int -> int
-  val f6 : int -> int -> int
-  val f7 : int -> int -> int
-  val f8 : int -> int -> int
-  val f9 : int -> int -> int
-  val f10 : int -> int -> int
-  val f11 : int -> int -> int
-  val f12 : int -> int -> int
-  val f13 : int -> int -> int
-  val f14 : int -> int -> int
-  val f15 : int -> int -> int
-  val f16 : int -> int -> int
-  val f17 : int -> int -> int
-  val f18 : int -> int -> int
-  val f19 : int -> int -> int
-  val f20 : int -> int -> int
-  val f21 : int -> int -> int
-  val f22 : int -> int -> int
-  val f23 : int -> int -> int
-  val f24 : int -> int -> int
-  val f25 : int -> int -> int
-  val f26 : int -> int -> int
-  val f27 : int -> int -> int
-  val f28 : int -> int -> int
-  val f29 : int -> int -> int
-  val f30 : int -> int -> int
-  val f31 : int -> int -> int
-  val f32 : int -> int -> int
-  val f33 : int -> int -> int
-  val f34 : int -> int -> int
-  val f35 : int -> int -> int
-  val f36 : int -> int -> int
-  val f37 : int -> int -> int
-  val f38 : int -> int -> int
-  val f39 : int -> int -> int
-  val f40 : int -> int -> int
-  val f41 : int -> int -> int
-  val f42 : int -> int -> int
-  val f43 : int -> int -> int
-  val f44 : int -> int -> int
-  val f45 : int -> int -> int
-  val f46 : int -> int -> int
-  val f47 : int -> int -> int
-  val f48 : int -> int -> int
-  val f49 : int -> int -> int
-  val f50 : int -> int -> int
-  val f51 : int -> int -> int
-  val f52 : int -> int -> int
-  val f53 : int -> int -> int
-  val f54 : int -> int -> int
-  val f55 : int -> int -> int
-  val f56 : int -> int -> int
-  val f57 : int -> int -> int
-  val f58 : int -> int -> int
-  val f59 : int -> int -> int
-  val f60 : int -> int -> int
-  val f61 : int -> int -> int
-  val f62 : int -> int -> int
-  val f63 : int -> int -> int
-  val f64 : int -> int -> int
-  val f65 : int -> int -> int
-  val f66 : int -> int -> int
-  val f67 : int -> int -> int
-  val f68 : int -> int -> int
-  val f69 : int -> int -> int
-  val f70 : int -> int -> int
-  val f71 : int -> int -> int
-  val f72 : int -> int -> int
-  val f73 : int -> int -> int
-  val f74 : int -> int -> int
-  val f75 : int -> int -> int
-  val f76 : int -> int -> int
-  val f77 : int -> int -> int
-  val f78 : int -> int -> int
-  val f79 : int -> int -> int
-  val f80 : int -> int -> int
-  val f81 : int -> int -> int
-  val f82 : int -> int -> int
-  val f83 : int -> int -> int
-  val f84 : int -> int -> int
-  val f85 : int -> int -> int
-  val f86 : int -> int -> int
-  val f87 : int -> int -> int
-  val f88 : int -> int -> int
-  val f89 : int -> int -> int
-  val f90 : int -> int -> int
-  val f91 : int -> int -> int
-  val f92 : int -> int -> int
-  val f93 : int -> int -> int
-  val f94 : int -> int -> int
-  val f95 : int -> int -> int
-  val f96 : int -> int -> int
-  val f97 : int -> int -> int
-  val f98 : int -> int -> int
-  val f99 : int -> int -> int
-  val f100 : int -> int -> int
-  val f101 : int -> int -> int
-  val f102 : int -> int -> int
-  val f103 : int -> int -> int
-  val f104 : int -> int -> int
-  val f105 : int -> int -> int
-  val f106 : int -> int -> int
-  val f107 : int -> int -> int
-  val f108 : int -> int -> int
-  val f109 : int -> int -> int
-  val f110 : int -> int -> int
-  val f111 : int -> int -> int
-  val f112 : int -> int -> int
-  val f113 : int -> int -> int
-  val f114 : int -> int -> int
-  val f115 : int -> int -> int
-  val f116 : int -> int -> int
-  val f117 : int -> int -> int
-  val f118 : int -> int -> int
-  val f119 : int -> int -> int
-  val f120 : int -> int -> int
-  val f121 : int -> int -> int
-  val f122 : int -> int -> int
-  val f123 : int -> int -> int
-  val f124 : int -> int -> int
-  val f125 : int -> int -> int
-  val f126 : int -> int -> int
-  val f127 : int -> int -> int
-  val f128 : int -> int -> int
-  val f129 : int -> int -> int
-  val f130 : int -> int -> int
-  val f131 : int -> int -> int
-  val f132 : int -> int -> int
-  val f133 : int -> int -> int
-  val f134 : int -> int -> int
-  val f135 : int -> int -> int
-  val f136 : int -> int -> int
-  val f137 : int -> int -> int
-  val f138 : int -> int -> int
-  val f139 : int -> int -> int
-  val f140 : int -> int -> int
-  val f141 : int -> int -> int
-  val f142 : int -> int -> int
-  val f143 : int -> int -> int
-  val f144 : int -> int -> int
-  val f145 : int -> int -> int
-  val f146 : int -> int -> int
-  val f147 : int -> int -> int
-  val f148 : int -> int -> int
-  val f149 : int -> int -> int
-  val f150 : int -> int -> int
-  val f151 : int -> int -> int
-  val f152 : int -> int -> int
-  val f153 : int -> int -> int
-  val f154 : int -> int -> int
-  val f155 : int -> int -> int
-  val f156 : int -> int -> int
-  val f157 : int -> int -> int
-  val f158 : int -> int -> int
-  val f159 : int -> int -> int
-  val f160 : int -> int -> int
-  val f161 : int -> int -> int
-  val f162 : int -> int -> int
-  val f163 : int -> int -> int
-  val f164 : int -> int -> int
-  val f165 : int -> int -> int
-  val f166 : int -> int -> int
-  val f167 : int -> int -> int
-  val f168 : int -> int -> int
-  val f169 : int -> int -> int
-  val f170 : int -> int -> int
-  val f171 : int -> int -> int
-  val f172 : int -> int -> int
-  val f173 : int -> int -> int
-  val f174 : int -> int -> int
-  val f175 : int -> int -> int
-  val f176 : int -> int -> int
-  val f177 : int -> int -> int
-  val f178 : int -> int -> int
-  val f179 : int -> int -> int
-  val f180 : int -> int -> int
-  val f181 : int -> int -> int
-  val f182 : int -> int -> int
-  val f183 : int -> int -> int
-  val f184 : int -> int -> int
-  val f185 : int -> int -> int
-  val f186 : int -> int -> int
-  val f187 : int -> int -> int
-  val f188 : int -> int -> int
-  val f189 : int -> int -> int
-  val f190 : int -> int -> int
-  val f191 : int -> int -> int
-  val f192 : int -> int -> int
-  val f193 : int -> int -> int
-  val f194 : int -> int -> int
-  val f195 : int -> int -> int
-  val f196 : int -> int -> int
-  val f197 : int -> int -> int
-  val f198 : int -> int -> int
-  val f199 : int -> int -> int
-  val f200 : int -> int -> int
-  val f201 : int -> int -> int
-  val f202 : int -> int -> int
-  val f203 : int -> int -> int
-  val f204 : int -> int -> int
-  val f205 : int -> int -> int
-  val f206 : int -> int -> int
-  val f207 : int -> int -> int
-  val f208 : int -> int -> int
-  val f209 : int -> int -> int
-  val f210 : int -> int -> int
-  val f211 : int -> int -> int
-  val f212 : int -> int -> int
-  val f213 : int -> int -> int
-  val f214 : int -> int -> int
-  val f215 : int -> int -> int
-  val f216 : int -> int -> int
-  val f217 : int -> int -> int
-  val f218 : int -> int -> int
-  val f219 : int -> int -> int
-  val f220 : int -> int -> int
-  val f221 : int -> int -> int
-  val f222 : int -> int -> int
-  val f223 : int -> int -> int
-  val f224 : int -> int -> int
-  val f225 : int -> int -> int
-  val f226 : int -> int -> int
-  val f227 : int -> int -> int
-  val f228 : int -> int -> int
-  val f229 : int -> int -> int
-  val f230 : int -> int -> int
-  val f231 : int -> int -> int
-  val f232 : int -> int -> int
-  val f233 : int -> int -> int
-  val f234 : int -> int -> int
-  val f235 : int -> int -> int
-  val f236 : int -> int -> int
-  val f237 : int -> int -> int
-  val f238 : int -> int -> int
-  val f239 : int -> int -> int
-  val f240 : int -> int -> int
-  val f241 : int -> int -> int
-  val f242 : int -> int -> int
-  val f243 : int -> int -> int
-  val f244 : int -> int -> int
-  val f245 : int -> int -> int
-  val f246 : int -> int -> int
-  val f247 : int -> int -> int
-  val f248 : int -> int -> int
-  val f249 : int -> int -> int
-  val f250 : int -> int -> int
-  val f251 : int -> int -> int
-  val f252 : int -> int -> int
-  val f253 : int -> int -> int
-  val f254 : int -> int -> int
-  val f255 : int -> int -> int
-  val f256 : int -> int -> int
-  val f257 : int -> int -> int
-  val f258 : int -> int -> int
-  val f259 : int -> int -> int
-  val f260 : int -> int -> int
-  val f261 : int -> int -> int
-  val f262 : int -> int -> int
-  val f263 : int -> int -> int
-  val f264 : int -> int -> int
-  val f265 : int -> int -> int
-  val f266 : int -> int -> int
-  val f267 : int -> int -> int
-  val f268 : int -> int -> int
-  val f269 : int -> int -> int
-  val f270 : int -> int -> int
-  val f271 : int -> int -> int
-  val f272 : int -> int -> int
-  val f273 : int -> int -> int
-  val f274 : int -> int -> int
-  val f275 : int -> int -> int
-  val f276 : int -> int -> int
-  val f277 : int -> int -> int
-  val f278 : int -> int -> int
-  val f279 : int -> int -> int
-  val f280 : int -> int -> int
-  val f281 : int -> int -> int
-  val f282 : int -> int -> int
-  val f283 : int -> int -> int
-  val f284 : int -> int -> int
-  val f285 : int -> int -> int
-  val f286 : int -> int -> int
-  val f287 : int -> int -> int
-  val f288 : int -> int -> int
-  val f289 : int -> int -> int
-  val f290 : int -> int -> int
-  val f291 : int -> int -> int
-  val f292 : int -> int -> int
-  val f293 : int -> int -> int
-  val f294 : int -> int -> int
-  val f295 : int -> int -> int
-  val f296 : int -> int -> int
-  val f297 : int -> int -> int
-  val f298 : int -> int -> int
-  val f299 : int -> int -> int
-  val f300 : int -> int -> int
-  val f301 : int -> int -> int
-  val f302 : int -> int -> int
-  val f303 : int -> int -> int
-  val f304 : int -> int -> int
-  val f305 : int -> int -> int
-  val f306 : int -> int -> int
-  val f307 : int -> int -> int
-  val f308 : int -> int -> int
-  val f309 : int -> int -> int
-  val f310 : int -> int -> int
-  val f311 : int -> int -> int
-  val f312 : int -> int -> int
-  val f313 : int -> int -> int
-  val f314 : int -> int -> int
-  val f315 : int -> int -> int
-  val f316 : int -> int -> int
-  val f317 : int -> int -> int
-  val f318 : int -> int -> int
-  val f319 : int -> int -> int
-  val f320 : int -> int -> int
-  val f321 : int -> int -> int
-  val f322 : int -> int -> int
-  val f323 : int -> int -> int
-  val f324 : int -> int -> int
-  val f325 : int -> int -> int
-  val f326 : int -> int -> int
-  val f327 : int -> int -> int
-  val f328 : int -> int -> int
-  val f329 : int -> int -> int
-  val f330 : int -> int -> int
-  val f331 : int -> int -> int
-  val f332 : int -> int -> int
-  val f333 : int -> int -> int
-  val f334 : int -> int -> int
-  val f335 : int -> int -> int
-  val f336 : int -> int -> int
-  val f337 : int -> int -> int
-  val f338 : int -> int -> int
-  val f339 : int -> int -> int
-  val f340 : int -> int -> int
-  val f341 : int -> int -> int
-  val f342 : int -> int -> int
-  val f343 : int -> int -> int
-  val f344 : int -> int -> int
-  val f345 : int -> int -> int
-  val f346 : int -> int -> int
-  val f347 : int -> int -> int
-  val f348 : int -> int -> int
-  val f349 : int -> int -> int
-  val f350 : int -> int -> int
-  val f351 : int -> int -> int
-  val f352 : int -> int -> int
-  val f353 : int -> int -> int
-  val f354 : int -> int -> int
-  val f355 : int -> int -> int
-  val f356 : int -> int -> int
-  val f357 : int -> int -> int
-  val f358 : int -> int -> int
-  val f359 : int -> int -> int
-  val f360 : int -> int -> int
-  val f361 : int -> int -> int
-  val f362 : int -> int -> int
-  val f363 : int -> int -> int
-  val f364 : int -> int -> int
-  val f365 : int -> int -> int
-  val f366 : int -> int -> int
-  val f367 : int -> int -> int
-  val f368 : int -> int -> int
-  val f369 : int -> int -> int
-  val f370 : int -> int -> int
-  val f371 : int -> int -> int
-  val f372 : int -> int -> int
-  val f373 : int -> int -> int
-  val f374 : int -> int -> int
-  val f375 : int -> int -> int
-  val f376 : int -> int -> int
-  val f377 : int -> int -> int
-  val f378 : int -> int -> int
-  val f379 : int -> int -> int
-  val f380 : int -> int -> int
-  val f381 : int -> int -> int
-  val f382 : int -> int -> int
-  val f383 : int -> int -> int
-  val f384 : int -> int -> int
-  val f385 : int -> int -> int
-  val f386 : int -> int -> int
-  val f387 : int -> int -> int
-  val f388 : int -> int -> int
-  val f389 : int -> int -> int
-  val f390 : int -> int -> int
-  val f391 : int -> int -> int
-  val f392 : int -> int -> int
-  val f393 : int -> int -> int
-  val f394 : int -> int -> int
-  val f395 : int -> int -> int
-  val f396 : int -> int -> int
-  val f397 : int -> int -> int
-  val f398 : int -> int -> int
-  val f399 : int -> int -> int
-  val f400 : int -> int -> int
-  val f401 : int -> int -> int
-  val f402 : int -> int -> int
-  val f403 : int -> int -> int
-  val f404 : int -> int -> int
-  val f405 : int -> int -> int
-  val f406 : int -> int -> int
-  val f407 : int -> int -> int
-  val f408 : int -> int -> int
-  val f409 : int -> int -> int
-  val f410 : int -> int -> int
-  val f411 : int -> int -> int
-  val f412 : int -> int -> int
-  val f413 : int -> int -> int
-  val f414 : int -> int -> int
-  val f415 : int -> int -> int
-  val f416 : int -> int -> int
-  val f417 : int -> int -> int
-  val f418 : int -> int -> int
-  val f419 : int -> int -> int
-  val f420 : int -> int -> int
-  val f421 : int -> int -> int
-  val f422 : int -> int -> int
-  val f423 : int -> int -> int
-  val f424 : int -> int -> int
-  val f425 : int -> int -> int
-  val f426 : int -> int -> int
-  val f427 : int -> int -> int
-  val f428 : int -> int -> int
-  val f429 : int -> int -> int
-  val f430 : int -> int -> int
-  val f431 : int -> int -> int
-  val f432 : int -> int -> int
-  val f433 : int -> int -> int
-  val f434 : int -> int -> int
-  val f435 : int -> int -> int
-  val f436 : int -> int -> int
-  val f437 : int -> int -> int
-  val f438 : int -> int -> int
-  val f439 : int -> int -> int
-  val f440 : int -> int -> int
-  val f441 : int -> int -> int
-  val f442 : int -> int -> int
-  val f443 : int -> int -> int
-  val f444 : int -> int -> int
-  val f445 : int -> int -> int
-  val f446 : int -> int -> int
-  val f447 : int -> int -> int
-  val f448 : int -> int -> int
-  val f449 : int -> int -> int
-  val f450 : int -> int -> int
-  val f451 : int -> int -> int
-  val f452 : int -> int -> int
-  val f453 : int -> int -> int
-  val f454 : int -> int -> int
-  val f455 : int -> int -> int
-  val f456 : int -> int -> int
-  val f457 : int -> int -> int
-  val f458 : int -> int -> int
-  val f459 : int -> int -> int
-  val f460 : int -> int -> int
-  val f461 : int -> int -> int
-  val f462 : int -> int -> int
-  val f463 : int -> int -> int
-  val f464 : int -> int -> int
-  val f465 : int -> int -> int
-  val f466 : int -> int -> int
-  val f467 : int -> int -> int
-  val f468 : int -> int -> int
-  val f469 : int -> int -> int
-  val f470 : int -> int -> int
-  val f471 : int -> int -> int
-  val f472 : int -> int -> int
-  val f473 : int -> int -> int
-  val f474 : int -> int -> int
-  val f475 : int -> int -> int
-  val f476 : int -> int -> int
-  val f477 : int -> int -> int
-  val f478 : int -> int -> int
-  val f479 : int -> int -> int
-  val f480 : int -> int -> int
-  val f481 : int -> int -> int
-  val f482 : int -> int -> int
-  val f483 : int -> int -> int
-  val f484 : int -> int -> int
-  val f485 : int -> int -> int
-  val f486 : int -> int -> int
-  val f487 : int -> int -> int
-  val f488 : int -> int -> int
-  val f489 : int -> int -> int
-  val f490 : int -> int -> int
-  val f491 : int -> int -> int
-  val f492 : int -> int -> int
-  val f493 : int -> int -> int
-  val f494 : int -> int -> int
-  val f495 : int -> int -> int
-  val f496 : int -> int -> int
-  val f497 : int -> int -> int
-  val f498 : int -> int -> int
-  val f499 : int -> int -> int
-  val f500 : int -> int -> int
-  val f501 : int -> int -> int
-  val f502 : int -> int -> int
-  val f503 : int -> int -> int
-  val f504 : int -> int -> int
-  val f505 : int -> int -> int
-  val f506 : int -> int -> int
-  val f507 : int -> int -> int
-  val f508 : int -> int -> int
-  val f509 : int -> int -> int
-  val f510 : int -> int -> int
-  val f511 : int -> int -> int
-  val f512 : int -> int -> int
-  val f513 : int -> int -> int
-  val f514 : int -> int -> int
-  val f515 : int -> int -> int
-  val f516 : int -> int -> int
-  val f517 : int -> int -> int
-  val f518 : int -> int -> int
-  val f519 : int -> int -> int
-  val f520 : int -> int -> int
-  val f521 : int -> int -> int
-  val f522 : int -> int -> int
-  val f523 : int -> int -> int
-  val f524 : int -> int -> int
-  val f525 : int -> int -> int
-  val f526 : int -> int -> int
-  val f527 : int -> int -> int
-  val f528 : int -> int -> int
-  val f529 : int -> int -> int
-  val f530 : int -> int -> int
-  val f531 : int -> int -> int
-  val f532 : int -> int -> int
-  val f533 : int -> int -> int
-  val f534 : int -> int -> int
-  val f535 : int -> int -> int
-  val f536 : int -> int -> int
-  val f537 : int -> int -> int
-  val f538 : int -> int -> int
-  val f539 : int -> int -> int
-  val f540 : int -> int -> int
-  val f541 : int -> int -> int
-  val f542 : int -> int -> int
-  val f543 : int -> int -> int
-  val f544 : int -> int -> int
-  val f545 : int -> int -> int
-  val f546 : int -> int -> int
-  val f547 : int -> int -> int
-  val f548 : int -> int -> int
-  val f549 : int -> int -> int
-  val f550 : int -> int -> int
-  val f551 : int -> int -> int
-  val f552 : int -> int -> int
-  val f553 : int -> int -> int
-  val f554 : int -> int -> int
-  val f555 : int -> int -> int
-  val f556 : int -> int -> int
-  val f557 : int -> int -> int
-  val f558 : int -> int -> int
-  val f559 : int -> int -> int
-  val f560 : int -> int -> int
-  val f561 : int -> int -> int
-  val f562 : int -> int -> int
-  val f563 : int -> int -> int
-  val f564 : int -> int -> int
-  val f565 : int -> int -> int
-  val f566 : int -> int -> int
-  val f567 : int -> int -> int
-  val f568 : int -> int -> int
-  val f569 : int -> int -> int
-  val f570 : int -> int -> int
-  val f571 : int -> int -> int
-  val f572 : int -> int -> int
-  val f573 : int -> int -> int
-  val f574 : int -> int -> int
-  val f575 : int -> int -> int
-  val f576 : int -> int -> int
-  val f577 : int -> int -> int
-  val f578 : int -> int -> int
-  val f579 : int -> int -> int
-  val f580 : int -> int -> int
-  val f581 : int -> int -> int
-  val f582 : int -> int -> int
-  val f583 : int -> int -> int
-  val f584 : int -> int -> int
-  val f585 : int -> int -> int
-  val f586 : int -> int -> int
-  val f587 : int -> int -> int
-  val f588 : int -> int -> int
-  val f589 : int -> int -> int
-  val f590 : int -> int -> int
-  val f591 : int -> int -> int
-  val f592 : int -> int -> int
-  val f593 : int -> int -> int
-  val f594 : int -> int -> int
-  val f595 : int -> int -> int
-  val f596 : int -> int -> int
-  val f597 : int -> int -> int
-  val f598 : int -> int -> int
-  val f599 : int -> int -> int
-  val f600 : int -> int -> int
-  val f601 : int -> int -> int
-  val f602 : int -> int -> int
-  val f603 : int -> int -> int
-  val f604 : int -> int -> int
-  val f605 : int -> int -> int
-  val f606 : int -> int -> int
-  val f607 : int -> int -> int
-  val f608 : int -> int -> int
-  val f609 : int -> int -> int
-  val f610 : int -> int -> int
-  val f611 : int -> int -> int
-  val f612 : int -> int -> int
-  val f613 : int -> int -> int
-  val f614 : int -> int -> int
-  val f615 : int -> int -> int
-  val f616 : int -> int -> int
-  val f617 : int -> int -> int
-  val f618 : int -> int -> int
-  val f619 : int -> int -> int
-  val f620 : int -> int -> int
-  val f621 : int -> int -> int
-  val f622 : int -> int -> int
-  val f623 : int -> int -> int
-  val f624 : int -> int -> int
-  val f625 : int -> int -> int
-  val f626 : int -> int -> int
-  val f627 : int -> int -> int
-  val f628 : int -> int -> int
-  val f629 : int -> int -> int
-  val f630 : int -> int -> int
-  val f631 : int -> int -> int
-  val f632 : int -> int -> int
-  val f633 : int -> int -> int
-  val f634 : int -> int -> int
-  val f635 : int -> int -> int
-  val f636 : int -> int -> int
-  val f637 : int -> int -> int
-  val f638 : int -> int -> int
-  val f639 : int -> int -> int
-  val f640 : int -> int -> int
-  val f641 : int -> int -> int
-  val f642 : int -> int -> int
-  val f643 : int -> int -> int
-  val f644 : int -> int -> int
-  val f645 : int -> int -> int
-  val f646 : int -> int -> int
-  val f647 : int -> int -> int
-  val f648 : int -> int -> int
-  val f649 : int -> int -> int
-  val f650 : int -> int -> int
-  val f651 : int -> int -> int
-  val f652 : int -> int -> int
-  val f653 : int -> int -> int
-  val f654 : int -> int -> int
-  val f655 : int -> int -> int
-  val f656 : int -> int -> int
-  val f657 : int -> int -> int
-  val f658 : int -> int -> int
-  val f659 : int -> int -> int
-  val f660 : int -> int -> int
-  val f661 : int -> int -> int
-  val f662 : int -> int -> int
-  val f663 : int -> int -> int
-  val f664 : int -> int -> int
-  val f665 : int -> int -> int
-  val f666 : int -> int -> int
-  val f667 : int -> int -> int
-  val f668 : int -> int -> int
-  val f669 : int -> int -> int
-  val f670 : int -> int -> int
-  val f671 : int -> int -> int
-  val f672 : int -> int -> int
-  val f673 : int -> int -> int
-  val f674 : int -> int -> int
-  val f675 : int -> int -> int
-  val f676 : int -> int -> int
-  val f677 : int -> int -> int
-  val f678 : int -> int -> int
-  val f679 : int -> int -> int
-  val f680 : int -> int -> int
-  val f681 : int -> int -> int
-  val f682 : int -> int -> int
-  val f683 : int -> int -> int
-  val f684 : int -> int -> int
-  val f685 : int -> int -> int
-  val f686 : int -> int -> int
-  val f687 : int -> int -> int
-  val f688 : int -> int -> int
-  val f689 : int -> int -> int
-  val f690 : int -> int -> int
-  val f691 : int -> int -> int
-  val f692 : int -> int -> int
-  val f693 : int -> int -> int
-  val f694 : int -> int -> int
-  val f695 : int -> int -> int
-  val f696 : int -> int -> int
-  val f697 : int -> int -> int
-  val f698 : int -> int -> int
-  val f699 : int -> int -> int
-  val f700 : int -> int -> int
-  val f701 : int -> int -> int
-  val f702 : int -> int -> int
-  val f703 : int -> int -> int
-  val f704 : int -> int -> int
-  val f705 : int -> int -> int
-  val f706 : int -> int -> int
-  val f707 : int -> int -> int
-  val f708 : int -> int -> int
-  val f709 : int -> int -> int
-  val f710 : int -> int -> int
-  val f711 : int -> int -> int
-  val f712 : int -> int -> int
-  val f713 : int -> int -> int
-  val f714 : int -> int -> int
-  val f715 : int -> int -> int
-  val f716 : int -> int -> int
-  val f717 : int -> int -> int
-  val f718 : int -> int -> int
-  val f719 : int -> int -> int
-  val f720 : int -> int -> int
-  val f721 : int -> int -> int
-  val f722 : int -> int -> int
-  val f723 : int -> int -> int
-  val f724 : int -> int -> int
-  val f725 : int -> int -> int
-  val f726 : int -> int -> int
-  val f727 : int -> int -> int
-  val f728 : int -> int -> int
-  val f729 : int -> int -> int
-  val f730 : int -> int -> int
-  val f731 : int -> int -> int
-  val f732 : int -> int -> int
-  val f733 : int -> int -> int
-  val f734 : int -> int -> int
-  val f735 : int -> int -> int
-  val f736 : int -> int -> int
-  val f737 : int -> int -> int
-  val f738 : int -> int -> int
-  val f739 : int -> int -> int
-  val f740 : int -> int -> int
-  val f741 : int -> int -> int
-  val f742 : int -> int -> int
-  val f743 : int -> int -> int
-  val f744 : int -> int -> int
-  val f745 : int -> int -> int
-  val f746 : int -> int -> int
-  val f747 : int -> int -> int
-  val f748 : int -> int -> int
-  val f749 : int -> int -> int
-  val f750 : int -> int -> int
-  val f751 : int -> int -> int
-  val f752 : int -> int -> int
-  val f753 : int -> int -> int
-  val f754 : int -> int -> int
-  val f755 : int -> int -> int
-  val f756 : int -> int -> int
-  val f757 : int -> int -> int
-  val f758 : int -> int -> int
-  val f759 : int -> int -> int
-  val f760 : int -> int -> int
-  val f761 : int -> int -> int
-  val f762 : int -> int -> int
-  val f763 : int -> int -> int
-  val f764 : int -> int -> int
-  val f765 : int -> int -> int
-  val f766 : int -> int -> int
-  val f767 : int -> int -> int
-  val f768 : int -> int -> int
-  val f769 : int -> int -> int
-  val f770 : int -> int -> int
-  val f771 : int -> int -> int
-  val f772 : int -> int -> int
-  val f773 : int -> int -> int
-  val f774 : int -> int -> int
-  val f775 : int -> int -> int
-  val f776 : int -> int -> int
-  val f777 : int -> int -> int
-  val f778 : int -> int -> int
-  val f779 : int -> int -> int
-  val f780 : int -> int -> int
-  val f781 : int -> int -> int
-  val f782 : int -> int -> int
-  val f783 : int -> int -> int
-  val f784 : int -> int -> int
-  val f785 : int -> int -> int
-  val f786 : int -> int -> int
-  val f787 : int -> int -> int
-  val f788 : int -> int -> int
-  val f789 : int -> int -> int
-  val f790 : int -> int -> int
-  val f791 : int -> int -> int
-  val f792 : int -> int -> int
-  val f793 : int -> int -> int
-  val f794 : int -> int -> int
-  val f795 : int -> int -> int
-  val f796 : int -> int -> int
-  val f797 : int -> int -> int
-  val f798 : int -> int -> int
-  val f799 : int -> int -> int
-  val f800 : int -> int -> int
-  val f801 : int -> int -> int
-  val f802 : int -> int -> int
-  val f803 : int -> int -> int
-  val f804 : int -> int -> int
-  val f805 : int -> int -> int
-  val f806 : int -> int -> int
-  val f807 : int -> int -> int
-  val f808 : int -> int -> int
-  val f809 : int -> int -> int
-  val f810 : int -> int -> int
-  val f811 : int -> int -> int
-  val f812 : int -> int -> int
-  val f813 : int -> int -> int
-  val f814 : int -> int -> int
-  val f815 : int -> int -> int
-  val f816 : int -> int -> int
-  val f817 : int -> int -> int
-  val f818 : int -> int -> int
-  val f819 : int -> int -> int
-  val f820 : int -> int -> int
-  val f821 : int -> int -> int
-  val f822 : int -> int -> int
-  val f823 : int -> int -> int
-  val f824 : int -> int -> int
-  val f825 : int -> int -> int
-  val f826 : int -> int -> int
-  val f827 : int -> int -> int
-  val f828 : int -> int -> int
-  val f829 : int -> int -> int
-  val f830 : int -> int -> int
-  val f831 : int -> int -> int
-  val f832 : int -> int -> int
-  val f833 : int -> int -> int
-  val f834 : int -> int -> int
-  val f835 : int -> int -> int
-  val f836 : int -> int -> int
-  val f837 : int -> int -> int
-  val f838 : int -> int -> int
-  val f839 : int -> int -> int
-  val f840 : int -> int -> int
-  val f841 : int -> int -> int
-  val f842 : int -> int -> int
-  val f843 : int -> int -> int
-  val f844 : int -> int -> int
-  val f845 : int -> int -> int
-  val f846 : int -> int -> int
-  val f847 : int -> int -> int
-  val f848 : int -> int -> int
-  val f849 : int -> int -> int
-  val f850 : int -> int -> int
-  val f851 : int -> int -> int
-  val f852 : int -> int -> int
-  val f853 : int -> int -> int
-  val f854 : int -> int -> int
-  val f855 : int -> int -> int
-  val f856 : int -> int -> int
-  val f857 : int -> int -> int
-  val f858 : int -> int -> int
-  val f859 : int -> int -> int
-  val f860 : int -> int -> int
-  val f861 : int -> int -> int
-  val f862 : int -> int -> int
-  val f863 : int -> int -> int
-  val f864 : int -> int -> int
-  val f865 : int -> int -> int
-  val f866 : int -> int -> int
-  val f867 : int -> int -> int
-  val f868 : int -> int -> int
-  val f869 : int -> int -> int
-  val f870 : int -> int -> int
-  val f871 : int -> int -> int
-  val f872 : int -> int -> int
-  val f873 : int -> int -> int
-  val f874 : int -> int -> int
-  val f875 : int -> int -> int
-  val f876 : int -> int -> int
-  val f877 : int -> int -> int
-  val f878 : int -> int -> int
-  val f879 : int -> int -> int
-  val f880 : int -> int -> int
-  val f881 : int -> int -> int
-  val f882 : int -> int -> int
-  val f883 : int -> int -> int
-  val f884 : int -> int -> int
-  val f885 : int -> int -> int
-  val f886 : int -> int -> int
-  val f887 : int -> int -> int
-  val f888 : int -> int -> int
-  val f889 : int -> int -> int
-  val f890 : int -> int -> int
-  val f891 : int -> int -> int
-  val f892 : int -> int -> int
-  val f893 : int -> int -> int
-  val f894 : int -> int -> int
-  val f895 : int -> int -> int
-  val f896 : int -> int -> int
-  val f897 : int -> int -> int
-  val f898 : int -> int -> int
-  val f899 : int -> int -> int
-  val f900 : int -> int -> int
-  val f901 : int -> int -> int
-  val f902 : int -> int -> int
-  val f903 : int -> int -> int
-  val f904 : int -> int -> int
-  val f905 : int -> int -> int
-  val f906 : int -> int -> int
-  val f907 : int -> int -> int
-  val f908 : int -> int -> int
-  val f909 : int -> int -> int
-  val f910 : int -> int -> int
-  val f911 : int -> int -> int
-  val f912 : int -> int -> int
-  val f913 : int -> int -> int
-  val f914 : int -> int -> int
-  val f915 : int -> int -> int
-  val f916 : int -> int -> int
-  val f917 : int -> int -> int
-  val f918 : int -> int -> int
-  val f919 : int -> int -> int
-  val f920 : int -> int -> int
-  val f921 : int -> int -> int
-  val f922 : int -> int -> int
-  val f923 : int -> int -> int
-  val f924 : int -> int -> int
-  val f925 : int -> int -> int
-  val f926 : int -> int -> int
-  val f927 : int -> int -> int
-  val f928 : int -> int -> int
-  val f929 : int -> int -> int
-  val f930 : int -> int -> int
-  val f931 : int -> int -> int
-  val f932 : int -> int -> int
-  val f933 : int -> int -> int
-  val f934 : int -> int -> int
-  val f935 : int -> int -> int
-  val f936 : int -> int -> int
-  val f937 : int -> int -> int
-  val f938 : int -> int -> int
-  val f939 : int -> int -> int
-  val f940 : int -> int -> int
-  val f941 : int -> int -> int
-  val f942 : int -> int -> int
-  val f943 : int -> int -> int
-  val f944 : int -> int -> int
-  val f945 : int -> int -> int
-  val f946 : int -> int -> int
-  val f947 : int -> int -> int
-  val f948 : int -> int -> int
-  val f949 : int -> int -> int
-  val f950 : int -> int -> int
-  val f951 : int -> int -> int
-  val f952 : int -> int -> int
-  val f953 : int -> int -> int
-  val f954 : int -> int -> int
-  val f955 : int -> int -> int
-  val f956 : int -> int -> int
-  val f957 : int -> int -> int
-  val f958 : int -> int -> int
-  val f959 : int -> int -> int
-  val f960 : int -> int -> int
-  val f961 : int -> int -> int
-  val f962 : int -> int -> int
-  val f963 : int -> int -> int
-  val f964 : int -> int -> int
-  val f965 : int -> int -> int
-  val f966 : int -> int -> int
-  val f967 : int -> int -> int
-  val f968 : int -> int -> int
-  val f969 : int -> int -> int
-  val f970 : int -> int -> int
-  val f971 : int -> int -> int
-  val f972 : int -> int -> int
-  val f973 : int -> int -> int
-  val f974 : int -> int -> int
-  val f975 : int -> int -> int
-  val f976 : int -> int -> int
-  val f977 : int -> int -> int
-  val f978 : int -> int -> int
-  val f979 : int -> int -> int
-  val f980 : int -> int -> int
-  val f981 : int -> int -> int
-  val f982 : int -> int -> int
-  val f983 : int -> int -> int
-  val f984 : int -> int -> int
-  val f985 : int -> int -> int
-  val f986 : int -> int -> int
-  val f987 : int -> int -> int
-  val f988 : int -> int -> int
-  val f989 : int -> int -> int
-  val f990 : int -> int -> int
-  val f991 : int -> int -> int
-  val f992 : int -> int -> int
-  val f993 : int -> int -> int
-  val f994 : int -> int -> int
-  val f995 : int -> int -> int
-  val f996 : int -> int -> int
-  val f997 : int -> int -> int
-  val f998 : int -> int -> int
-  val f999 : int -> int -> int
-  val f1000 : int -> int -> int
-end
-
-module Make (M : S) = struct
-  include M
-end
-
-module M = struct
-(* <%- for i in 0 .. 1000 do -%>
-  let f<%= i %> = ( + )
-<%- end -%>                      *)
-  let f0 = ( + )
-  let f1 = ( + )
-  let f2 = ( + )
-  let f3 = ( + )
-  let f4 = ( + )
-  let f5 = ( + )
-  let f6 = ( + )
-  let f7 = ( + )
-  let f8 = ( + )
-  let f9 = ( + )
-  let f10 = ( + )
-  let f11 = ( + )
-  let f12 = ( + )
-  let f13 = ( + )
-  let f14 = ( + )
-  let f15 = ( + )
-  let f16 = ( + )
-  let f17 = ( + )
-  let f18 = ( + )
-  let f19 = ( + )
-  let f20 = ( + )
-  let f21 = ( + )
-  let f22 = ( + )
-  let f23 = ( + )
-  let f24 = ( + )
-  let f25 = ( + )
-  let f26 = ( + )
-  let f27 = ( + )
-  let f28 = ( + )
-  let f29 = ( + )
-  let f30 = ( + )
-  let f31 = ( + )
-  let f32 = ( + )
-  let f33 = ( + )
-  let f34 = ( + )
-  let f35 = ( + )
-  let f36 = ( + )
-  let f37 = ( + )
-  let f38 = ( + )
-  let f39 = ( + )
-  let f40 = ( + )
-  let f41 = ( + )
-  let f42 = ( + )
-  let f43 = ( + )
-  let f44 = ( + )
-  let f45 = ( + )
-  let f46 = ( + )
-  let f47 = ( + )
-  let f48 = ( + )
-  let f49 = ( + )
-  let f50 = ( + )
-  let f51 = ( + )
-  let f52 = ( + )
-  let f53 = ( + )
-  let f54 = ( + )
-  let f55 = ( + )
-  let f56 = ( + )
-  let f57 = ( + )
-  let f58 = ( + )
-  let f59 = ( + )
-  let f60 = ( + )
-  let f61 = ( + )
-  let f62 = ( + )
-  let f63 = ( + )
-  let f64 = ( + )
-  let f65 = ( + )
-  let f66 = ( + )
-  let f67 = ( + )
-  let f68 = ( + )
-  let f69 = ( + )
-  let f70 = ( + )
-  let f71 = ( + )
-  let f72 = ( + )
-  let f73 = ( + )
-  let f74 = ( + )
-  let f75 = ( + )
-  let f76 = ( + )
-  let f77 = ( + )
-  let f78 = ( + )
-  let f79 = ( + )
-  let f80 = ( + )
-  let f81 = ( + )
-  let f82 = ( + )
-  let f83 = ( + )
-  let f84 = ( + )
-  let f85 = ( + )
-  let f86 = ( + )
-  let f87 = ( + )
-  let f88 = ( + )
-  let f89 = ( + )
-  let f90 = ( + )
-  let f91 = ( + )
-  let f92 = ( + )
-  let f93 = ( + )
-  let f94 = ( + )
-  let f95 = ( + )
-  let f96 = ( + )
-  let f97 = ( + )
-  let f98 = ( + )
-  let f99 = ( + )
-  let f100 = ( + )
-  let f101 = ( + )
-  let f102 = ( + )
-  let f103 = ( + )
-  let f104 = ( + )
-  let f105 = ( + )
-  let f106 = ( + )
-  let f107 = ( + )
-  let f108 = ( + )
-  let f109 = ( + )
-  let f110 = ( + )
-  let f111 = ( + )
-  let f112 = ( + )
-  let f113 = ( + )
-  let f114 = ( + )
-  let f115 = ( + )
-  let f116 = ( + )
-  let f117 = ( + )
-  let f118 = ( + )
-  let f119 = ( + )
-  let f120 = ( + )
-  let f121 = ( + )
-  let f122 = ( + )
-  let f123 = ( + )
-  let f124 = ( + )
-  let f125 = ( + )
-  let f126 = ( + )
-  let f127 = ( + )
-  let f128 = ( + )
-  let f129 = ( + )
-  let f130 = ( + )
-  let f131 = ( + )
-  let f132 = ( + )
-  let f133 = ( + )
-  let f134 = ( + )
-  let f135 = ( + )
-  let f136 = ( + )
-  let f137 = ( + )
-  let f138 = ( + )
-  let f139 = ( + )
-  let f140 = ( + )
-  let f141 = ( + )
-  let f142 = ( + )
-  let f143 = ( + )
-  let f144 = ( + )
-  let f145 = ( + )
-  let f146 = ( + )
-  let f147 = ( + )
-  let f148 = ( + )
-  let f149 = ( + )
-  let f150 = ( + )
-  let f151 = ( + )
-  let f152 = ( + )
-  let f153 = ( + )
-  let f154 = ( + )
-  let f155 = ( + )
-  let f156 = ( + )
-  let f157 = ( + )
-  let f158 = ( + )
-  let f159 = ( + )
-  let f160 = ( + )
-  let f161 = ( + )
-  let f162 = ( + )
-  let f163 = ( + )
-  let f164 = ( + )
-  let f165 = ( + )
-  let f166 = ( + )
-  let f167 = ( + )
-  let f168 = ( + )
-  let f169 = ( + )
-  let f170 = ( + )
-  let f171 = ( + )
-  let f172 = ( + )
-  let f173 = ( + )
-  let f174 = ( + )
-  let f175 = ( + )
-  let f176 = ( + )
-  let f177 = ( + )
-  let f178 = ( + )
-  let f179 = ( + )
-  let f180 = ( + )
-  let f181 = ( + )
-  let f182 = ( + )
-  let f183 = ( + )
-  let f184 = ( + )
-  let f185 = ( + )
-  let f186 = ( + )
-  let f187 = ( + )
-  let f188 = ( + )
-  let f189 = ( + )
-  let f190 = ( + )
-  let f191 = ( + )
-  let f192 = ( + )
-  let f193 = ( + )
-  let f194 = ( + )
-  let f195 = ( + )
-  let f196 = ( + )
-  let f197 = ( + )
-  let f198 = ( + )
-  let f199 = ( + )
-  let f200 = ( + )
-  let f201 = ( + )
-  let f202 = ( + )
-  let f203 = ( + )
-  let f204 = ( + )
-  let f205 = ( + )
-  let f206 = ( + )
-  let f207 = ( + )
-  let f208 = ( + )
-  let f209 = ( + )
-  let f210 = ( + )
-  let f211 = ( + )
-  let f212 = ( + )
-  let f213 = ( + )
-  let f214 = ( + )
-  let f215 = ( + )
-  let f216 = ( + )
-  let f217 = ( + )
-  let f218 = ( + )
-  let f219 = ( + )
-  let f220 = ( + )
-  let f221 = ( + )
-  let f222 = ( + )
-  let f223 = ( + )
-  let f224 = ( + )
-  let f225 = ( + )
-  let f226 = ( + )
-  let f227 = ( + )
-  let f228 = ( + )
-  let f229 = ( + )
-  let f230 = ( + )
-  let f231 = ( + )
-  let f232 = ( + )
-  let f233 = ( + )
-  let f234 = ( + )
-  let f235 = ( + )
-  let f236 = ( + )
-  let f237 = ( + )
-  let f238 = ( + )
-  let f239 = ( + )
-  let f240 = ( + )
-  let f241 = ( + )
-  let f242 = ( + )
-  let f243 = ( + )
-  let f244 = ( + )
-  let f245 = ( + )
-  let f246 = ( + )
-  let f247 = ( + )
-  let f248 = ( + )
-  let f249 = ( + )
-  let f250 = ( + )
-  let f251 = ( + )
-  let f252 = ( + )
-  let f253 = ( + )
-  let f254 = ( + )
-  let f255 = ( + )
-  let f256 = ( + )
-  let f257 = ( + )
-  let f258 = ( + )
-  let f259 = ( + )
-  let f260 = ( + )
-  let f261 = ( + )
-  let f262 = ( + )
-  let f263 = ( + )
-  let f264 = ( + )
-  let f265 = ( + )
-  let f266 = ( + )
-  let f267 = ( + )
-  let f268 = ( + )
-  let f269 = ( + )
-  let f270 = ( + )
-  let f271 = ( + )
-  let f272 = ( + )
-  let f273 = ( + )
-  let f274 = ( + )
-  let f275 = ( + )
-  let f276 = ( + )
-  let f277 = ( + )
-  let f278 = ( + )
-  let f279 = ( + )
-  let f280 = ( + )
-  let f281 = ( + )
-  let f282 = ( + )
-  let f283 = ( + )
-  let f284 = ( + )
-  let f285 = ( + )
-  let f286 = ( + )
-  let f287 = ( + )
-  let f288 = ( + )
-  let f289 = ( + )
-  let f290 = ( + )
-  let f291 = ( + )
-  let f292 = ( + )
-  let f293 = ( + )
-  let f294 = ( + )
-  let f295 = ( + )
-  let f296 = ( + )
-  let f297 = ( + )
-  let f298 = ( + )
-  let f299 = ( + )
-  let f300 = ( + )
-  let f301 = ( + )
-  let f302 = ( + )
-  let f303 = ( + )
-  let f304 = ( + )
-  let f305 = ( + )
-  let f306 = ( + )
-  let f307 = ( + )
-  let f308 = ( + )
-  let f309 = ( + )
-  let f310 = ( + )
-  let f311 = ( + )
-  let f312 = ( + )
-  let f313 = ( + )
-  let f314 = ( + )
-  let f315 = ( + )
-  let f316 = ( + )
-  let f317 = ( + )
-  let f318 = ( + )
-  let f319 = ( + )
-  let f320 = ( + )
-  let f321 = ( + )
-  let f322 = ( + )
-  let f323 = ( + )
-  let f324 = ( + )
-  let f325 = ( + )
-  let f326 = ( + )
-  let f327 = ( + )
-  let f328 = ( + )
-  let f329 = ( + )
-  let f330 = ( + )
-  let f331 = ( + )
-  let f332 = ( + )
-  let f333 = ( + )
-  let f334 = ( + )
-  let f335 = ( + )
-  let f336 = ( + )
-  let f337 = ( + )
-  let f338 = ( + )
-  let f339 = ( + )
-  let f340 = ( + )
-  let f341 = ( + )
-  let f342 = ( + )
-  let f343 = ( + )
-  let f344 = ( + )
-  let f345 = ( + )
-  let f346 = ( + )
-  let f347 = ( + )
-  let f348 = ( + )
-  let f349 = ( + )
-  let f350 = ( + )
-  let f351 = ( + )
-  let f352 = ( + )
-  let f353 = ( + )
-  let f354 = ( + )
-  let f355 = ( + )
-  let f356 = ( + )
-  let f357 = ( + )
-  let f358 = ( + )
-  let f359 = ( + )
-  let f360 = ( + )
-  let f361 = ( + )
-  let f362 = ( + )
-  let f363 = ( + )
-  let f364 = ( + )
-  let f365 = ( + )
-  let f366 = ( + )
-  let f367 = ( + )
-  let f368 = ( + )
-  let f369 = ( + )
-  let f370 = ( + )
-  let f371 = ( + )
-  let f372 = ( + )
-  let f373 = ( + )
-  let f374 = ( + )
-  let f375 = ( + )
-  let f376 = ( + )
-  let f377 = ( + )
-  let f378 = ( + )
-  let f379 = ( + )
-  let f380 = ( + )
-  let f381 = ( + )
-  let f382 = ( + )
-  let f383 = ( + )
-  let f384 = ( + )
-  let f385 = ( + )
-  let f386 = ( + )
-  let f387 = ( + )
-  let f388 = ( + )
-  let f389 = ( + )
-  let f390 = ( + )
-  let f391 = ( + )
-  let f392 = ( + )
-  let f393 = ( + )
-  let f394 = ( + )
-  let f395 = ( + )
-  let f396 = ( + )
-  let f397 = ( + )
-  let f398 = ( + )
-  let f399 = ( + )
-  let f400 = ( + )
-  let f401 = ( + )
-  let f402 = ( + )
-  let f403 = ( + )
-  let f404 = ( + )
-  let f405 = ( + )
-  let f406 = ( + )
-  let f407 = ( + )
-  let f408 = ( + )
-  let f409 = ( + )
-  let f410 = ( + )
-  let f411 = ( + )
-  let f412 = ( + )
-  let f413 = ( + )
-  let f414 = ( + )
-  let f415 = ( + )
-  let f416 = ( + )
-  let f417 = ( + )
-  let f418 = ( + )
-  let f419 = ( + )
-  let f420 = ( + )
-  let f421 = ( + )
-  let f422 = ( + )
-  let f423 = ( + )
-  let f424 = ( + )
-  let f425 = ( + )
-  let f426 = ( + )
-  let f427 = ( + )
-  let f428 = ( + )
-  let f429 = ( + )
-  let f430 = ( + )
-  let f431 = ( + )
-  let f432 = ( + )
-  let f433 = ( + )
-  let f434 = ( + )
-  let f435 = ( + )
-  let f436 = ( + )
-  let f437 = ( + )
-  let f438 = ( + )
-  let f439 = ( + )
-  let f440 = ( + )
-  let f441 = ( + )
-  let f442 = ( + )
-  let f443 = ( + )
-  let f444 = ( + )
-  let f445 = ( + )
-  let f446 = ( + )
-  let f447 = ( + )
-  let f448 = ( + )
-  let f449 = ( + )
-  let f450 = ( + )
-  let f451 = ( + )
-  let f452 = ( + )
-  let f453 = ( + )
-  let f454 = ( + )
-  let f455 = ( + )
-  let f456 = ( + )
-  let f457 = ( + )
-  let f458 = ( + )
-  let f459 = ( + )
-  let f460 = ( + )
-  let f461 = ( + )
-  let f462 = ( + )
-  let f463 = ( + )
-  let f464 = ( + )
-  let f465 = ( + )
-  let f466 = ( + )
-  let f467 = ( + )
-  let f468 = ( + )
-  let f469 = ( + )
-  let f470 = ( + )
-  let f471 = ( + )
-  let f472 = ( + )
-  let f473 = ( + )
-  let f474 = ( + )
-  let f475 = ( + )
-  let f476 = ( + )
-  let f477 = ( + )
-  let f478 = ( + )
-  let f479 = ( + )
-  let f480 = ( + )
-  let f481 = ( + )
-  let f482 = ( + )
-  let f483 = ( + )
-  let f484 = ( + )
-  let f485 = ( + )
-  let f486 = ( + )
-  let f487 = ( + )
-  let f488 = ( + )
-  let f489 = ( + )
-  let f490 = ( + )
-  let f491 = ( + )
-  let f492 = ( + )
-  let f493 = ( + )
-  let f494 = ( + )
-  let f495 = ( + )
-  let f496 = ( + )
-  let f497 = ( + )
-  let f498 = ( + )
-  let f499 = ( + )
-  let f500 = ( + )
-  let f501 = ( + )
-  let f502 = ( + )
-  let f503 = ( + )
-  let f504 = ( + )
-  let f505 = ( + )
-  let f506 = ( + )
-  let f507 = ( + )
-  let f508 = ( + )
-  let f509 = ( + )
-  let f510 = ( + )
-  let f511 = ( + )
-  let f512 = ( + )
-  let f513 = ( + )
-  let f514 = ( + )
-  let f515 = ( + )
-  let f516 = ( + )
-  let f517 = ( + )
-  let f518 = ( + )
-  let f519 = ( + )
-  let f520 = ( + )
-  let f521 = ( + )
-  let f522 = ( + )
-  let f523 = ( + )
-  let f524 = ( + )
-  let f525 = ( + )
-  let f526 = ( + )
-  let f527 = ( + )
-  let f528 = ( + )
-  let f529 = ( + )
-  let f530 = ( + )
-  let f531 = ( + )
-  let f532 = ( + )
-  let f533 = ( + )
-  let f534 = ( + )
-  let f535 = ( + )
-  let f536 = ( + )
-  let f537 = ( + )
-  let f538 = ( + )
-  let f539 = ( + )
-  let f540 = ( + )
-  let f541 = ( + )
-  let f542 = ( + )
-  let f543 = ( + )
-  let f544 = ( + )
-  let f545 = ( + )
-  let f546 = ( + )
-  let f547 = ( + )
-  let f548 = ( + )
-  let f549 = ( + )
-  let f550 = ( + )
-  let f551 = ( + )
-  let f552 = ( + )
-  let f553 = ( + )
-  let f554 = ( + )
-  let f555 = ( + )
-  let f556 = ( + )
-  let f557 = ( + )
-  let f558 = ( + )
-  let f559 = ( + )
-  let f560 = ( + )
-  let f561 = ( + )
-  let f562 = ( + )
-  let f563 = ( + )
-  let f564 = ( + )
-  let f565 = ( + )
-  let f566 = ( + )
-  let f567 = ( + )
-  let f568 = ( + )
-  let f569 = ( + )
-  let f570 = ( + )
-  let f571 = ( + )
-  let f572 = ( + )
-  let f573 = ( + )
-  let f574 = ( + )
-  let f575 = ( + )
-  let f576 = ( + )
-  let f577 = ( + )
-  let f578 = ( + )
-  let f579 = ( + )
-  let f580 = ( + )
-  let f581 = ( + )
-  let f582 = ( + )
-  let f583 = ( + )
-  let f584 = ( + )
-  let f585 = ( + )
-  let f586 = ( + )
-  let f587 = ( + )
-  let f588 = ( + )
-  let f589 = ( + )
-  let f590 = ( + )
-  let f591 = ( + )
-  let f592 = ( + )
-  let f593 = ( + )
-  let f594 = ( + )
-  let f595 = ( + )
-  let f596 = ( + )
-  let f597 = ( + )
-  let f598 = ( + )
-  let f599 = ( + )
-  let f600 = ( + )
-  let f601 = ( + )
-  let f602 = ( + )
-  let f603 = ( + )
-  let f604 = ( + )
-  let f605 = ( + )
-  let f606 = ( + )
-  let f607 = ( + )
-  let f608 = ( + )
-  let f609 = ( + )
-  let f610 = ( + )
-  let f611 = ( + )
-  let f612 = ( + )
-  let f613 = ( + )
-  let f614 = ( + )
-  let f615 = ( + )
-  let f616 = ( + )
-  let f617 = ( + )
-  let f618 = ( + )
-  let f619 = ( + )
-  let f620 = ( + )
-  let f621 = ( + )
-  let f622 = ( + )
-  let f623 = ( + )
-  let f624 = ( + )
-  let f625 = ( + )
-  let f626 = ( + )
-  let f627 = ( + )
-  let f628 = ( + )
-  let f629 = ( + )
-  let f630 = ( + )
-  let f631 = ( + )
-  let f632 = ( + )
-  let f633 = ( + )
-  let f634 = ( + )
-  let f635 = ( + )
-  let f636 = ( + )
-  let f637 = ( + )
-  let f638 = ( + )
-  let f639 = ( + )
-  let f640 = ( + )
-  let f641 = ( + )
-  let f642 = ( + )
-  let f643 = ( + )
-  let f644 = ( + )
-  let f645 = ( + )
-  let f646 = ( + )
-  let f647 = ( + )
-  let f648 = ( + )
-  let f649 = ( + )
-  let f650 = ( + )
-  let f651 = ( + )
-  let f652 = ( + )
-  let f653 = ( + )
-  let f654 = ( + )
-  let f655 = ( + )
-  let f656 = ( + )
-  let f657 = ( + )
-  let f658 = ( + )
-  let f659 = ( + )
-  let f660 = ( + )
-  let f661 = ( + )
-  let f662 = ( + )
-  let f663 = ( + )
-  let f664 = ( + )
-  let f665 = ( + )
-  let f666 = ( + )
-  let f667 = ( + )
-  let f668 = ( + )
-  let f669 = ( + )
-  let f670 = ( + )
-  let f671 = ( + )
-  let f672 = ( + )
-  let f673 = ( + )
-  let f674 = ( + )
-  let f675 = ( + )
-  let f676 = ( + )
-  let f677 = ( + )
-  let f678 = ( + )
-  let f679 = ( + )
-  let f680 = ( + )
-  let f681 = ( + )
-  let f682 = ( + )
-  let f683 = ( + )
-  let f684 = ( + )
-  let f685 = ( + )
-  let f686 = ( + )
-  let f687 = ( + )
-  let f688 = ( + )
-  let f689 = ( + )
-  let f690 = ( + )
-  let f691 = ( + )
-  let f692 = ( + )
-  let f693 = ( + )
-  let f694 = ( + )
-  let f695 = ( + )
-  let f696 = ( + )
-  let f697 = ( + )
-  let f698 = ( + )
-  let f699 = ( + )
-  let f700 = ( + )
-  let f701 = ( + )
-  let f702 = ( + )
-  let f703 = ( + )
-  let f704 = ( + )
-  let f705 = ( + )
-  let f706 = ( + )
-  let f707 = ( + )
-  let f708 = ( + )
-  let f709 = ( + )
-  let f710 = ( + )
-  let f711 = ( + )
-  let f712 = ( + )
-  let f713 = ( + )
-  let f714 = ( + )
-  let f715 = ( + )
-  let f716 = ( + )
-  let f717 = ( + )
-  let f718 = ( + )
-  let f719 = ( + )
-  let f720 = ( + )
-  let f721 = ( + )
-  let f722 = ( + )
-  let f723 = ( + )
-  let f724 = ( + )
-  let f725 = ( + )
-  let f726 = ( + )
-  let f727 = ( + )
-  let f728 = ( + )
-  let f729 = ( + )
-  let f730 = ( + )
-  let f731 = ( + )
-  let f732 = ( + )
-  let f733 = ( + )
-  let f734 = ( + )
-  let f735 = ( + )
-  let f736 = ( + )
-  let f737 = ( + )
-  let f738 = ( + )
-  let f739 = ( + )
-  let f740 = ( + )
-  let f741 = ( + )
-  let f742 = ( + )
-  let f743 = ( + )
-  let f744 = ( + )
-  let f745 = ( + )
-  let f746 = ( + )
-  let f747 = ( + )
-  let f748 = ( + )
-  let f749 = ( + )
-  let f750 = ( + )
-  let f751 = ( + )
-  let f752 = ( + )
-  let f753 = ( + )
-  let f754 = ( + )
-  let f755 = ( + )
-  let f756 = ( + )
-  let f757 = ( + )
-  let f758 = ( + )
-  let f759 = ( + )
-  let f760 = ( + )
-  let f761 = ( + )
-  let f762 = ( + )
-  let f763 = ( + )
-  let f764 = ( + )
-  let f765 = ( + )
-  let f766 = ( + )
-  let f767 = ( + )
-  let f768 = ( + )
-  let f769 = ( + )
-  let f770 = ( + )
-  let f771 = ( + )
-  let f772 = ( + )
-  let f773 = ( + )
-  let f774 = ( + )
-  let f775 = ( + )
-  let f776 = ( + )
-  let f777 = ( + )
-  let f778 = ( + )
-  let f779 = ( + )
-  let f780 = ( + )
-  let f781 = ( + )
-  let f782 = ( + )
-  let f783 = ( + )
-  let f784 = ( + )
-  let f785 = ( + )
-  let f786 = ( + )
-  let f787 = ( + )
-  let f788 = ( + )
-  let f789 = ( + )
-  let f790 = ( + )
-  let f791 = ( + )
-  let f792 = ( + )
-  let f793 = ( + )
-  let f794 = ( + )
-  let f795 = ( + )
-  let f796 = ( + )
-  let f797 = ( + )
-  let f798 = ( + )
-  let f799 = ( + )
-  let f800 = ( + )
-  let f801 = ( + )
-  let f802 = ( + )
-  let f803 = ( + )
-  let f804 = ( + )
-  let f805 = ( + )
-  let f806 = ( + )
-  let f807 = ( + )
-  let f808 = ( + )
-  let f809 = ( + )
-  let f810 = ( + )
-  let f811 = ( + )
-  let f812 = ( + )
-  let f813 = ( + )
-  let f814 = ( + )
-  let f815 = ( + )
-  let f816 = ( + )
-  let f817 = ( + )
-  let f818 = ( + )
-  let f819 = ( + )
-  let f820 = ( + )
-  let f821 = ( + )
-  let f822 = ( + )
-  let f823 = ( + )
-  let f824 = ( + )
-  let f825 = ( + )
-  let f826 = ( + )
-  let f827 = ( + )
-  let f828 = ( + )
-  let f829 = ( + )
-  let f830 = ( + )
-  let f831 = ( + )
-  let f832 = ( + )
-  let f833 = ( + )
-  let f834 = ( + )
-  let f835 = ( + )
-  let f836 = ( + )
-  let f837 = ( + )
-  let f838 = ( + )
-  let f839 = ( + )
-  let f840 = ( + )
-  let f841 = ( + )
-  let f842 = ( + )
-  let f843 = ( + )
-  let f844 = ( + )
-  let f845 = ( + )
-  let f846 = ( + )
-  let f847 = ( + )
-  let f848 = ( + )
-  let f849 = ( + )
-  let f850 = ( + )
-  let f851 = ( + )
-  let f852 = ( + )
-  let f853 = ( + )
-  let f854 = ( + )
-  let f855 = ( + )
-  let f856 = ( + )
-  let f857 = ( + )
-  let f858 = ( + )
-  let f859 = ( + )
-  let f860 = ( + )
-  let f861 = ( + )
-  let f862 = ( + )
-  let f863 = ( + )
-  let f864 = ( + )
-  let f865 = ( + )
-  let f866 = ( + )
-  let f867 = ( + )
-  let f868 = ( + )
-  let f869 = ( + )
-  let f870 = ( + )
-  let f871 = ( + )
-  let f872 = ( + )
-  let f873 = ( + )
-  let f874 = ( + )
-  let f875 = ( + )
-  let f876 = ( + )
-  let f877 = ( + )
-  let f878 = ( + )
-  let f879 = ( + )
-  let f880 = ( + )
-  let f881 = ( + )
-  let f882 = ( + )
-  let f883 = ( + )
-  let f884 = ( + )
-  let f885 = ( + )
-  let f886 = ( + )
-  let f887 = ( + )
-  let f888 = ( + )
-  let f889 = ( + )
-  let f890 = ( + )
-  let f891 = ( + )
-  let f892 = ( + )
-  let f893 = ( + )
-  let f894 = ( + )
-  let f895 = ( + )
-  let f896 = ( + )
-  let f897 = ( + )
-  let f898 = ( + )
-  let f899 = ( + )
-  let f900 = ( + )
-  let f901 = ( + )
-  let f902 = ( + )
-  let f903 = ( + )
-  let f904 = ( + )
-  let f905 = ( + )
-  let f906 = ( + )
-  let f907 = ( + )
-  let f908 = ( + )
-  let f909 = ( + )
-  let f910 = ( + )
-  let f911 = ( + )
-  let f912 = ( + )
-  let f913 = ( + )
-  let f914 = ( + )
-  let f915 = ( + )
-  let f916 = ( + )
-  let f917 = ( + )
-  let f918 = ( + )
-  let f919 = ( + )
-  let f920 = ( + )
-  let f921 = ( + )
-  let f922 = ( + )
-  let f923 = ( + )
-  let f924 = ( + )
-  let f925 = ( + )
-  let f926 = ( + )
-  let f927 = ( + )
-  let f928 = ( + )
-  let f929 = ( + )
-  let f930 = ( + )
-  let f931 = ( + )
-  let f932 = ( + )
-  let f933 = ( + )
-  let f934 = ( + )
-  let f935 = ( + )
-  let f936 = ( + )
-  let f937 = ( + )
-  let f938 = ( + )
-  let f939 = ( + )
-  let f940 = ( + )
-  let f941 = ( + )
-  let f942 = ( + )
-  let f943 = ( + )
-  let f944 = ( + )
-  let f945 = ( + )
-  let f946 = ( + )
-  let f947 = ( + )
-  let f948 = ( + )
-  let f949 = ( + )
-  let f950 = ( + )
-  let f951 = ( + )
-  let f952 = ( + )
-  let f953 = ( + )
-  let f954 = ( + )
-  let f955 = ( + )
-  let f956 = ( + )
-  let f957 = ( + )
-  let f958 = ( + )
-  let f959 = ( + )
-  let f960 = ( + )
-  let f961 = ( + )
-  let f962 = ( + )
-  let f963 = ( + )
-  let f964 = ( + )
-  let f965 = ( + )
-  let f966 = ( + )
-  let f967 = ( + )
-  let f968 = ( + )
-  let f969 = ( + )
-  let f970 = ( + )
-  let f971 = ( + )
-  let f972 = ( + )
-  let f973 = ( + )
-  let f974 = ( + )
-  let f975 = ( + )
-  let f976 = ( + )
-  let f977 = ( + )
-  let f978 = ( + )
-  let f979 = ( + )
-  let f980 = ( + )
-  let f981 = ( + )
-  let f982 = ( + )
-  let f983 = ( + )
-  let f984 = ( + )
-  let f985 = ( + )
-  let f986 = ( + )
-  let f987 = ( + )
-  let f988 = ( + )
-  let f989 = ( + )
-  let f990 = ( + )
-  let f991 = ( + )
-  let f992 = ( + )
-  let f993 = ( + )
-  let f994 = ( + )
-  let f995 = ( + )
-  let f996 = ( + )
-  let f997 = ( + )
-  let f998 = ( + )
-  let f999 = ( + )
-  let f1000 = ( + )
-end
-
-module X = Make(Make(Make(M)))
diff --git a/camlp4/test/fixtures/functor-perf2.gen.ml b/camlp4/test/fixtures/functor-perf2.gen.ml
deleted file mode 100644 (file)
index 730a1bf..0000000
+++ /dev/null
@@ -1,3029 +0,0 @@
-
-
-module type S = sig
-  type t0
-  type t1
-  type t2
-  type t3
-  type t4
-  type t5
-  type t6
-  type t7
-  type t8
-  type t9
-  type t10
-  type t11
-  type t12
-  type t13
-  type t14
-  type t15
-  type t16
-  type t17
-  type t18
-  type t19
-  type t20
-  type t21
-  type t22
-  type t23
-  type t24
-  type t25
-  type t26
-  type t27
-  type t28
-  type t29
-  type t30
-  type t31
-  type t32
-  type t33
-  type t34
-  type t35
-  type t36
-  type t37
-  type t38
-  type t39
-  type t40
-  type t41
-  type t42
-  type t43
-  type t44
-  type t45
-  type t46
-  type t47
-  type t48
-  type t49
-  type t50
-  type t51
-  type t52
-  type t53
-  type t54
-  type t55
-  type t56
-  type t57
-  type t58
-  type t59
-  type t60
-  type t61
-  type t62
-  type t63
-  type t64
-  type t65
-  type t66
-  type t67
-  type t68
-  type t69
-  type t70
-  type t71
-  type t72
-  type t73
-  type t74
-  type t75
-  type t76
-  type t77
-  type t78
-  type t79
-  type t80
-  type t81
-  type t82
-  type t83
-  type t84
-  type t85
-  type t86
-  type t87
-  type t88
-  type t89
-  type t90
-  type t91
-  type t92
-  type t93
-  type t94
-  type t95
-  type t96
-  type t97
-  type t98
-  type t99
-  type t100
-  type t101
-  type t102
-  type t103
-  type t104
-  type t105
-  type t106
-  type t107
-  type t108
-  type t109
-  type t110
-  type t111
-  type t112
-  type t113
-  type t114
-  type t115
-  type t116
-  type t117
-  type t118
-  type t119
-  type t120
-  type t121
-  type t122
-  type t123
-  type t124
-  type t125
-  type t126
-  type t127
-  type t128
-  type t129
-  type t130
-  type t131
-  type t132
-  type t133
-  type t134
-  type t135
-  type t136
-  type t137
-  type t138
-  type t139
-  type t140
-  type t141
-  type t142
-  type t143
-  type t144
-  type t145
-  type t146
-  type t147
-  type t148
-  type t149
-  type t150
-  type t151
-  type t152
-  type t153
-  type t154
-  type t155
-  type t156
-  type t157
-  type t158
-  type t159
-  type t160
-  type t161
-  type t162
-  type t163
-  type t164
-  type t165
-  type t166
-  type t167
-  type t168
-  type t169
-  type t170
-  type t171
-  type t172
-  type t173
-  type t174
-  type t175
-  type t176
-  type t177
-  type t178
-  type t179
-  type t180
-  type t181
-  type t182
-  type t183
-  type t184
-  type t185
-  type t186
-  type t187
-  type t188
-  type t189
-  type t190
-  type t191
-  type t192
-  type t193
-  type t194
-  type t195
-  type t196
-  type t197
-  type t198
-  type t199
-  type t200
-  type t201
-  type t202
-  type t203
-  type t204
-  type t205
-  type t206
-  type t207
-  type t208
-  type t209
-  type t210
-  type t211
-  type t212
-  type t213
-  type t214
-  type t215
-  type t216
-  type t217
-  type t218
-  type t219
-  type t220
-  type t221
-  type t222
-  type t223
-  type t224
-  type t225
-  type t226
-  type t227
-  type t228
-  type t229
-  type t230
-  type t231
-  type t232
-  type t233
-  type t234
-  type t235
-  type t236
-  type t237
-  type t238
-  type t239
-  type t240
-  type t241
-  type t242
-  type t243
-  type t244
-  type t245
-  type t246
-  type t247
-  type t248
-  type t249
-  type t250
-  type t251
-  type t252
-  type t253
-  type t254
-  type t255
-  type t256
-  type t257
-  type t258
-  type t259
-  type t260
-  type t261
-  type t262
-  type t263
-  type t264
-  type t265
-  type t266
-  type t267
-  type t268
-  type t269
-  type t270
-  type t271
-  type t272
-  type t273
-  type t274
-  type t275
-  type t276
-  type t277
-  type t278
-  type t279
-  type t280
-  type t281
-  type t282
-  type t283
-  type t284
-  type t285
-  type t286
-  type t287
-  type t288
-  type t289
-  type t290
-  type t291
-  type t292
-  type t293
-  type t294
-  type t295
-  type t296
-  type t297
-  type t298
-  type t299
-  type t300
-  type t301
-  type t302
-  type t303
-  type t304
-  type t305
-  type t306
-  type t307
-  type t308
-  type t309
-  type t310
-  type t311
-  type t312
-  type t313
-  type t314
-  type t315
-  type t316
-  type t317
-  type t318
-  type t319
-  type t320
-  type t321
-  type t322
-  type t323
-  type t324
-  type t325
-  type t326
-  type t327
-  type t328
-  type t329
-  type t330
-  type t331
-  type t332
-  type t333
-  type t334
-  type t335
-  type t336
-  type t337
-  type t338
-  type t339
-  type t340
-  type t341
-  type t342
-  type t343
-  type t344
-  type t345
-  type t346
-  type t347
-  type t348
-  type t349
-  type t350
-  type t351
-  type t352
-  type t353
-  type t354
-  type t355
-  type t356
-  type t357
-  type t358
-  type t359
-  type t360
-  type t361
-  type t362
-  type t363
-  type t364
-  type t365
-  type t366
-  type t367
-  type t368
-  type t369
-  type t370
-  type t371
-  type t372
-  type t373
-  type t374
-  type t375
-  type t376
-  type t377
-  type t378
-  type t379
-  type t380
-  type t381
-  type t382
-  type t383
-  type t384
-  type t385
-  type t386
-  type t387
-  type t388
-  type t389
-  type t390
-  type t391
-  type t392
-  type t393
-  type t394
-  type t395
-  type t396
-  type t397
-  type t398
-  type t399
-  type t400
-  type t401
-  type t402
-  type t403
-  type t404
-  type t405
-  type t406
-  type t407
-  type t408
-  type t409
-  type t410
-  type t411
-  type t412
-  type t413
-  type t414
-  type t415
-  type t416
-  type t417
-  type t418
-  type t419
-  type t420
-  type t421
-  type t422
-  type t423
-  type t424
-  type t425
-  type t426
-  type t427
-  type t428
-  type t429
-  type t430
-  type t431
-  type t432
-  type t433
-  type t434
-  type t435
-  type t436
-  type t437
-  type t438
-  type t439
-  type t440
-  type t441
-  type t442
-  type t443
-  type t444
-  type t445
-  type t446
-  type t447
-  type t448
-  type t449
-  type t450
-  type t451
-  type t452
-  type t453
-  type t454
-  type t455
-  type t456
-  type t457
-  type t458
-  type t459
-  type t460
-  type t461
-  type t462
-  type t463
-  type t464
-  type t465
-  type t466
-  type t467
-  type t468
-  type t469
-  type t470
-  type t471
-  type t472
-  type t473
-  type t474
-  type t475
-  type t476
-  type t477
-  type t478
-  type t479
-  type t480
-  type t481
-  type t482
-  type t483
-  type t484
-  type t485
-  type t486
-  type t487
-  type t488
-  type t489
-  type t490
-  type t491
-  type t492
-  type t493
-  type t494
-  type t495
-  type t496
-  type t497
-  type t498
-  type t499
-  type t500
-  type t501
-  type t502
-  type t503
-  type t504
-  type t505
-  type t506
-  type t507
-  type t508
-  type t509
-  type t510
-  type t511
-  type t512
-  type t513
-  type t514
-  type t515
-  type t516
-  type t517
-  type t518
-  type t519
-  type t520
-  type t521
-  type t522
-  type t523
-  type t524
-  type t525
-  type t526
-  type t527
-  type t528
-  type t529
-  type t530
-  type t531
-  type t532
-  type t533
-  type t534
-  type t535
-  type t536
-  type t537
-  type t538
-  type t539
-  type t540
-  type t541
-  type t542
-  type t543
-  type t544
-  type t545
-  type t546
-  type t547
-  type t548
-  type t549
-  type t550
-  type t551
-  type t552
-  type t553
-  type t554
-  type t555
-  type t556
-  type t557
-  type t558
-  type t559
-  type t560
-  type t561
-  type t562
-  type t563
-  type t564
-  type t565
-  type t566
-  type t567
-  type t568
-  type t569
-  type t570
-  type t571
-  type t572
-  type t573
-  type t574
-  type t575
-  type t576
-  type t577
-  type t578
-  type t579
-  type t580
-  type t581
-  type t582
-  type t583
-  type t584
-  type t585
-  type t586
-  type t587
-  type t588
-  type t589
-  type t590
-  type t591
-  type t592
-  type t593
-  type t594
-  type t595
-  type t596
-  type t597
-  type t598
-  type t599
-  type t600
-  type t601
-  type t602
-  type t603
-  type t604
-  type t605
-  type t606
-  type t607
-  type t608
-  type t609
-  type t610
-  type t611
-  type t612
-  type t613
-  type t614
-  type t615
-  type t616
-  type t617
-  type t618
-  type t619
-  type t620
-  type t621
-  type t622
-  type t623
-  type t624
-  type t625
-  type t626
-  type t627
-  type t628
-  type t629
-  type t630
-  type t631
-  type t632
-  type t633
-  type t634
-  type t635
-  type t636
-  type t637
-  type t638
-  type t639
-  type t640
-  type t641
-  type t642
-  type t643
-  type t644
-  type t645
-  type t646
-  type t647
-  type t648
-  type t649
-  type t650
-  type t651
-  type t652
-  type t653
-  type t654
-  type t655
-  type t656
-  type t657
-  type t658
-  type t659
-  type t660
-  type t661
-  type t662
-  type t663
-  type t664
-  type t665
-  type t666
-  type t667
-  type t668
-  type t669
-  type t670
-  type t671
-  type t672
-  type t673
-  type t674
-  type t675
-  type t676
-  type t677
-  type t678
-  type t679
-  type t680
-  type t681
-  type t682
-  type t683
-  type t684
-  type t685
-  type t686
-  type t687
-  type t688
-  type t689
-  type t690
-  type t691
-  type t692
-  type t693
-  type t694
-  type t695
-  type t696
-  type t697
-  type t698
-  type t699
-  type t700
-  type t701
-  type t702
-  type t703
-  type t704
-  type t705
-  type t706
-  type t707
-  type t708
-  type t709
-  type t710
-  type t711
-  type t712
-  type t713
-  type t714
-  type t715
-  type t716
-  type t717
-  type t718
-  type t719
-  type t720
-  type t721
-  type t722
-  type t723
-  type t724
-  type t725
-  type t726
-  type t727
-  type t728
-  type t729
-  type t730
-  type t731
-  type t732
-  type t733
-  type t734
-  type t735
-  type t736
-  type t737
-  type t738
-  type t739
-  type t740
-  type t741
-  type t742
-  type t743
-  type t744
-  type t745
-  type t746
-  type t747
-  type t748
-  type t749
-  type t750
-  type t751
-  type t752
-  type t753
-  type t754
-  type t755
-  type t756
-  type t757
-  type t758
-  type t759
-  type t760
-  type t761
-  type t762
-  type t763
-  type t764
-  type t765
-  type t766
-  type t767
-  type t768
-  type t769
-  type t770
-  type t771
-  type t772
-  type t773
-  type t774
-  type t775
-  type t776
-  type t777
-  type t778
-  type t779
-  type t780
-  type t781
-  type t782
-  type t783
-  type t784
-  type t785
-  type t786
-  type t787
-  type t788
-  type t789
-  type t790
-  type t791
-  type t792
-  type t793
-  type t794
-  type t795
-  type t796
-  type t797
-  type t798
-  type t799
-  type t800
-  type t801
-  type t802
-  type t803
-  type t804
-  type t805
-  type t806
-  type t807
-  type t808
-  type t809
-  type t810
-  type t811
-  type t812
-  type t813
-  type t814
-  type t815
-  type t816
-  type t817
-  type t818
-  type t819
-  type t820
-  type t821
-  type t822
-  type t823
-  type t824
-  type t825
-  type t826
-  type t827
-  type t828
-  type t829
-  type t830
-  type t831
-  type t832
-  type t833
-  type t834
-  type t835
-  type t836
-  type t837
-  type t838
-  type t839
-  type t840
-  type t841
-  type t842
-  type t843
-  type t844
-  type t845
-  type t846
-  type t847
-  type t848
-  type t849
-  type t850
-  type t851
-  type t852
-  type t853
-  type t854
-  type t855
-  type t856
-  type t857
-  type t858
-  type t859
-  type t860
-  type t861
-  type t862
-  type t863
-  type t864
-  type t865
-  type t866
-  type t867
-  type t868
-  type t869
-  type t870
-  type t871
-  type t872
-  type t873
-  type t874
-  type t875
-  type t876
-  type t877
-  type t878
-  type t879
-  type t880
-  type t881
-  type t882
-  type t883
-  type t884
-  type t885
-  type t886
-  type t887
-  type t888
-  type t889
-  type t890
-  type t891
-  type t892
-  type t893
-  type t894
-  type t895
-  type t896
-  type t897
-  type t898
-  type t899
-  type t900
-  type t901
-  type t902
-  type t903
-  type t904
-  type t905
-  type t906
-  type t907
-  type t908
-  type t909
-  type t910
-  type t911
-  type t912
-  type t913
-  type t914
-  type t915
-  type t916
-  type t917
-  type t918
-  type t919
-  type t920
-  type t921
-  type t922
-  type t923
-  type t924
-  type t925
-  type t926
-  type t927
-  type t928
-  type t929
-  type t930
-  type t931
-  type t932
-  type t933
-  type t934
-  type t935
-  type t936
-  type t937
-  type t938
-  type t939
-  type t940
-  type t941
-  type t942
-  type t943
-  type t944
-  type t945
-  type t946
-  type t947
-  type t948
-  type t949
-  type t950
-  type t951
-  type t952
-  type t953
-  type t954
-  type t955
-  type t956
-  type t957
-  type t958
-  type t959
-  type t960
-  type t961
-  type t962
-  type t963
-  type t964
-  type t965
-  type t966
-  type t967
-  type t968
-  type t969
-  type t970
-  type t971
-  type t972
-  type t973
-  type t974
-  type t975
-  type t976
-  type t977
-  type t978
-  type t979
-  type t980
-  type t981
-  type t982
-  type t983
-  type t984
-  type t985
-  type t986
-  type t987
-  type t988
-  type t989
-  type t990
-  type t991
-  type t992
-  type t993
-  type t994
-  type t995
-  type t996
-  type t997
-  type t998
-  type t999
-  type t1000
-end
-
-module Make (M : S)
-: S with type t0 = M.t0
-     and type t1 = M.t1
-     and type t2 = M.t2
-     and type t3 = M.t3
-     and type t4 = M.t4
-     and type t5 = M.t5
-     and type t6 = M.t6
-     and type t7 = M.t7
-     and type t8 = M.t8
-     and type t9 = M.t9
-     and type t10 = M.t10
-     and type t11 = M.t11
-     and type t12 = M.t12
-     and type t13 = M.t13
-     and type t14 = M.t14
-     and type t15 = M.t15
-     and type t16 = M.t16
-     and type t17 = M.t17
-     and type t18 = M.t18
-     and type t19 = M.t19
-     and type t20 = M.t20
-     and type t21 = M.t21
-     and type t22 = M.t22
-     and type t23 = M.t23
-     and type t24 = M.t24
-     and type t25 = M.t25
-     and type t26 = M.t26
-     and type t27 = M.t27
-     and type t28 = M.t28
-     and type t29 = M.t29
-     and type t30 = M.t30
-     and type t31 = M.t31
-     and type t32 = M.t32
-     and type t33 = M.t33
-     and type t34 = M.t34
-     and type t35 = M.t35
-     and type t36 = M.t36
-     and type t37 = M.t37
-     and type t38 = M.t38
-     and type t39 = M.t39
-     and type t40 = M.t40
-     and type t41 = M.t41
-     and type t42 = M.t42
-     and type t43 = M.t43
-     and type t44 = M.t44
-     and type t45 = M.t45
-     and type t46 = M.t46
-     and type t47 = M.t47
-     and type t48 = M.t48
-     and type t49 = M.t49
-     and type t50 = M.t50
-     and type t51 = M.t51
-     and type t52 = M.t52
-     and type t53 = M.t53
-     and type t54 = M.t54
-     and type t55 = M.t55
-     and type t56 = M.t56
-     and type t57 = M.t57
-     and type t58 = M.t58
-     and type t59 = M.t59
-     and type t60 = M.t60
-     and type t61 = M.t61
-     and type t62 = M.t62
-     and type t63 = M.t63
-     and type t64 = M.t64
-     and type t65 = M.t65
-     and type t66 = M.t66
-     and type t67 = M.t67
-     and type t68 = M.t68
-     and type t69 = M.t69
-     and type t70 = M.t70
-     and type t71 = M.t71
-     and type t72 = M.t72
-     and type t73 = M.t73
-     and type t74 = M.t74
-     and type t75 = M.t75
-     and type t76 = M.t76
-     and type t77 = M.t77
-     and type t78 = M.t78
-     and type t79 = M.t79
-     and type t80 = M.t80
-     and type t81 = M.t81
-     and type t82 = M.t82
-     and type t83 = M.t83
-     and type t84 = M.t84
-     and type t85 = M.t85
-     and type t86 = M.t86
-     and type t87 = M.t87
-     and type t88 = M.t88
-     and type t89 = M.t89
-     and type t90 = M.t90
-     and type t91 = M.t91
-     and type t92 = M.t92
-     and type t93 = M.t93
-     and type t94 = M.t94
-     and type t95 = M.t95
-     and type t96 = M.t96
-     and type t97 = M.t97
-     and type t98 = M.t98
-     and type t99 = M.t99
-     and type t100 = M.t100
-     and type t101 = M.t101
-     and type t102 = M.t102
-     and type t103 = M.t103
-     and type t104 = M.t104
-     and type t105 = M.t105
-     and type t106 = M.t106
-     and type t107 = M.t107
-     and type t108 = M.t108
-     and type t109 = M.t109
-     and type t110 = M.t110
-     and type t111 = M.t111
-     and type t112 = M.t112
-     and type t113 = M.t113
-     and type t114 = M.t114
-     and type t115 = M.t115
-     and type t116 = M.t116
-     and type t117 = M.t117
-     and type t118 = M.t118
-     and type t119 = M.t119
-     and type t120 = M.t120
-     and type t121 = M.t121
-     and type t122 = M.t122
-     and type t123 = M.t123
-     and type t124 = M.t124
-     and type t125 = M.t125
-     and type t126 = M.t126
-     and type t127 = M.t127
-     and type t128 = M.t128
-     and type t129 = M.t129
-     and type t130 = M.t130
-     and type t131 = M.t131
-     and type t132 = M.t132
-     and type t133 = M.t133
-     and type t134 = M.t134
-     and type t135 = M.t135
-     and type t136 = M.t136
-     and type t137 = M.t137
-     and type t138 = M.t138
-     and type t139 = M.t139
-     and type t140 = M.t140
-     and type t141 = M.t141
-     and type t142 = M.t142
-     and type t143 = M.t143
-     and type t144 = M.t144
-     and type t145 = M.t145
-     and type t146 = M.t146
-     and type t147 = M.t147
-     and type t148 = M.t148
-     and type t149 = M.t149
-     and type t150 = M.t150
-     and type t151 = M.t151
-     and type t152 = M.t152
-     and type t153 = M.t153
-     and type t154 = M.t154
-     and type t155 = M.t155
-     and type t156 = M.t156
-     and type t157 = M.t157
-     and type t158 = M.t158
-     and type t159 = M.t159
-     and type t160 = M.t160
-     and type t161 = M.t161
-     and type t162 = M.t162
-     and type t163 = M.t163
-     and type t164 = M.t164
-     and type t165 = M.t165
-     and type t166 = M.t166
-     and type t167 = M.t167
-     and type t168 = M.t168
-     and type t169 = M.t169
-     and type t170 = M.t170
-     and type t171 = M.t171
-     and type t172 = M.t172
-     and type t173 = M.t173
-     and type t174 = M.t174
-     and type t175 = M.t175
-     and type t176 = M.t176
-     and type t177 = M.t177
-     and type t178 = M.t178
-     and type t179 = M.t179
-     and type t180 = M.t180
-     and type t181 = M.t181
-     and type t182 = M.t182
-     and type t183 = M.t183
-     and type t184 = M.t184
-     and type t185 = M.t185
-     and type t186 = M.t186
-     and type t187 = M.t187
-     and type t188 = M.t188
-     and type t189 = M.t189
-     and type t190 = M.t190
-     and type t191 = M.t191
-     and type t192 = M.t192
-     and type t193 = M.t193
-     and type t194 = M.t194
-     and type t195 = M.t195
-     and type t196 = M.t196
-     and type t197 = M.t197
-     and type t198 = M.t198
-     and type t199 = M.t199
-     and type t200 = M.t200
-     and type t201 = M.t201
-     and type t202 = M.t202
-     and type t203 = M.t203
-     and type t204 = M.t204
-     and type t205 = M.t205
-     and type t206 = M.t206
-     and type t207 = M.t207
-     and type t208 = M.t208
-     and type t209 = M.t209
-     and type t210 = M.t210
-     and type t211 = M.t211
-     and type t212 = M.t212
-     and type t213 = M.t213
-     and type t214 = M.t214
-     and type t215 = M.t215
-     and type t216 = M.t216
-     and type t217 = M.t217
-     and type t218 = M.t218
-     and type t219 = M.t219
-     and type t220 = M.t220
-     and type t221 = M.t221
-     and type t222 = M.t222
-     and type t223 = M.t223
-     and type t224 = M.t224
-     and type t225 = M.t225
-     and type t226 = M.t226
-     and type t227 = M.t227
-     and type t228 = M.t228
-     and type t229 = M.t229
-     and type t230 = M.t230
-     and type t231 = M.t231
-     and type t232 = M.t232
-     and type t233 = M.t233
-     and type t234 = M.t234
-     and type t235 = M.t235
-     and type t236 = M.t236
-     and type t237 = M.t237
-     and type t238 = M.t238
-     and type t239 = M.t239
-     and type t240 = M.t240
-     and type t241 = M.t241
-     and type t242 = M.t242
-     and type t243 = M.t243
-     and type t244 = M.t244
-     and type t245 = M.t245
-     and type t246 = M.t246
-     and type t247 = M.t247
-     and type t248 = M.t248
-     and type t249 = M.t249
-     and type t250 = M.t250
-     and type t251 = M.t251
-     and type t252 = M.t252
-     and type t253 = M.t253
-     and type t254 = M.t254
-     and type t255 = M.t255
-     and type t256 = M.t256
-     and type t257 = M.t257
-     and type t258 = M.t258
-     and type t259 = M.t259
-     and type t260 = M.t260
-     and type t261 = M.t261
-     and type t262 = M.t262
-     and type t263 = M.t263
-     and type t264 = M.t264
-     and type t265 = M.t265
-     and type t266 = M.t266
-     and type t267 = M.t267
-     and type t268 = M.t268
-     and type t269 = M.t269
-     and type t270 = M.t270
-     and type t271 = M.t271
-     and type t272 = M.t272
-     and type t273 = M.t273
-     and type t274 = M.t274
-     and type t275 = M.t275
-     and type t276 = M.t276
-     and type t277 = M.t277
-     and type t278 = M.t278
-     and type t279 = M.t279
-     and type t280 = M.t280
-     and type t281 = M.t281
-     and type t282 = M.t282
-     and type t283 = M.t283
-     and type t284 = M.t284
-     and type t285 = M.t285
-     and type t286 = M.t286
-     and type t287 = M.t287
-     and type t288 = M.t288
-     and type t289 = M.t289
-     and type t290 = M.t290
-     and type t291 = M.t291
-     and type t292 = M.t292
-     and type t293 = M.t293
-     and type t294 = M.t294
-     and type t295 = M.t295
-     and type t296 = M.t296
-     and type t297 = M.t297
-     and type t298 = M.t298
-     and type t299 = M.t299
-     and type t300 = M.t300
-     and type t301 = M.t301
-     and type t302 = M.t302
-     and type t303 = M.t303
-     and type t304 = M.t304
-     and type t305 = M.t305
-     and type t306 = M.t306
-     and type t307 = M.t307
-     and type t308 = M.t308
-     and type t309 = M.t309
-     and type t310 = M.t310
-     and type t311 = M.t311
-     and type t312 = M.t312
-     and type t313 = M.t313
-     and type t314 = M.t314
-     and type t315 = M.t315
-     and type t316 = M.t316
-     and type t317 = M.t317
-     and type t318 = M.t318
-     and type t319 = M.t319
-     and type t320 = M.t320
-     and type t321 = M.t321
-     and type t322 = M.t322
-     and type t323 = M.t323
-     and type t324 = M.t324
-     and type t325 = M.t325
-     and type t326 = M.t326
-     and type t327 = M.t327
-     and type t328 = M.t328
-     and type t329 = M.t329
-     and type t330 = M.t330
-     and type t331 = M.t331
-     and type t332 = M.t332
-     and type t333 = M.t333
-     and type t334 = M.t334
-     and type t335 = M.t335
-     and type t336 = M.t336
-     and type t337 = M.t337
-     and type t338 = M.t338
-     and type t339 = M.t339
-     and type t340 = M.t340
-     and type t341 = M.t341
-     and type t342 = M.t342
-     and type t343 = M.t343
-     and type t344 = M.t344
-     and type t345 = M.t345
-     and type t346 = M.t346
-     and type t347 = M.t347
-     and type t348 = M.t348
-     and type t349 = M.t349
-     and type t350 = M.t350
-     and type t351 = M.t351
-     and type t352 = M.t352
-     and type t353 = M.t353
-     and type t354 = M.t354
-     and type t355 = M.t355
-     and type t356 = M.t356
-     and type t357 = M.t357
-     and type t358 = M.t358
-     and type t359 = M.t359
-     and type t360 = M.t360
-     and type t361 = M.t361
-     and type t362 = M.t362
-     and type t363 = M.t363
-     and type t364 = M.t364
-     and type t365 = M.t365
-     and type t366 = M.t366
-     and type t367 = M.t367
-     and type t368 = M.t368
-     and type t369 = M.t369
-     and type t370 = M.t370
-     and type t371 = M.t371
-     and type t372 = M.t372
-     and type t373 = M.t373
-     and type t374 = M.t374
-     and type t375 = M.t375
-     and type t376 = M.t376
-     and type t377 = M.t377
-     and type t378 = M.t378
-     and type t379 = M.t379
-     and type t380 = M.t380
-     and type t381 = M.t381
-     and type t382 = M.t382
-     and type t383 = M.t383
-     and type t384 = M.t384
-     and type t385 = M.t385
-     and type t386 = M.t386
-     and type t387 = M.t387
-     and type t388 = M.t388
-     and type t389 = M.t389
-     and type t390 = M.t390
-     and type t391 = M.t391
-     and type t392 = M.t392
-     and type t393 = M.t393
-     and type t394 = M.t394
-     and type t395 = M.t395
-     and type t396 = M.t396
-     and type t397 = M.t397
-     and type t398 = M.t398
-     and type t399 = M.t399
-     and type t400 = M.t400
-     and type t401 = M.t401
-     and type t402 = M.t402
-     and type t403 = M.t403
-     and type t404 = M.t404
-     and type t405 = M.t405
-     and type t406 = M.t406
-     and type t407 = M.t407
-     and type t408 = M.t408
-     and type t409 = M.t409
-     and type t410 = M.t410
-     and type t411 = M.t411
-     and type t412 = M.t412
-     and type t413 = M.t413
-     and type t414 = M.t414
-     and type t415 = M.t415
-     and type t416 = M.t416
-     and type t417 = M.t417
-     and type t418 = M.t418
-     and type t419 = M.t419
-     and type t420 = M.t420
-     and type t421 = M.t421
-     and type t422 = M.t422
-     and type t423 = M.t423
-     and type t424 = M.t424
-     and type t425 = M.t425
-     and type t426 = M.t426
-     and type t427 = M.t427
-     and type t428 = M.t428
-     and type t429 = M.t429
-     and type t430 = M.t430
-     and type t431 = M.t431
-     and type t432 = M.t432
-     and type t433 = M.t433
-     and type t434 = M.t434
-     and type t435 = M.t435
-     and type t436 = M.t436
-     and type t437 = M.t437
-     and type t438 = M.t438
-     and type t439 = M.t439
-     and type t440 = M.t440
-     and type t441 = M.t441
-     and type t442 = M.t442
-     and type t443 = M.t443
-     and type t444 = M.t444
-     and type t445 = M.t445
-     and type t446 = M.t446
-     and type t447 = M.t447
-     and type t448 = M.t448
-     and type t449 = M.t449
-     and type t450 = M.t450
-     and type t451 = M.t451
-     and type t452 = M.t452
-     and type t453 = M.t453
-     and type t454 = M.t454
-     and type t455 = M.t455
-     and type t456 = M.t456
-     and type t457 = M.t457
-     and type t458 = M.t458
-     and type t459 = M.t459
-     and type t460 = M.t460
-     and type t461 = M.t461
-     and type t462 = M.t462
-     and type t463 = M.t463
-     and type t464 = M.t464
-     and type t465 = M.t465
-     and type t466 = M.t466
-     and type t467 = M.t467
-     and type t468 = M.t468
-     and type t469 = M.t469
-     and type t470 = M.t470
-     and type t471 = M.t471
-     and type t472 = M.t472
-     and type t473 = M.t473
-     and type t474 = M.t474
-     and type t475 = M.t475
-     and type t476 = M.t476
-     and type t477 = M.t477
-     and type t478 = M.t478
-     and type t479 = M.t479
-     and type t480 = M.t480
-     and type t481 = M.t481
-     and type t482 = M.t482
-     and type t483 = M.t483
-     and type t484 = M.t484
-     and type t485 = M.t485
-     and type t486 = M.t486
-     and type t487 = M.t487
-     and type t488 = M.t488
-     and type t489 = M.t489
-     and type t490 = M.t490
-     and type t491 = M.t491
-     and type t492 = M.t492
-     and type t493 = M.t493
-     and type t494 = M.t494
-     and type t495 = M.t495
-     and type t496 = M.t496
-     and type t497 = M.t497
-     and type t498 = M.t498
-     and type t499 = M.t499
-     and type t500 = M.t500
-     and type t501 = M.t501
-     and type t502 = M.t502
-     and type t503 = M.t503
-     and type t504 = M.t504
-     and type t505 = M.t505
-     and type t506 = M.t506
-     and type t507 = M.t507
-     and type t508 = M.t508
-     and type t509 = M.t509
-     and type t510 = M.t510
-     and type t511 = M.t511
-     and type t512 = M.t512
-     and type t513 = M.t513
-     and type t514 = M.t514
-     and type t515 = M.t515
-     and type t516 = M.t516
-     and type t517 = M.t517
-     and type t518 = M.t518
-     and type t519 = M.t519
-     and type t520 = M.t520
-     and type t521 = M.t521
-     and type t522 = M.t522
-     and type t523 = M.t523
-     and type t524 = M.t524
-     and type t525 = M.t525
-     and type t526 = M.t526
-     and type t527 = M.t527
-     and type t528 = M.t528
-     and type t529 = M.t529
-     and type t530 = M.t530
-     and type t531 = M.t531
-     and type t532 = M.t532
-     and type t533 = M.t533
-     and type t534 = M.t534
-     and type t535 = M.t535
-     and type t536 = M.t536
-     and type t537 = M.t537
-     and type t538 = M.t538
-     and type t539 = M.t539
-     and type t540 = M.t540
-     and type t541 = M.t541
-     and type t542 = M.t542
-     and type t543 = M.t543
-     and type t544 = M.t544
-     and type t545 = M.t545
-     and type t546 = M.t546
-     and type t547 = M.t547
-     and type t548 = M.t548
-     and type t549 = M.t549
-     and type t550 = M.t550
-     and type t551 = M.t551
-     and type t552 = M.t552
-     and type t553 = M.t553
-     and type t554 = M.t554
-     and type t555 = M.t555
-     and type t556 = M.t556
-     and type t557 = M.t557
-     and type t558 = M.t558
-     and type t559 = M.t559
-     and type t560 = M.t560
-     and type t561 = M.t561
-     and type t562 = M.t562
-     and type t563 = M.t563
-     and type t564 = M.t564
-     and type t565 = M.t565
-     and type t566 = M.t566
-     and type t567 = M.t567
-     and type t568 = M.t568
-     and type t569 = M.t569
-     and type t570 = M.t570
-     and type t571 = M.t571
-     and type t572 = M.t572
-     and type t573 = M.t573
-     and type t574 = M.t574
-     and type t575 = M.t575
-     and type t576 = M.t576
-     and type t577 = M.t577
-     and type t578 = M.t578
-     and type t579 = M.t579
-     and type t580 = M.t580
-     and type t581 = M.t581
-     and type t582 = M.t582
-     and type t583 = M.t583
-     and type t584 = M.t584
-     and type t585 = M.t585
-     and type t586 = M.t586
-     and type t587 = M.t587
-     and type t588 = M.t588
-     and type t589 = M.t589
-     and type t590 = M.t590
-     and type t591 = M.t591
-     and type t592 = M.t592
-     and type t593 = M.t593
-     and type t594 = M.t594
-     and type t595 = M.t595
-     and type t596 = M.t596
-     and type t597 = M.t597
-     and type t598 = M.t598
-     and type t599 = M.t599
-     and type t600 = M.t600
-     and type t601 = M.t601
-     and type t602 = M.t602
-     and type t603 = M.t603
-     and type t604 = M.t604
-     and type t605 = M.t605
-     and type t606 = M.t606
-     and type t607 = M.t607
-     and type t608 = M.t608
-     and type t609 = M.t609
-     and type t610 = M.t610
-     and type t611 = M.t611
-     and type t612 = M.t612
-     and type t613 = M.t613
-     and type t614 = M.t614
-     and type t615 = M.t615
-     and type t616 = M.t616
-     and type t617 = M.t617
-     and type t618 = M.t618
-     and type t619 = M.t619
-     and type t620 = M.t620
-     and type t621 = M.t621
-     and type t622 = M.t622
-     and type t623 = M.t623
-     and type t624 = M.t624
-     and type t625 = M.t625
-     and type t626 = M.t626
-     and type t627 = M.t627
-     and type t628 = M.t628
-     and type t629 = M.t629
-     and type t630 = M.t630
-     and type t631 = M.t631
-     and type t632 = M.t632
-     and type t633 = M.t633
-     and type t634 = M.t634
-     and type t635 = M.t635
-     and type t636 = M.t636
-     and type t637 = M.t637
-     and type t638 = M.t638
-     and type t639 = M.t639
-     and type t640 = M.t640
-     and type t641 = M.t641
-     and type t642 = M.t642
-     and type t643 = M.t643
-     and type t644 = M.t644
-     and type t645 = M.t645
-     and type t646 = M.t646
-     and type t647 = M.t647
-     and type t648 = M.t648
-     and type t649 = M.t649
-     and type t650 = M.t650
-     and type t651 = M.t651
-     and type t652 = M.t652
-     and type t653 = M.t653
-     and type t654 = M.t654
-     and type t655 = M.t655
-     and type t656 = M.t656
-     and type t657 = M.t657
-     and type t658 = M.t658
-     and type t659 = M.t659
-     and type t660 = M.t660
-     and type t661 = M.t661
-     and type t662 = M.t662
-     and type t663 = M.t663
-     and type t664 = M.t664
-     and type t665 = M.t665
-     and type t666 = M.t666
-     and type t667 = M.t667
-     and type t668 = M.t668
-     and type t669 = M.t669
-     and type t670 = M.t670
-     and type t671 = M.t671
-     and type t672 = M.t672
-     and type t673 = M.t673
-     and type t674 = M.t674
-     and type t675 = M.t675
-     and type t676 = M.t676
-     and type t677 = M.t677
-     and type t678 = M.t678
-     and type t679 = M.t679
-     and type t680 = M.t680
-     and type t681 = M.t681
-     and type t682 = M.t682
-     and type t683 = M.t683
-     and type t684 = M.t684
-     and type t685 = M.t685
-     and type t686 = M.t686
-     and type t687 = M.t687
-     and type t688 = M.t688
-     and type t689 = M.t689
-     and type t690 = M.t690
-     and type t691 = M.t691
-     and type t692 = M.t692
-     and type t693 = M.t693
-     and type t694 = M.t694
-     and type t695 = M.t695
-     and type t696 = M.t696
-     and type t697 = M.t697
-     and type t698 = M.t698
-     and type t699 = M.t699
-     and type t700 = M.t700
-     and type t701 = M.t701
-     and type t702 = M.t702
-     and type t703 = M.t703
-     and type t704 = M.t704
-     and type t705 = M.t705
-     and type t706 = M.t706
-     and type t707 = M.t707
-     and type t708 = M.t708
-     and type t709 = M.t709
-     and type t710 = M.t710
-     and type t711 = M.t711
-     and type t712 = M.t712
-     and type t713 = M.t713
-     and type t714 = M.t714
-     and type t715 = M.t715
-     and type t716 = M.t716
-     and type t717 = M.t717
-     and type t718 = M.t718
-     and type t719 = M.t719
-     and type t720 = M.t720
-     and type t721 = M.t721
-     and type t722 = M.t722
-     and type t723 = M.t723
-     and type t724 = M.t724
-     and type t725 = M.t725
-     and type t726 = M.t726
-     and type t727 = M.t727
-     and type t728 = M.t728
-     and type t729 = M.t729
-     and type t730 = M.t730
-     and type t731 = M.t731
-     and type t732 = M.t732
-     and type t733 = M.t733
-     and type t734 = M.t734
-     and type t735 = M.t735
-     and type t736 = M.t736
-     and type t737 = M.t737
-     and type t738 = M.t738
-     and type t739 = M.t739
-     and type t740 = M.t740
-     and type t741 = M.t741
-     and type t742 = M.t742
-     and type t743 = M.t743
-     and type t744 = M.t744
-     and type t745 = M.t745
-     and type t746 = M.t746
-     and type t747 = M.t747
-     and type t748 = M.t748
-     and type t749 = M.t749
-     and type t750 = M.t750
-     and type t751 = M.t751
-     and type t752 = M.t752
-     and type t753 = M.t753
-     and type t754 = M.t754
-     and type t755 = M.t755
-     and type t756 = M.t756
-     and type t757 = M.t757
-     and type t758 = M.t758
-     and type t759 = M.t759
-     and type t760 = M.t760
-     and type t761 = M.t761
-     and type t762 = M.t762
-     and type t763 = M.t763
-     and type t764 = M.t764
-     and type t765 = M.t765
-     and type t766 = M.t766
-     and type t767 = M.t767
-     and type t768 = M.t768
-     and type t769 = M.t769
-     and type t770 = M.t770
-     and type t771 = M.t771
-     and type t772 = M.t772
-     and type t773 = M.t773
-     and type t774 = M.t774
-     and type t775 = M.t775
-     and type t776 = M.t776
-     and type t777 = M.t777
-     and type t778 = M.t778
-     and type t779 = M.t779
-     and type t780 = M.t780
-     and type t781 = M.t781
-     and type t782 = M.t782
-     and type t783 = M.t783
-     and type t784 = M.t784
-     and type t785 = M.t785
-     and type t786 = M.t786
-     and type t787 = M.t787
-     and type t788 = M.t788
-     and type t789 = M.t789
-     and type t790 = M.t790
-     and type t791 = M.t791
-     and type t792 = M.t792
-     and type t793 = M.t793
-     and type t794 = M.t794
-     and type t795 = M.t795
-     and type t796 = M.t796
-     and type t797 = M.t797
-     and type t798 = M.t798
-     and type t799 = M.t799
-     and type t800 = M.t800
-     and type t801 = M.t801
-     and type t802 = M.t802
-     and type t803 = M.t803
-     and type t804 = M.t804
-     and type t805 = M.t805
-     and type t806 = M.t806
-     and type t807 = M.t807
-     and type t808 = M.t808
-     and type t809 = M.t809
-     and type t810 = M.t810
-     and type t811 = M.t811
-     and type t812 = M.t812
-     and type t813 = M.t813
-     and type t814 = M.t814
-     and type t815 = M.t815
-     and type t816 = M.t816
-     and type t817 = M.t817
-     and type t818 = M.t818
-     and type t819 = M.t819
-     and type t820 = M.t820
-     and type t821 = M.t821
-     and type t822 = M.t822
-     and type t823 = M.t823
-     and type t824 = M.t824
-     and type t825 = M.t825
-     and type t826 = M.t826
-     and type t827 = M.t827
-     and type t828 = M.t828
-     and type t829 = M.t829
-     and type t830 = M.t830
-     and type t831 = M.t831
-     and type t832 = M.t832
-     and type t833 = M.t833
-     and type t834 = M.t834
-     and type t835 = M.t835
-     and type t836 = M.t836
-     and type t837 = M.t837
-     and type t838 = M.t838
-     and type t839 = M.t839
-     and type t840 = M.t840
-     and type t841 = M.t841
-     and type t842 = M.t842
-     and type t843 = M.t843
-     and type t844 = M.t844
-     and type t845 = M.t845
-     and type t846 = M.t846
-     and type t847 = M.t847
-     and type t848 = M.t848
-     and type t849 = M.t849
-     and type t850 = M.t850
-     and type t851 = M.t851
-     and type t852 = M.t852
-     and type t853 = M.t853
-     and type t854 = M.t854
-     and type t855 = M.t855
-     and type t856 = M.t856
-     and type t857 = M.t857
-     and type t858 = M.t858
-     and type t859 = M.t859
-     and type t860 = M.t860
-     and type t861 = M.t861
-     and type t862 = M.t862
-     and type t863 = M.t863
-     and type t864 = M.t864
-     and type t865 = M.t865
-     and type t866 = M.t866
-     and type t867 = M.t867
-     and type t868 = M.t868
-     and type t869 = M.t869
-     and type t870 = M.t870
-     and type t871 = M.t871
-     and type t872 = M.t872
-     and type t873 = M.t873
-     and type t874 = M.t874
-     and type t875 = M.t875
-     and type t876 = M.t876
-     and type t877 = M.t877
-     and type t878 = M.t878
-     and type t879 = M.t879
-     and type t880 = M.t880
-     and type t881 = M.t881
-     and type t882 = M.t882
-     and type t883 = M.t883
-     and type t884 = M.t884
-     and type t885 = M.t885
-     and type t886 = M.t886
-     and type t887 = M.t887
-     and type t888 = M.t888
-     and type t889 = M.t889
-     and type t890 = M.t890
-     and type t891 = M.t891
-     and type t892 = M.t892
-     and type t893 = M.t893
-     and type t894 = M.t894
-     and type t895 = M.t895
-     and type t896 = M.t896
-     and type t897 = M.t897
-     and type t898 = M.t898
-     and type t899 = M.t899
-     and type t900 = M.t900
-     and type t901 = M.t901
-     and type t902 = M.t902
-     and type t903 = M.t903
-     and type t904 = M.t904
-     and type t905 = M.t905
-     and type t906 = M.t906
-     and type t907 = M.t907
-     and type t908 = M.t908
-     and type t909 = M.t909
-     and type t910 = M.t910
-     and type t911 = M.t911
-     and type t912 = M.t912
-     and type t913 = M.t913
-     and type t914 = M.t914
-     and type t915 = M.t915
-     and type t916 = M.t916
-     and type t917 = M.t917
-     and type t918 = M.t918
-     and type t919 = M.t919
-     and type t920 = M.t920
-     and type t921 = M.t921
-     and type t922 = M.t922
-     and type t923 = M.t923
-     and type t924 = M.t924
-     and type t925 = M.t925
-     and type t926 = M.t926
-     and type t927 = M.t927
-     and type t928 = M.t928
-     and type t929 = M.t929
-     and type t930 = M.t930
-     and type t931 = M.t931
-     and type t932 = M.t932
-     and type t933 = M.t933
-     and type t934 = M.t934
-     and type t935 = M.t935
-     and type t936 = M.t936
-     and type t937 = M.t937
-     and type t938 = M.t938
-     and type t939 = M.t939
-     and type t940 = M.t940
-     and type t941 = M.t941
-     and type t942 = M.t942
-     and type t943 = M.t943
-     and type t944 = M.t944
-     and type t945 = M.t945
-     and type t946 = M.t946
-     and type t947 = M.t947
-     and type t948 = M.t948
-     and type t949 = M.t949
-     and type t950 = M.t950
-     and type t951 = M.t951
-     and type t952 = M.t952
-     and type t953 = M.t953
-     and type t954 = M.t954
-     and type t955 = M.t955
-     and type t956 = M.t956
-     and type t957 = M.t957
-     and type t958 = M.t958
-     and type t959 = M.t959
-     and type t960 = M.t960
-     and type t961 = M.t961
-     and type t962 = M.t962
-     and type t963 = M.t963
-     and type t964 = M.t964
-     and type t965 = M.t965
-     and type t966 = M.t966
-     and type t967 = M.t967
-     and type t968 = M.t968
-     and type t969 = M.t969
-     and type t970 = M.t970
-     and type t971 = M.t971
-     and type t972 = M.t972
-     and type t973 = M.t973
-     and type t974 = M.t974
-     and type t975 = M.t975
-     and type t976 = M.t976
-     and type t977 = M.t977
-     and type t978 = M.t978
-     and type t979 = M.t979
-     and type t980 = M.t980
-     and type t981 = M.t981
-     and type t982 = M.t982
-     and type t983 = M.t983
-     and type t984 = M.t984
-     and type t985 = M.t985
-     and type t986 = M.t986
-     and type t987 = M.t987
-     and type t988 = M.t988
-     and type t989 = M.t989
-     and type t990 = M.t990
-     and type t991 = M.t991
-     and type t992 = M.t992
-     and type t993 = M.t993
-     and type t994 = M.t994
-     and type t995 = M.t995
-     and type t996 = M.t996
-     and type t997 = M.t997
-     and type t998 = M.t998
-     and type t999 = M.t999
-     and type t1000 = M.t1000
-= struct
-  include M
-end
-
-module M = struct
-  type t0 = int -> int -> int
-  type t1 = int -> int -> int
-  type t2 = int -> int -> int
-  type t3 = int -> int -> int
-  type t4 = int -> int -> int
-  type t5 = int -> int -> int
-  type t6 = int -> int -> int
-  type t7 = int -> int -> int
-  type t8 = int -> int -> int
-  type t9 = int -> int -> int
-  type t10 = int -> int -> int
-  type t11 = int -> int -> int
-  type t12 = int -> int -> int
-  type t13 = int -> int -> int
-  type t14 = int -> int -> int
-  type t15 = int -> int -> int
-  type t16 = int -> int -> int
-  type t17 = int -> int -> int
-  type t18 = int -> int -> int
-  type t19 = int -> int -> int
-  type t20 = int -> int -> int
-  type t21 = int -> int -> int
-  type t22 = int -> int -> int
-  type t23 = int -> int -> int
-  type t24 = int -> int -> int
-  type t25 = int -> int -> int
-  type t26 = int -> int -> int
-  type t27 = int -> int -> int
-  type t28 = int -> int -> int
-  type t29 = int -> int -> int
-  type t30 = int -> int -> int
-  type t31 = int -> int -> int
-  type t32 = int -> int -> int
-  type t33 = int -> int -> int
-  type t34 = int -> int -> int
-  type t35 = int -> int -> int
-  type t36 = int -> int -> int
-  type t37 = int -> int -> int
-  type t38 = int -> int -> int
-  type t39 = int -> int -> int
-  type t40 = int -> int -> int
-  type t41 = int -> int -> int
-  type t42 = int -> int -> int
-  type t43 = int -> int -> int
-  type t44 = int -> int -> int
-  type t45 = int -> int -> int
-  type t46 = int -> int -> int
-  type t47 = int -> int -> int
-  type t48 = int -> int -> int
-  type t49 = int -> int -> int
-  type t50 = int -> int -> int
-  type t51 = int -> int -> int
-  type t52 = int -> int -> int
-  type t53 = int -> int -> int
-  type t54 = int -> int -> int
-  type t55 = int -> int -> int
-  type t56 = int -> int -> int
-  type t57 = int -> int -> int
-  type t58 = int -> int -> int
-  type t59 = int -> int -> int
-  type t60 = int -> int -> int
-  type t61 = int -> int -> int
-  type t62 = int -> int -> int
-  type t63 = int -> int -> int
-  type t64 = int -> int -> int
-  type t65 = int -> int -> int
-  type t66 = int -> int -> int
-  type t67 = int -> int -> int
-  type t68 = int -> int -> int
-  type t69 = int -> int -> int
-  type t70 = int -> int -> int
-  type t71 = int -> int -> int
-  type t72 = int -> int -> int
-  type t73 = int -> int -> int
-  type t74 = int -> int -> int
-  type t75 = int -> int -> int
-  type t76 = int -> int -> int
-  type t77 = int -> int -> int
-  type t78 = int -> int -> int
-  type t79 = int -> int -> int
-  type t80 = int -> int -> int
-  type t81 = int -> int -> int
-  type t82 = int -> int -> int
-  type t83 = int -> int -> int
-  type t84 = int -> int -> int
-  type t85 = int -> int -> int
-  type t86 = int -> int -> int
-  type t87 = int -> int -> int
-  type t88 = int -> int -> int
-  type t89 = int -> int -> int
-  type t90 = int -> int -> int
-  type t91 = int -> int -> int
-  type t92 = int -> int -> int
-  type t93 = int -> int -> int
-  type t94 = int -> int -> int
-  type t95 = int -> int -> int
-  type t96 = int -> int -> int
-  type t97 = int -> int -> int
-  type t98 = int -> int -> int
-  type t99 = int -> int -> int
-  type t100 = int -> int -> int
-  type t101 = int -> int -> int
-  type t102 = int -> int -> int
-  type t103 = int -> int -> int
-  type t104 = int -> int -> int
-  type t105 = int -> int -> int
-  type t106 = int -> int -> int
-  type t107 = int -> int -> int
-  type t108 = int -> int -> int
-  type t109 = int -> int -> int
-  type t110 = int -> int -> int
-  type t111 = int -> int -> int
-  type t112 = int -> int -> int
-  type t113 = int -> int -> int
-  type t114 = int -> int -> int
-  type t115 = int -> int -> int
-  type t116 = int -> int -> int
-  type t117 = int -> int -> int
-  type t118 = int -> int -> int
-  type t119 = int -> int -> int
-  type t120 = int -> int -> int
-  type t121 = int -> int -> int
-  type t122 = int -> int -> int
-  type t123 = int -> int -> int
-  type t124 = int -> int -> int
-  type t125 = int -> int -> int
-  type t126 = int -> int -> int
-  type t127 = int -> int -> int
-  type t128 = int -> int -> int
-  type t129 = int -> int -> int
-  type t130 = int -> int -> int
-  type t131 = int -> int -> int
-  type t132 = int -> int -> int
-  type t133 = int -> int -> int
-  type t134 = int -> int -> int
-  type t135 = int -> int -> int
-  type t136 = int -> int -> int
-  type t137 = int -> int -> int
-  type t138 = int -> int -> int
-  type t139 = int -> int -> int
-  type t140 = int -> int -> int
-  type t141 = int -> int -> int
-  type t142 = int -> int -> int
-  type t143 = int -> int -> int
-  type t144 = int -> int -> int
-  type t145 = int -> int -> int
-  type t146 = int -> int -> int
-  type t147 = int -> int -> int
-  type t148 = int -> int -> int
-  type t149 = int -> int -> int
-  type t150 = int -> int -> int
-  type t151 = int -> int -> int
-  type t152 = int -> int -> int
-  type t153 = int -> int -> int
-  type t154 = int -> int -> int
-  type t155 = int -> int -> int
-  type t156 = int -> int -> int
-  type t157 = int -> int -> int
-  type t158 = int -> int -> int
-  type t159 = int -> int -> int
-  type t160 = int -> int -> int
-  type t161 = int -> int -> int
-  type t162 = int -> int -> int
-  type t163 = int -> int -> int
-  type t164 = int -> int -> int
-  type t165 = int -> int -> int
-  type t166 = int -> int -> int
-  type t167 = int -> int -> int
-  type t168 = int -> int -> int
-  type t169 = int -> int -> int
-  type t170 = int -> int -> int
-  type t171 = int -> int -> int
-  type t172 = int -> int -> int
-  type t173 = int -> int -> int
-  type t174 = int -> int -> int
-  type t175 = int -> int -> int
-  type t176 = int -> int -> int
-  type t177 = int -> int -> int
-  type t178 = int -> int -> int
-  type t179 = int -> int -> int
-  type t180 = int -> int -> int
-  type t181 = int -> int -> int
-  type t182 = int -> int -> int
-  type t183 = int -> int -> int
-  type t184 = int -> int -> int
-  type t185 = int -> int -> int
-  type t186 = int -> int -> int
-  type t187 = int -> int -> int
-  type t188 = int -> int -> int
-  type t189 = int -> int -> int
-  type t190 = int -> int -> int
-  type t191 = int -> int -> int
-  type t192 = int -> int -> int
-  type t193 = int -> int -> int
-  type t194 = int -> int -> int
-  type t195 = int -> int -> int
-  type t196 = int -> int -> int
-  type t197 = int -> int -> int
-  type t198 = int -> int -> int
-  type t199 = int -> int -> int
-  type t200 = int -> int -> int
-  type t201 = int -> int -> int
-  type t202 = int -> int -> int
-  type t203 = int -> int -> int
-  type t204 = int -> int -> int
-  type t205 = int -> int -> int
-  type t206 = int -> int -> int
-  type t207 = int -> int -> int
-  type t208 = int -> int -> int
-  type t209 = int -> int -> int
-  type t210 = int -> int -> int
-  type t211 = int -> int -> int
-  type t212 = int -> int -> int
-  type t213 = int -> int -> int
-  type t214 = int -> int -> int
-  type t215 = int -> int -> int
-  type t216 = int -> int -> int
-  type t217 = int -> int -> int
-  type t218 = int -> int -> int
-  type t219 = int -> int -> int
-  type t220 = int -> int -> int
-  type t221 = int -> int -> int
-  type t222 = int -> int -> int
-  type t223 = int -> int -> int
-  type t224 = int -> int -> int
-  type t225 = int -> int -> int
-  type t226 = int -> int -> int
-  type t227 = int -> int -> int
-  type t228 = int -> int -> int
-  type t229 = int -> int -> int
-  type t230 = int -> int -> int
-  type t231 = int -> int -> int
-  type t232 = int -> int -> int
-  type t233 = int -> int -> int
-  type t234 = int -> int -> int
-  type t235 = int -> int -> int
-  type t236 = int -> int -> int
-  type t237 = int -> int -> int
-  type t238 = int -> int -> int
-  type t239 = int -> int -> int
-  type t240 = int -> int -> int
-  type t241 = int -> int -> int
-  type t242 = int -> int -> int
-  type t243 = int -> int -> int
-  type t244 = int -> int -> int
-  type t245 = int -> int -> int
-  type t246 = int -> int -> int
-  type t247 = int -> int -> int
-  type t248 = int -> int -> int
-  type t249 = int -> int -> int
-  type t250 = int -> int -> int
-  type t251 = int -> int -> int
-  type t252 = int -> int -> int
-  type t253 = int -> int -> int
-  type t254 = int -> int -> int
-  type t255 = int -> int -> int
-  type t256 = int -> int -> int
-  type t257 = int -> int -> int
-  type t258 = int -> int -> int
-  type t259 = int -> int -> int
-  type t260 = int -> int -> int
-  type t261 = int -> int -> int
-  type t262 = int -> int -> int
-  type t263 = int -> int -> int
-  type t264 = int -> int -> int
-  type t265 = int -> int -> int
-  type t266 = int -> int -> int
-  type t267 = int -> int -> int
-  type t268 = int -> int -> int
-  type t269 = int -> int -> int
-  type t270 = int -> int -> int
-  type t271 = int -> int -> int
-  type t272 = int -> int -> int
-  type t273 = int -> int -> int
-  type t274 = int -> int -> int
-  type t275 = int -> int -> int
-  type t276 = int -> int -> int
-  type t277 = int -> int -> int
-  type t278 = int -> int -> int
-  type t279 = int -> int -> int
-  type t280 = int -> int -> int
-  type t281 = int -> int -> int
-  type t282 = int -> int -> int
-  type t283 = int -> int -> int
-  type t284 = int -> int -> int
-  type t285 = int -> int -> int
-  type t286 = int -> int -> int
-  type t287 = int -> int -> int
-  type t288 = int -> int -> int
-  type t289 = int -> int -> int
-  type t290 = int -> int -> int
-  type t291 = int -> int -> int
-  type t292 = int -> int -> int
-  type t293 = int -> int -> int
-  type t294 = int -> int -> int
-  type t295 = int -> int -> int
-  type t296 = int -> int -> int
-  type t297 = int -> int -> int
-  type t298 = int -> int -> int
-  type t299 = int -> int -> int
-  type t300 = int -> int -> int
-  type t301 = int -> int -> int
-  type t302 = int -> int -> int
-  type t303 = int -> int -> int
-  type t304 = int -> int -> int
-  type t305 = int -> int -> int
-  type t306 = int -> int -> int
-  type t307 = int -> int -> int
-  type t308 = int -> int -> int
-  type t309 = int -> int -> int
-  type t310 = int -> int -> int
-  type t311 = int -> int -> int
-  type t312 = int -> int -> int
-  type t313 = int -> int -> int
-  type t314 = int -> int -> int
-  type t315 = int -> int -> int
-  type t316 = int -> int -> int
-  type t317 = int -> int -> int
-  type t318 = int -> int -> int
-  type t319 = int -> int -> int
-  type t320 = int -> int -> int
-  type t321 = int -> int -> int
-  type t322 = int -> int -> int
-  type t323 = int -> int -> int
-  type t324 = int -> int -> int
-  type t325 = int -> int -> int
-  type t326 = int -> int -> int
-  type t327 = int -> int -> int
-  type t328 = int -> int -> int
-  type t329 = int -> int -> int
-  type t330 = int -> int -> int
-  type t331 = int -> int -> int
-  type t332 = int -> int -> int
-  type t333 = int -> int -> int
-  type t334 = int -> int -> int
-  type t335 = int -> int -> int
-  type t336 = int -> int -> int
-  type t337 = int -> int -> int
-  type t338 = int -> int -> int
-  type t339 = int -> int -> int
-  type t340 = int -> int -> int
-  type t341 = int -> int -> int
-  type t342 = int -> int -> int
-  type t343 = int -> int -> int
-  type t344 = int -> int -> int
-  type t345 = int -> int -> int
-  type t346 = int -> int -> int
-  type t347 = int -> int -> int
-  type t348 = int -> int -> int
-  type t349 = int -> int -> int
-  type t350 = int -> int -> int
-  type t351 = int -> int -> int
-  type t352 = int -> int -> int
-  type t353 = int -> int -> int
-  type t354 = int -> int -> int
-  type t355 = int -> int -> int
-  type t356 = int -> int -> int
-  type t357 = int -> int -> int
-  type t358 = int -> int -> int
-  type t359 = int -> int -> int
-  type t360 = int -> int -> int
-  type t361 = int -> int -> int
-  type t362 = int -> int -> int
-  type t363 = int -> int -> int
-  type t364 = int -> int -> int
-  type t365 = int -> int -> int
-  type t366 = int -> int -> int
-  type t367 = int -> int -> int
-  type t368 = int -> int -> int
-  type t369 = int -> int -> int
-  type t370 = int -> int -> int
-  type t371 = int -> int -> int
-  type t372 = int -> int -> int
-  type t373 = int -> int -> int
-  type t374 = int -> int -> int
-  type t375 = int -> int -> int
-  type t376 = int -> int -> int
-  type t377 = int -> int -> int
-  type t378 = int -> int -> int
-  type t379 = int -> int -> int
-  type t380 = int -> int -> int
-  type t381 = int -> int -> int
-  type t382 = int -> int -> int
-  type t383 = int -> int -> int
-  type t384 = int -> int -> int
-  type t385 = int -> int -> int
-  type t386 = int -> int -> int
-  type t387 = int -> int -> int
-  type t388 = int -> int -> int
-  type t389 = int -> int -> int
-  type t390 = int -> int -> int
-  type t391 = int -> int -> int
-  type t392 = int -> int -> int
-  type t393 = int -> int -> int
-  type t394 = int -> int -> int
-  type t395 = int -> int -> int
-  type t396 = int -> int -> int
-  type t397 = int -> int -> int
-  type t398 = int -> int -> int
-  type t399 = int -> int -> int
-  type t400 = int -> int -> int
-  type t401 = int -> int -> int
-  type t402 = int -> int -> int
-  type t403 = int -> int -> int
-  type t404 = int -> int -> int
-  type t405 = int -> int -> int
-  type t406 = int -> int -> int
-  type t407 = int -> int -> int
-  type t408 = int -> int -> int
-  type t409 = int -> int -> int
-  type t410 = int -> int -> int
-  type t411 = int -> int -> int
-  type t412 = int -> int -> int
-  type t413 = int -> int -> int
-  type t414 = int -> int -> int
-  type t415 = int -> int -> int
-  type t416 = int -> int -> int
-  type t417 = int -> int -> int
-  type t418 = int -> int -> int
-  type t419 = int -> int -> int
-  type t420 = int -> int -> int
-  type t421 = int -> int -> int
-  type t422 = int -> int -> int
-  type t423 = int -> int -> int
-  type t424 = int -> int -> int
-  type t425 = int -> int -> int
-  type t426 = int -> int -> int
-  type t427 = int -> int -> int
-  type t428 = int -> int -> int
-  type t429 = int -> int -> int
-  type t430 = int -> int -> int
-  type t431 = int -> int -> int
-  type t432 = int -> int -> int
-  type t433 = int -> int -> int
-  type t434 = int -> int -> int
-  type t435 = int -> int -> int
-  type t436 = int -> int -> int
-  type t437 = int -> int -> int
-  type t438 = int -> int -> int
-  type t439 = int -> int -> int
-  type t440 = int -> int -> int
-  type t441 = int -> int -> int
-  type t442 = int -> int -> int
-  type t443 = int -> int -> int
-  type t444 = int -> int -> int
-  type t445 = int -> int -> int
-  type t446 = int -> int -> int
-  type t447 = int -> int -> int
-  type t448 = int -> int -> int
-  type t449 = int -> int -> int
-  type t450 = int -> int -> int
-  type t451 = int -> int -> int
-  type t452 = int -> int -> int
-  type t453 = int -> int -> int
-  type t454 = int -> int -> int
-  type t455 = int -> int -> int
-  type t456 = int -> int -> int
-  type t457 = int -> int -> int
-  type t458 = int -> int -> int
-  type t459 = int -> int -> int
-  type t460 = int -> int -> int
-  type t461 = int -> int -> int
-  type t462 = int -> int -> int
-  type t463 = int -> int -> int
-  type t464 = int -> int -> int
-  type t465 = int -> int -> int
-  type t466 = int -> int -> int
-  type t467 = int -> int -> int
-  type t468 = int -> int -> int
-  type t469 = int -> int -> int
-  type t470 = int -> int -> int
-  type t471 = int -> int -> int
-  type t472 = int -> int -> int
-  type t473 = int -> int -> int
-  type t474 = int -> int -> int
-  type t475 = int -> int -> int
-  type t476 = int -> int -> int
-  type t477 = int -> int -> int
-  type t478 = int -> int -> int
-  type t479 = int -> int -> int
-  type t480 = int -> int -> int
-  type t481 = int -> int -> int
-  type t482 = int -> int -> int
-  type t483 = int -> int -> int
-  type t484 = int -> int -> int
-  type t485 = int -> int -> int
-  type t486 = int -> int -> int
-  type t487 = int -> int -> int
-  type t488 = int -> int -> int
-  type t489 = int -> int -> int
-  type t490 = int -> int -> int
-  type t491 = int -> int -> int
-  type t492 = int -> int -> int
-  type t493 = int -> int -> int
-  type t494 = int -> int -> int
-  type t495 = int -> int -> int
-  type t496 = int -> int -> int
-  type t497 = int -> int -> int
-  type t498 = int -> int -> int
-  type t499 = int -> int -> int
-  type t500 = int -> int -> int
-  type t501 = int -> int -> int
-  type t502 = int -> int -> int
-  type t503 = int -> int -> int
-  type t504 = int -> int -> int
-  type t505 = int -> int -> int
-  type t506 = int -> int -> int
-  type t507 = int -> int -> int
-  type t508 = int -> int -> int
-  type t509 = int -> int -> int
-  type t510 = int -> int -> int
-  type t511 = int -> int -> int
-  type t512 = int -> int -> int
-  type t513 = int -> int -> int
-  type t514 = int -> int -> int
-  type t515 = int -> int -> int
-  type t516 = int -> int -> int
-  type t517 = int -> int -> int
-  type t518 = int -> int -> int
-  type t519 = int -> int -> int
-  type t520 = int -> int -> int
-  type t521 = int -> int -> int
-  type t522 = int -> int -> int
-  type t523 = int -> int -> int
-  type t524 = int -> int -> int
-  type t525 = int -> int -> int
-  type t526 = int -> int -> int
-  type t527 = int -> int -> int
-  type t528 = int -> int -> int
-  type t529 = int -> int -> int
-  type t530 = int -> int -> int
-  type t531 = int -> int -> int
-  type t532 = int -> int -> int
-  type t533 = int -> int -> int
-  type t534 = int -> int -> int
-  type t535 = int -> int -> int
-  type t536 = int -> int -> int
-  type t537 = int -> int -> int
-  type t538 = int -> int -> int
-  type t539 = int -> int -> int
-  type t540 = int -> int -> int
-  type t541 = int -> int -> int
-  type t542 = int -> int -> int
-  type t543 = int -> int -> int
-  type t544 = int -> int -> int
-  type t545 = int -> int -> int
-  type t546 = int -> int -> int
-  type t547 = int -> int -> int
-  type t548 = int -> int -> int
-  type t549 = int -> int -> int
-  type t550 = int -> int -> int
-  type t551 = int -> int -> int
-  type t552 = int -> int -> int
-  type t553 = int -> int -> int
-  type t554 = int -> int -> int
-  type t555 = int -> int -> int
-  type t556 = int -> int -> int
-  type t557 = int -> int -> int
-  type t558 = int -> int -> int
-  type t559 = int -> int -> int
-  type t560 = int -> int -> int
-  type t561 = int -> int -> int
-  type t562 = int -> int -> int
-  type t563 = int -> int -> int
-  type t564 = int -> int -> int
-  type t565 = int -> int -> int
-  type t566 = int -> int -> int
-  type t567 = int -> int -> int
-  type t568 = int -> int -> int
-  type t569 = int -> int -> int
-  type t570 = int -> int -> int
-  type t571 = int -> int -> int
-  type t572 = int -> int -> int
-  type t573 = int -> int -> int
-  type t574 = int -> int -> int
-  type t575 = int -> int -> int
-  type t576 = int -> int -> int
-  type t577 = int -> int -> int
-  type t578 = int -> int -> int
-  type t579 = int -> int -> int
-  type t580 = int -> int -> int
-  type t581 = int -> int -> int
-  type t582 = int -> int -> int
-  type t583 = int -> int -> int
-  type t584 = int -> int -> int
-  type t585 = int -> int -> int
-  type t586 = int -> int -> int
-  type t587 = int -> int -> int
-  type t588 = int -> int -> int
-  type t589 = int -> int -> int
-  type t590 = int -> int -> int
-  type t591 = int -> int -> int
-  type t592 = int -> int -> int
-  type t593 = int -> int -> int
-  type t594 = int -> int -> int
-  type t595 = int -> int -> int
-  type t596 = int -> int -> int
-  type t597 = int -> int -> int
-  type t598 = int -> int -> int
-  type t599 = int -> int -> int
-  type t600 = int -> int -> int
-  type t601 = int -> int -> int
-  type t602 = int -> int -> int
-  type t603 = int -> int -> int
-  type t604 = int -> int -> int
-  type t605 = int -> int -> int
-  type t606 = int -> int -> int
-  type t607 = int -> int -> int
-  type t608 = int -> int -> int
-  type t609 = int -> int -> int
-  type t610 = int -> int -> int
-  type t611 = int -> int -> int
-  type t612 = int -> int -> int
-  type t613 = int -> int -> int
-  type t614 = int -> int -> int
-  type t615 = int -> int -> int
-  type t616 = int -> int -> int
-  type t617 = int -> int -> int
-  type t618 = int -> int -> int
-  type t619 = int -> int -> int
-  type t620 = int -> int -> int
-  type t621 = int -> int -> int
-  type t622 = int -> int -> int
-  type t623 = int -> int -> int
-  type t624 = int -> int -> int
-  type t625 = int -> int -> int
-  type t626 = int -> int -> int
-  type t627 = int -> int -> int
-  type t628 = int -> int -> int
-  type t629 = int -> int -> int
-  type t630 = int -> int -> int
-  type t631 = int -> int -> int
-  type t632 = int -> int -> int
-  type t633 = int -> int -> int
-  type t634 = int -> int -> int
-  type t635 = int -> int -> int
-  type t636 = int -> int -> int
-  type t637 = int -> int -> int
-  type t638 = int -> int -> int
-  type t639 = int -> int -> int
-  type t640 = int -> int -> int
-  type t641 = int -> int -> int
-  type t642 = int -> int -> int
-  type t643 = int -> int -> int
-  type t644 = int -> int -> int
-  type t645 = int -> int -> int
-  type t646 = int -> int -> int
-  type t647 = int -> int -> int
-  type t648 = int -> int -> int
-  type t649 = int -> int -> int
-  type t650 = int -> int -> int
-  type t651 = int -> int -> int
-  type t652 = int -> int -> int
-  type t653 = int -> int -> int
-  type t654 = int -> int -> int
-  type t655 = int -> int -> int
-  type t656 = int -> int -> int
-  type t657 = int -> int -> int
-  type t658 = int -> int -> int
-  type t659 = int -> int -> int
-  type t660 = int -> int -> int
-  type t661 = int -> int -> int
-  type t662 = int -> int -> int
-  type t663 = int -> int -> int
-  type t664 = int -> int -> int
-  type t665 = int -> int -> int
-  type t666 = int -> int -> int
-  type t667 = int -> int -> int
-  type t668 = int -> int -> int
-  type t669 = int -> int -> int
-  type t670 = int -> int -> int
-  type t671 = int -> int -> int
-  type t672 = int -> int -> int
-  type t673 = int -> int -> int
-  type t674 = int -> int -> int
-  type t675 = int -> int -> int
-  type t676 = int -> int -> int
-  type t677 = int -> int -> int
-  type t678 = int -> int -> int
-  type t679 = int -> int -> int
-  type t680 = int -> int -> int
-  type t681 = int -> int -> int
-  type t682 = int -> int -> int
-  type t683 = int -> int -> int
-  type t684 = int -> int -> int
-  type t685 = int -> int -> int
-  type t686 = int -> int -> int
-  type t687 = int -> int -> int
-  type t688 = int -> int -> int
-  type t689 = int -> int -> int
-  type t690 = int -> int -> int
-  type t691 = int -> int -> int
-  type t692 = int -> int -> int
-  type t693 = int -> int -> int
-  type t694 = int -> int -> int
-  type t695 = int -> int -> int
-  type t696 = int -> int -> int
-  type t697 = int -> int -> int
-  type t698 = int -> int -> int
-  type t699 = int -> int -> int
-  type t700 = int -> int -> int
-  type t701 = int -> int -> int
-  type t702 = int -> int -> int
-  type t703 = int -> int -> int
-  type t704 = int -> int -> int
-  type t705 = int -> int -> int
-  type t706 = int -> int -> int
-  type t707 = int -> int -> int
-  type t708 = int -> int -> int
-  type t709 = int -> int -> int
-  type t710 = int -> int -> int
-  type t711 = int -> int -> int
-  type t712 = int -> int -> int
-  type t713 = int -> int -> int
-  type t714 = int -> int -> int
-  type t715 = int -> int -> int
-  type t716 = int -> int -> int
-  type t717 = int -> int -> int
-  type t718 = int -> int -> int
-  type t719 = int -> int -> int
-  type t720 = int -> int -> int
-  type t721 = int -> int -> int
-  type t722 = int -> int -> int
-  type t723 = int -> int -> int
-  type t724 = int -> int -> int
-  type t725 = int -> int -> int
-  type t726 = int -> int -> int
-  type t727 = int -> int -> int
-  type t728 = int -> int -> int
-  type t729 = int -> int -> int
-  type t730 = int -> int -> int
-  type t731 = int -> int -> int
-  type t732 = int -> int -> int
-  type t733 = int -> int -> int
-  type t734 = int -> int -> int
-  type t735 = int -> int -> int
-  type t736 = int -> int -> int
-  type t737 = int -> int -> int
-  type t738 = int -> int -> int
-  type t739 = int -> int -> int
-  type t740 = int -> int -> int
-  type t741 = int -> int -> int
-  type t742 = int -> int -> int
-  type t743 = int -> int -> int
-  type t744 = int -> int -> int
-  type t745 = int -> int -> int
-  type t746 = int -> int -> int
-  type t747 = int -> int -> int
-  type t748 = int -> int -> int
-  type t749 = int -> int -> int
-  type t750 = int -> int -> int
-  type t751 = int -> int -> int
-  type t752 = int -> int -> int
-  type t753 = int -> int -> int
-  type t754 = int -> int -> int
-  type t755 = int -> int -> int
-  type t756 = int -> int -> int
-  type t757 = int -> int -> int
-  type t758 = int -> int -> int
-  type t759 = int -> int -> int
-  type t760 = int -> int -> int
-  type t761 = int -> int -> int
-  type t762 = int -> int -> int
-  type t763 = int -> int -> int
-  type t764 = int -> int -> int
-  type t765 = int -> int -> int
-  type t766 = int -> int -> int
-  type t767 = int -> int -> int
-  type t768 = int -> int -> int
-  type t769 = int -> int -> int
-  type t770 = int -> int -> int
-  type t771 = int -> int -> int
-  type t772 = int -> int -> int
-  type t773 = int -> int -> int
-  type t774 = int -> int -> int
-  type t775 = int -> int -> int
-  type t776 = int -> int -> int
-  type t777 = int -> int -> int
-  type t778 = int -> int -> int
-  type t779 = int -> int -> int
-  type t780 = int -> int -> int
-  type t781 = int -> int -> int
-  type t782 = int -> int -> int
-  type t783 = int -> int -> int
-  type t784 = int -> int -> int
-  type t785 = int -> int -> int
-  type t786 = int -> int -> int
-  type t787 = int -> int -> int
-  type t788 = int -> int -> int
-  type t789 = int -> int -> int
-  type t790 = int -> int -> int
-  type t791 = int -> int -> int
-  type t792 = int -> int -> int
-  type t793 = int -> int -> int
-  type t794 = int -> int -> int
-  type t795 = int -> int -> int
-  type t796 = int -> int -> int
-  type t797 = int -> int -> int
-  type t798 = int -> int -> int
-  type t799 = int -> int -> int
-  type t800 = int -> int -> int
-  type t801 = int -> int -> int
-  type t802 = int -> int -> int
-  type t803 = int -> int -> int
-  type t804 = int -> int -> int
-  type t805 = int -> int -> int
-  type t806 = int -> int -> int
-  type t807 = int -> int -> int
-  type t808 = int -> int -> int
-  type t809 = int -> int -> int
-  type t810 = int -> int -> int
-  type t811 = int -> int -> int
-  type t812 = int -> int -> int
-  type t813 = int -> int -> int
-  type t814 = int -> int -> int
-  type t815 = int -> int -> int
-  type t816 = int -> int -> int
-  type t817 = int -> int -> int
-  type t818 = int -> int -> int
-  type t819 = int -> int -> int
-  type t820 = int -> int -> int
-  type t821 = int -> int -> int
-  type t822 = int -> int -> int
-  type t823 = int -> int -> int
-  type t824 = int -> int -> int
-  type t825 = int -> int -> int
-  type t826 = int -> int -> int
-  type t827 = int -> int -> int
-  type t828 = int -> int -> int
-  type t829 = int -> int -> int
-  type t830 = int -> int -> int
-  type t831 = int -> int -> int
-  type t832 = int -> int -> int
-  type t833 = int -> int -> int
-  type t834 = int -> int -> int
-  type t835 = int -> int -> int
-  type t836 = int -> int -> int
-  type t837 = int -> int -> int
-  type t838 = int -> int -> int
-  type t839 = int -> int -> int
-  type t840 = int -> int -> int
-  type t841 = int -> int -> int
-  type t842 = int -> int -> int
-  type t843 = int -> int -> int
-  type t844 = int -> int -> int
-  type t845 = int -> int -> int
-  type t846 = int -> int -> int
-  type t847 = int -> int -> int
-  type t848 = int -> int -> int
-  type t849 = int -> int -> int
-  type t850 = int -> int -> int
-  type t851 = int -> int -> int
-  type t852 = int -> int -> int
-  type t853 = int -> int -> int
-  type t854 = int -> int -> int
-  type t855 = int -> int -> int
-  type t856 = int -> int -> int
-  type t857 = int -> int -> int
-  type t858 = int -> int -> int
-  type t859 = int -> int -> int
-  type t860 = int -> int -> int
-  type t861 = int -> int -> int
-  type t862 = int -> int -> int
-  type t863 = int -> int -> int
-  type t864 = int -> int -> int
-  type t865 = int -> int -> int
-  type t866 = int -> int -> int
-  type t867 = int -> int -> int
-  type t868 = int -> int -> int
-  type t869 = int -> int -> int
-  type t870 = int -> int -> int
-  type t871 = int -> int -> int
-  type t872 = int -> int -> int
-  type t873 = int -> int -> int
-  type t874 = int -> int -> int
-  type t875 = int -> int -> int
-  type t876 = int -> int -> int
-  type t877 = int -> int -> int
-  type t878 = int -> int -> int
-  type t879 = int -> int -> int
-  type t880 = int -> int -> int
-  type t881 = int -> int -> int
-  type t882 = int -> int -> int
-  type t883 = int -> int -> int
-  type t884 = int -> int -> int
-  type t885 = int -> int -> int
-  type t886 = int -> int -> int
-  type t887 = int -> int -> int
-  type t888 = int -> int -> int
-  type t889 = int -> int -> int
-  type t890 = int -> int -> int
-  type t891 = int -> int -> int
-  type t892 = int -> int -> int
-  type t893 = int -> int -> int
-  type t894 = int -> int -> int
-  type t895 = int -> int -> int
-  type t896 = int -> int -> int
-  type t897 = int -> int -> int
-  type t898 = int -> int -> int
-  type t899 = int -> int -> int
-  type t900 = int -> int -> int
-  type t901 = int -> int -> int
-  type t902 = int -> int -> int
-  type t903 = int -> int -> int
-  type t904 = int -> int -> int
-  type t905 = int -> int -> int
-  type t906 = int -> int -> int
-  type t907 = int -> int -> int
-  type t908 = int -> int -> int
-  type t909 = int -> int -> int
-  type t910 = int -> int -> int
-  type t911 = int -> int -> int
-  type t912 = int -> int -> int
-  type t913 = int -> int -> int
-  type t914 = int -> int -> int
-  type t915 = int -> int -> int
-  type t916 = int -> int -> int
-  type t917 = int -> int -> int
-  type t918 = int -> int -> int
-  type t919 = int -> int -> int
-  type t920 = int -> int -> int
-  type t921 = int -> int -> int
-  type t922 = int -> int -> int
-  type t923 = int -> int -> int
-  type t924 = int -> int -> int
-  type t925 = int -> int -> int
-  type t926 = int -> int -> int
-  type t927 = int -> int -> int
-  type t928 = int -> int -> int
-  type t929 = int -> int -> int
-  type t930 = int -> int -> int
-  type t931 = int -> int -> int
-  type t932 = int -> int -> int
-  type t933 = int -> int -> int
-  type t934 = int -> int -> int
-  type t935 = int -> int -> int
-  type t936 = int -> int -> int
-  type t937 = int -> int -> int
-  type t938 = int -> int -> int
-  type t939 = int -> int -> int
-  type t940 = int -> int -> int
-  type t941 = int -> int -> int
-  type t942 = int -> int -> int
-  type t943 = int -> int -> int
-  type t944 = int -> int -> int
-  type t945 = int -> int -> int
-  type t946 = int -> int -> int
-  type t947 = int -> int -> int
-  type t948 = int -> int -> int
-  type t949 = int -> int -> int
-  type t950 = int -> int -> int
-  type t951 = int -> int -> int
-  type t952 = int -> int -> int
-  type t953 = int -> int -> int
-  type t954 = int -> int -> int
-  type t955 = int -> int -> int
-  type t956 = int -> int -> int
-  type t957 = int -> int -> int
-  type t958 = int -> int -> int
-  type t959 = int -> int -> int
-  type t960 = int -> int -> int
-  type t961 = int -> int -> int
-  type t962 = int -> int -> int
-  type t963 = int -> int -> int
-  type t964 = int -> int -> int
-  type t965 = int -> int -> int
-  type t966 = int -> int -> int
-  type t967 = int -> int -> int
-  type t968 = int -> int -> int
-  type t969 = int -> int -> int
-  type t970 = int -> int -> int
-  type t971 = int -> int -> int
-  type t972 = int -> int -> int
-  type t973 = int -> int -> int
-  type t974 = int -> int -> int
-  type t975 = int -> int -> int
-  type t976 = int -> int -> int
-  type t977 = int -> int -> int
-  type t978 = int -> int -> int
-  type t979 = int -> int -> int
-  type t980 = int -> int -> int
-  type t981 = int -> int -> int
-  type t982 = int -> int -> int
-  type t983 = int -> int -> int
-  type t984 = int -> int -> int
-  type t985 = int -> int -> int
-  type t986 = int -> int -> int
-  type t987 = int -> int -> int
-  type t988 = int -> int -> int
-  type t989 = int -> int -> int
-  type t990 = int -> int -> int
-  type t991 = int -> int -> int
-  type t992 = int -> int -> int
-  type t993 = int -> int -> int
-  type t994 = int -> int -> int
-  type t995 = int -> int -> int
-  type t996 = int -> int -> int
-  type t997 = int -> int -> int
-  type t998 = int -> int -> int
-  type t999 = int -> int -> int
-  type t1000 = int -> int -> int
-end
-
-module X =
-  Make
-  (Make
-  (Make
-  (Make
-  (Make
-  (Make
-  (Make
-  (Make
-  (Make
-  (Make
-  (Make
-  (M)))))))))))
diff --git a/camlp4/test/fixtures/functor-perf2.ml b/camlp4/test/fixtures/functor-perf2.ml
deleted file mode 100644 (file)
index 57b8bba..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<% types, with_constrs, module_application = ARGV.map { |x| x.to_i } %>
-
-module type S = sig
-<%- for i in 0 .. types do -%>
-  type t<%= i %>
-<%- end -%>
-end
-
-module Make (M : S)
-: S with type t0 = M.t0
-  <%- for i in 1 .. with_constrs do -%>
-     and type t<%= i %> = M.t<%= i %>
-  <%- end -%>
-= struct
-  include M
-end
-
-module M = struct
-<%- for i in 0 .. types do -%>
-  type t<%= i %> = int -> int -> int
-<%- end -%>
-end
-
-module X =
-  Make
-<%- module_application.times do -%>
-  (Make
-<%- end -%>
-  (M)<%= ')' * module_application %>
diff --git a/camlp4/test/fixtures/functor-perf3.ml b/camlp4/test/fixtures/functor-perf3.ml
deleted file mode 100644 (file)
index 5bf5359..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<% types, with_constrs, make, make2 = ARGV.map { |x| x.to_i } %>
-
-module type S = sig
-<%- for i in 0 .. types do -%>
-  type t<%= i %>
-<%- end -%>
-end
-
-module Make (M : S)
-: S with type t0 = M.t0
-  <%- for i in 1 .. with_constrs do -%>
-     and type t<%= i %> = M.t<%= i %>
-  <%- end -%>
-= struct
-  include M
-end
-
-module type S2 = sig
-  module M : S
-end
-
-module Make2 (M2 : S2)
-: S2 with module M = M2.M
-= struct
-  include M2
-end
-
-module M = struct
-<%- for i in 0 .. types do -%>
-  type t<%= i %> = int -> int -> int
-<%- end -%>
-end
-
-module M1 =
-  Make
-<%- make.times do -%>
-  (Make
-<%- end -%>
-  (M)<%= ')' * make %>
-
-module M2 = struct
-  module M = M1
-end
-
-module X =
-  Make2
-<%- make2.times do -%>
-  (Make2
-<%- end -%>
-  (M2)<%= ')' * make2 %>
diff --git a/camlp4/test/fixtures/gen_map.ml b/camlp4/test/fixtures/gen_map.ml
deleted file mode 100644 (file)
index 8655752..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-type t =
-  A of int * t * t
-| B of int list
-| C of option t
-
-module Map = struct
-  module T = Camlp4Filters.GenerateMap.Generated
-end
diff --git a/camlp4/test/fixtures/gram-fold.ml b/camlp4/test/fixtures/gram-fold.ml
deleted file mode 100644 (file)
index 5cd53b1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-open Camlp4.PreCast;
-module G = MakeGram Lexer;
-type t = [ A of t and t | B of string | C ];
-value main = G.Entry.mk "main";
-value rec length x acc =
-  match x with
-  [ A x y -> length x (length y acc)
-  | B _ -> succ acc
-  | C -> acc ];
-EXTEND G
-  GLOBAL: main;
-  main:
-    [ [
-      l = FOLD1 (fun a b -> A (B a) b) (C) ident -> l
-  ] ];
-  ident:
-    [ [ `LIDENT s -> s ] ];
-END;
-let f = Sys.argv.(1) in
-Format.printf "%d@."
-  (length (G.parse main (Loc.mk f) (Stream.of_channel (open_in f))) 0);
diff --git a/camlp4/test/fixtures/gram-list.ml b/camlp4/test/fixtures/gram-list.ml
deleted file mode 100644 (file)
index f3df766..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-open Camlp4.PreCast;
-module G = MakeGram Lexer;
-value main = G.Entry.mk "main";
-EXTEND G
-  GLOBAL: main;
-  main:
-    [ [ l = LIST1 ident -> l ] ];
-  ident:
-    [ [ `LIDENT s -> s ] ];
-END;
-let f = Sys.argv.(1) in
-Format.printf "%d@."
-  (List.length (G.parse main (Loc.mk f) (Stream.of_channel (open_in f))));
diff --git a/camlp4/test/fixtures/gram-loc-lost.ml b/camlp4/test/fixtures/gram-loc-lost.ml
deleted file mode 100644 (file)
index 38b164e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-open Camlp4.PreCast;
-module G = MakeGram Lexer;
-(* type t = [ A of Loc.t and t and t | B of Loc.t and string ]; *)
-value main = G.Entry.mk "main";
-(* value rec length x acc =
-  match x with
-  [ A x y -> length x (length y acc)
-  | B _ -> succ acc ];
-value length _ _ = -1;                  *)
-EXTEND G
-  GLOBAL: main;
-  main:
-    [ RIGHTA
-      [ x = SELF; y = SELF ->
-        let l = Loc.merge x y in
-        if l = _loc then _loc
-        else do {
-          Format.eprintf "bad loc: %a <> %a + %a@."
-            Loc.dump _loc Loc.dump x Loc.dump y;
-          _loc
-        }
-      | i = ident -> i ] ];
-  ident:
-    [ [ `LIDENT _ -> _loc ] ];
-END;
-try
-  let f = Sys.argv.(1) in
-  Format.printf "%a@."
-    Loc.dump (G.parse main (Loc.mk f) (Stream.of_channel (open_in f)))
-with e -> Format.eprintf "error: %a@." Camlp4.ErrorHandler.print e;
diff --git a/camlp4/test/fixtures/gram-sub-rule.ml b/camlp4/test/fixtures/gram-sub-rule.ml
deleted file mode 100644 (file)
index 4066cae..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-open Camlp4.PreCast.Syntax;
-
-value mo _loc =
-  fun
-  [ None -> <:expr< None >>
-  | Some e -> <:expr< Some $e$ >> ];
-
-EXTEND Gram
-GLOBAL: expr;
-expr:
-  [ [ "testbegin";
-      lb = [ "("; l = LIST0 a_LIDENT SEP ","; ")" -> l | "()" -> [] ];
-      b = bar;
-      "testend" ->
-        let e =
-        List.fold_right (fun i acc -> <:expr< [ $lid:i$ :: $acc$ ] >>) lb <:expr< [] >>
-        in <:expr< ($e$, $b$) >>
-  ] ];
-bar:
-  [ [ x = OPT [ o = OPT [ x = "testb" ->
-        <:expr< $str:Token.extract_string x$ >> ]; "testc"; b = baz ->
-        <:expr< ($mo _loc o$, $b$) >> ] -> mo _loc x
-  ] ];
-(* bar:
-  [ [ o = OPT [ o = OPT [ "bar" -> <:expr< bar >> ]; b = baz -> <:expr< ($mo _loc o$, $b$) >> ] ->
-      mo _loc o
-  ] ];                                                                                                *)
-(* bar:
-  [ [ o = OPT [ "bar" -> <:expr< bar >> ]; b = baz -> <:expr< ($mo _loc o$, $b$) >>
-  ] ];                                                                                 *)
-baz:
-  [ [ "baz" -> <:expr< baz >> ] ];
-END;
diff --git a/camlp4/test/fixtures/gram-tree.ml b/camlp4/test/fixtures/gram-tree.ml
deleted file mode 100644 (file)
index ec1dd05..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-open Camlp4.PreCast;
-module G = MakeGram Lexer;
-type t = [ A of t and t | B of string ];
-value main = G.Entry.mk "main";
-(* value rec length x acc =
-  match x with
-  [ A x y -> length x (length y acc)
-  | B _ -> succ acc ];                  *)
-value length _ _ = -1;
-EXTEND G
-  GLOBAL: main;
-  main:
-    [ [ x = SELF; y = SELF -> A x y
-      | i = ident -> B i ] ];
-  ident:
-    [ [ `LIDENT s -> s ] ];
-END;
-try
-  let f = Sys.argv.(1) in
-  Format.printf "%d@."
-    (length (G.parse main (Loc.mk f) (Stream.of_channel (open_in f))) 0)
-with e -> Format.eprintf "error: %a@." Camlp4.ErrorHandler.print e;
diff --git a/camlp4/test/fixtures/gram-tree2.ml b/camlp4/test/fixtures/gram-tree2.ml
deleted file mode 100644 (file)
index 68f8b0a..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-open Camlp4.PreCast;
-module G = MakeGram Lexer;
-type t = [ A of t and t | B of string ];
-value main = G.Entry.mk "main";
-(* value rec length x acc =
-  match x with
-  [ A x y -> length x (length y acc)
-  | B _ -> succ acc ];                  *)
-value length _ _ = -1;
-EXTEND G
-  GLOBAL: main;
-  main:
-    [ [ i = ident; x = SELF -> A (B i) x
-      | i = ident -> B i ] ];
-  ident:
-    [ [ `LIDENT s -> s ] ];
-END;
-try
-  let f = Sys.argv.(1) in
-  Format.printf "%d@."
-    (length (G.parse main (Loc.mk f) (Stream.of_channel (open_in f))) 0)
-with e -> Format.eprintf "error: %a@." Camlp4.ErrorHandler.print e;
diff --git a/camlp4/test/fixtures/gram-tree3.ml b/camlp4/test/fixtures/gram-tree3.ml
deleted file mode 100644 (file)
index 06af8dd..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-open Camlp4.PreCast;
-module G = MakeGram Lexer;
-type t = [ A of t and t | B of string ];
-value main = G.Entry.mk "main";
-(* value rec length x acc =
-  match x with
-  [ A x y -> length x (length y acc)
-  | B _ -> succ acc ];                  *)
-value length _ _ = -1;
-EXTEND G
-  GLOBAL: main;
-  main:
-    [ RIGHTA
-      [ x = SELF; y = SELF -> A x y
-      | i = ident -> B i ] ];
-  ident:
-    [ [ `LIDENT s -> s ] ];
-END;
-try
-  let f = Sys.argv.(1) in
-  Format.printf "%d@."
-    (length (G.parse main (Loc.mk f) (Stream.of_channel (open_in f))) 0)
-with e -> Format.eprintf "error: %a@." Camlp4.ErrorHandler.print e;
diff --git a/camlp4/test/fixtures/gram.ml b/camlp4/test/fixtures/gram.ml
deleted file mode 100644 (file)
index 6a5f7e3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-EXTEND G expr: [[ l = LIST0 STRING -> l ]]; END;
-EXTEND G expr: [[ l = LIST0 [ x = STRING -> x ] -> l ]]; END;
diff --git a/camlp4/test/fixtures/idents b/camlp4/test/fixtures/idents
deleted file mode 100644 (file)
index de41468..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-aaa aab aac aad aae aaf aag aah aai aaj aak aal aam aan aao aap aaq aar aas
-aat aau aav aaw aax aay aaz aba abb abc abd abe abf abg abh abi abj abk abl
-abm abn abo abp abq abr abs abt abu abv abw abx aby abz aca acb acc acd ace
-acf acg ach aci acj ack acl acm acn aco acp acq acr acs act acu acv acw acx
-acy acz ada adb adc add ade adf adg adh adi adj adk adl adm adn ado adp adq
-adr ads adt adu adv adw adx ady adz aea aeb aec aed aee aef aeg aeh aei aej
-aek ael aem aen aeo aep aeq aer aes aet aeu aev aew aex aey aez afa afb afc
-afd afe aff afg afh afi afj afk afl afm afn afo afp afq afr afs aft afu afv
-afw afx afy afz aga agb agc agd age agf agg agh agi agj agk agl agm agn ago
-agp agq agr ags agt agu agv agw agx agy agz aha ahb ahc ahd ahe ahf ahg ahh
-ahi ahj ahk ahl ahm ahn aho ahp ahq ahr ahs aht ahu ahv ahw ahx ahy ahz aia
-aib aic aid aie aif aig aih aii aij aik ail aim ain aio aip aiq air ais ait
-aiu aiv aiw aix aiy aiz aja ajb ajc ajd aje ajf ajg ajh aji ajj ajk ajl ajm
-ajn ajo ajp ajq ajr ajs ajt aju ajv ajw ajx ajy ajz aka akb akc akd ake akf
-akg akh aki akj akk akl akm akn ako akp akq akr aks akt aku akv akw akx aky
-akz ala alb alc ald ale alf alg alh ali alj alk all alm aln alo alp alq alr
-als alt alu alv alw alx aly alz ama amb amc amd ame amf amg amh ami amj amk
-aml amm amn amo amp amq amr ams amt amu amv amw amx amy amz ana anb anc and
-ane anf ang anh ani anj ank anl anm ann ano anp anq anr ans ant anu anv anw
-anx any anz aoa aob aoc aod aoe aof aog aoh aoi aoj aok aol aom aon aoo aop
-aoq aor aos aot aou aov aow aox aoy aoz apa apb apc apd ape apf apg aph api
-apj apk apl apm apn apo app apq apr aps apt apu apv apw apx apy apz aqa aqb
-aqc aqd aqe aqf aqg aqh aqi aqj aqk aql aqm aqn aqo aqp aqq aqr aqs aqt aqu
-aqv aqw aqx aqy aqz ara arb arc ard are arf arg arh ari arj ark arl arm arn
-aro arp arq arr ars art aru arv arw arx ary arz asa asb asc asd ase asf asg
-ash asi asj ask asl asm asn aso asp asq asr ass ast asu asv asw asx asy asz
-ata atb atc atd ate atf atg ath ati atj atk atl atm atn ato atp atq atr ats
-att atu atv atw atx aty atz aua aub auc aud aue auf aug auh aui auj auk aul
-aum aun auo aup auq aur aus aut auu auv auw aux auy auz ava avb avc avd ave
-avf avg avh avi avj avk avl avm avn avo avp avq avr avs avt avu avv avw avx
-avy avz awa awb awc awd awe awf awg awh awi awj awk awl awm awn awo awp awq
-awr aws awt awu awv aww awx awy awz axa axb axc axd axe axf axg axh axi axj
-axk axl axm axn axo axp axq axr axs axt axu axv axw axx axy axz aya ayb ayc
-ayd aye ayf ayg ayh ayi ayj ayk ayl aym ayn ayo ayp ayq ayr ays ayt ayu ayv
-ayw ayx ayy ayz aza azb azc azd aze azf azg azh azi azj azk azl azm azn azo
-azp azq azr azs azt azu azv azw azx azy azz baa bab bac bad bae baf bag bah
-bai baj bak bal bam ban bao bap baq bar bas bat bau bav baw bax bay baz bba
-bbb
diff --git a/camlp4/test/fixtures/idents1 b/camlp4/test/fixtures/idents1
deleted file mode 100644 (file)
index 5da5440..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-aaaa aaab aaac aaad aaae aaaf aaag aaah aaai aaaj aaak aaal aaam aaan aaao
-aaap aaaq aaar aaas aaat aaau aaav aaaw aaax aaay aaaz aaba aabb aabc aabd
-aabe aabf aabg aabh aabi aabj aabk aabl aabm aabn aabo aabp aabq aabr aabs
-aabt aabu aabv aabw aabx aaby aabz aaca aacb aacc aacd aace aacf aacg aach
-aaci aacj aack aacl aacm aacn aaco aacp aacq aacr aacs aact aacu aacv aacw
-aacx aacy aacz aada aadb aadc aadd aade aadf aadg aadh aadi aadj aadk aadl
-aadm aadn aado aadp aadq aadr aads aadt aadu aadv aadw aadx aady aadz aaea
-aaeb aaec aaed aaee aaef aaeg aaeh aaei aaej aaek aael aaem aaen aaeo aaep
-aaeq aaer aaes aaet aaeu aaev aaew aaex aaey aaez aafa aafb aafc aafd aafe
-aaff aafg aafh aafi aafj aafk aafl aafm aafn aafo aafp aafq aafr aafs aaft
-aafu aafv aafw aafx aafy aafz aaga aagb aagc aagd aage aagf aagg aagh aagi
-aagj aagk aagl aagm aagn aago aagp aagq aagr aags aagt aagu aagv aagw aagx
-aagy aagz aaha aahb aahc aahd aahe aahf aahg aahh aahi aahj aahk aahl aahm
-aahn aaho aahp aahq aahr aahs aaht aahu aahv aahw aahx aahy aahz aaia aaib
-aaic aaid aaie aaif aaig aaih aaii aaij aaik aail aaim aain aaio aaip aaiq
-aair aais aait aaiu aaiv aaiw aaix aaiy aaiz aaja aajb aajc aajd aaje aajf
-aajg aajh aaji aajj aajk aajl aajm aajn aajo aajp aajq aajr aajs aajt aaju
-aajv aajw aajx aajy aajz aaka aakb aakc aakd aake aakf aakg aakh aaki aakj
-aakk aakl aakm aakn aako aakp aakq aakr aaks aakt aaku aakv aakw aakx aaky
-aakz aala aalb aalc aald aale aalf aalg aalh aali aalj aalk aall aalm aaln
-aalo aalp aalq aalr aals aalt aalu aalv aalw aalx aaly aalz aama aamb aamc
-aamd aame aamf aamg aamh aami aamj aamk aaml aamm aamn aamo aamp aamq aamr
-aams aamt aamu aamv aamw aamx aamy aamz aana aanb aanc aand aane aanf aang
-aanh aani aanj aank aanl aanm aann aano aanp aanq aanr aans aant aanu aanv
-aanw aanx aany aanz aaoa aaob aaoc aaod aaoe aaof aaog aaoh aaoi aaoj aaok
-aaol aaom aaon aaoo aaop aaoq aaor aaos aaot aaou aaov aaow aaox aaoy aaoz
-aapa aapb aapc aapd aape aapf aapg aaph aapi aapj aapk aapl aapm aapn aapo
-aapp aapq aapr aaps aapt aapu aapv aapw aapx aapy aapz aaqa aaqb aaqc aaqd
-aaqe aaqf aaqg aaqh aaqi aaqj aaqk aaql aaqm aaqn aaqo aaqp aaqq aaqr aaqs
-aaqt aaqu aaqv aaqw aaqx aaqy aaqz aara aarb aarc aard aare aarf aarg aarh
-aari aarj aark aarl aarm aarn aaro aarp aarq aarr aars aart aaru aarv aarw
-aarx aary aarz aasa aasb aasc aasd aase aasf aasg aash aasi aasj aask aasl
-aasm aasn aaso aasp aasq aasr aass aast aasu aasv aasw aasx aasy aasz aata
-aatb aatc aatd aate aatf aatg aath aati aatj aatk aatl aatm aatn aato aatp
-aatq aatr aats aatt aatu aatv aatw aatx aaty aatz aaua aaub aauc aaud aaue
-aauf aaug aauh aaui aauj aauk aaul aaum aaun aauo aaup aauq aaur aaus aaut
-aauu aauv aauw aaux aauy aauz aava aavb aavc aavd aave aavf aavg aavh aavi
-aavj aavk aavl aavm aavn aavo aavp aavq aavr aavs aavt aavu aavv aavw aavx
-aavy aavz aawa aawb aawc aawd aawe aawf aawg aawh aawi aawj aawk aawl aawm
-aawn aawo aawp aawq aawr aaws aawt aawu aawv aaww aawx aawy aawz aaxa aaxb
-aaxc aaxd aaxe aaxf aaxg aaxh aaxi aaxj aaxk aaxl aaxm aaxn aaxo aaxp aaxq
-aaxr aaxs aaxt aaxu aaxv aaxw aaxx aaxy aaxz aaya aayb aayc aayd aaye aayf
-aayg aayh aayi aayj aayk aayl aaym aayn aayo aayp aayq aayr aays aayt aayu
-aayv aayw aayx aayy aayz aaza aazb aazc aazd aaze aazf aazg aazh aazi aazj
-aazk aazl aazm aazn aazo aazp aazq aazr aazs aazt aazu aazv aazw aazx aazy
-aazz abaa abab abac abad abae abaf abag abah abai abaj abak abal abam aban
-abao abap abaq abar abas abat abau abav abaw abax abay abaz abba abbb abbc
-abbd abbe abbf abbg abbh abbi abbj abbk abbl abbm abbn abbo abbp abbq abbr
-abbs abbt abbu abbv abbw abbx abby abbz abca abcb abcc abcd abce abcf abcg
-abch abci abcj abck abcl abcm abcn abco abcp abcq abcr abcs abct abcu abcv
-abcw abcx abcy abcz abda abdb abdc abdd abde abdf abdg abdh abdi abdj abdk
-abdl abdm abdn abdo abdp abdq abdr abds abdt abdu abdv abdw abdx abdy abdz
-abea abeb abec abed abee abef abeg abeh abei abej abek abel abem aben abeo
-abep abeq aber abes abet abeu abev abew abex abey abez abfa abfb abfc abfd
-abfe abff abfg abfh abfi abfj abfk abfl abfm abfn abfo abfp abfq abfr abfs
-abft abfu abfv abfw abfx abfy abfz abga abgb abgc abgd abge abgf abgg abgh
-abgi abgj abgk abgl abgm abgn abgo abgp abgq abgr abgs abgt abgu abgv abgw
-abgx abgy abgz abha abhb abhc abhd abhe abhf abhg abhh abhi abhj abhk abhl
-abhm abhn abho abhp abhq abhr abhs abht abhu abhv abhw abhx abhy abhz abia
-abib abic abid abie abif abig abih abii abij abik abil abim abin abio abip
-abiq abir abis abit abiu abiv abiw abix abiy abiz abja abjb abjc abjd abje
-abjf abjg abjh abji abjj abjk abjl abjm abjn abjo abjp abjq abjr abjs abjt
-abju abjv abjw abjx abjy abjz abka abkb abkc abkd abke abkf abkg abkh abki
-abkj abkk abkl abkm abkn abko abkp abkq abkr abks abkt abku abkv abkw abkx
-abky abkz abla ablb ablc abld able ablf ablg ablh abli ablj ablk abll ablm
-abln ablo ablp ablq ablr abls ablt ablu ablv ablw ablx ably ablz abma abmb
-abmc abmd abme abmf abmg abmh abmi abmj abmk abml abmm abmn abmo abmp abmq
-abmr abms abmt abmu abmv abmw abmx abmy abmz abna abnb abnc abnd abne abnf
-abng abnh abni abnj abnk abnl abnm abnn abno abnp abnq abnr abns abnt abnu
-abnv abnw abnx abny abnz aboa abob aboc abod aboe abof abog aboh aboi aboj
-abok abol abom abon aboo abop aboq abor abos abot abou abov abow abox aboy
-aboz abpa abpb abpc abpd abpe abpf abpg abph abpi abpj abpk abpl abpm abpn
-abpo abpp abpq abpr abps abpt abpu abpv abpw abpx abpy abpz abqa abqb abqc
-abqd abqe abqf abqg abqh abqi abqj abqk abql abqm abqn abqo abqp abqq abqr
-abqs abqt abqu abqv abqw abqx abqy abqz abra abrb abrc abrd abre abrf abrg
-abrh abri abrj abrk abrl abrm abrn abro abrp abrq abrr abrs abrt abru abrv
-abrw abrx abry abrz absa absb absc absd abse absf absg absh absi absj absk
-absl absm absn abso absp absq absr abss abst absu absv absw absx absy absz
-abta abtb abtc abtd abte abtf abtg abth abti abtj abtk abtl abtm abtn abto
-abtp abtq abtr abts abtt abtu abtv abtw abtx abty abtz abua abub abuc abud
-abue abuf abug abuh abui abuj abuk abul abum abun abuo abup abuq abur abus
-abut abuu abuv abuw abux abuy abuz abva abvb abvc abvd abve abvf abvg abvh
-abvi abvj abvk abvl abvm abvn abvo abvp abvq abvr abvs abvt abvu abvv abvw
-abvx abvy abvz abwa abwb abwc abwd abwe abwf abwg abwh abwi abwj abwk abwl
-abwm abwn abwo abwp abwq abwr abws abwt abwu abwv abww abwx abwy abwz abxa
-abxb abxc abxd abxe abxf abxg abxh abxi abxj abxk abxl abxm abxn abxo abxp
-abxq abxr abxs abxt abxu abxv abxw abxx abxy abxz abya abyb abyc abyd abye
-abyf abyg abyh abyi abyj abyk abyl abym abyn abyo abyp abyq abyr abys abyt
-abyu abyv abyw abyx abyy abyz abza abzb abzc abzd abze abzf abzg abzh abzi
-abzj abzk abzl abzm abzn abzo abzp abzq abzr abzs abzt abzu abzv abzw abzx
-abzy abzz acaa acab acac acad acae acaf acag acah acai acaj acak acal acam
-acan acao acap acaq acar acas acat acau acav acaw acax acay acaz acba acbb
-acbc acbd acbe acbf acbg acbh acbi acbj acbk acbl acbm acbn acbo acbp acbq
-acbr acbs acbt acbu acbv acbw acbx acby acbz acca accb accc accd acce accf
-accg acch acci accj acck accl accm accn acco accp accq accr accs acct accu
-accv accw accx accy accz acda acdb acdc acdd acde acdf acdg acdh acdi acdj
-acdk acdl acdm acdn acdo acdp acdq acdr acds acdt acdu acdv acdw acdx acdy
-acdz acea aceb acec aced acee acef aceg aceh acei acej acek acel acem acen
-aceo acep aceq acer aces acet aceu acev acew acex acey acez acfa acfb acfc
-acfd acfe acff acfg acfh acfi acfj acfk acfl acfm acfn acfo acfp acfq acfr
-acfs acft acfu acfv acfw acfx acfy acfz acga acgb acgc acgd acge acgf acgg
-acgh acgi acgj acgk acgl acgm acgn acgo acgp acgq acgr acgs acgt acgu acgv
-acgw acgx acgy acgz acha achb achc achd ache achf achg achh achi achj achk
-achl achm achn acho achp achq achr achs acht achu achv achw achx achy achz
-acia acib acic acid acie acif acig acih acii acij acik acil acim acin acio
-acip aciq acir acis acit aciu aciv aciw acix aciy aciz acja acjb acjc acjd
-acje acjf acjg acjh acji acjj acjk acjl acjm acjn acjo acjp acjq acjr acjs
-acjt acju acjv acjw acjx acjy acjz acka ackb ackc ackd acke ackf ackg ackh
-acki ackj ackk ackl ackm ackn acko ackp ackq ackr acks ackt acku ackv ackw
-ackx acky ackz acla aclb aclc acld acle aclf aclg aclh acli aclj aclk acll
-aclm acln aclo aclp aclq aclr acls aclt aclu aclv aclw aclx acly aclz acma
-acmb acmc acmd acme acmf acmg acmh acmi acmj acmk acml acmm acmn acmo acmp
-acmq acmr acms acmt acmu acmv acmw acmx acmy acmz acna acnb acnc acnd acne
-acnf acng acnh acni acnj acnk acnl acnm acnn acno acnp acnq acnr acns acnt
-acnu acnv acnw acnx acny acnz acoa acob acoc acod acoe acof acog acoh acoi
-acoj acok acol acom acon acoo acop acoq acor acos acot acou acov acow acox
-acoy acoz acpa acpb acpc acpd acpe acpf acpg acph acpi acpj acpk acpl acpm
-acpn acpo acpp acpq acpr acps acpt acpu acpv acpw acpx acpy acpz acqa acqb
-acqc acqd acqe acqf acqg acqh acqi acqj acqk acql acqm acqn acqo acqp acqq
-acqr acqs acqt acqu acqv acqw acqx acqy acqz acra acrb acrc acrd acre acrf
-acrg acrh acri acrj acrk acrl acrm acrn acro acrp acrq acrr acrs acrt acru
-acrv acrw acrx acry acrz acsa acsb acsc acsd acse acsf acsg acsh acsi acsj
-acsk acsl acsm acsn acso acsp acsq acsr acss acst acsu acsv acsw acsx acsy
-acsz acta actb actc actd acte actf actg acth acti actj actk actl actm actn
-acto actp actq actr acts actt actu actv actw actx acty actz acua acub acuc
-acud acue acuf acug acuh acui acuj acuk acul acum acun acuo acup acuq acur
-acus acut acuu acuv acuw acux acuy acuz acva acvb acvc acvd acve acvf acvg
-acvh acvi acvj acvk acvl acvm acvn acvo acvp acvq acvr acvs acvt acvu acvv
-acvw acvx acvy acvz acwa acwb acwc acwd acwe acwf acwg acwh acwi acwj acwk
-acwl acwm acwn acwo acwp acwq acwr acws acwt acwu acwv acww acwx acwy acwz
-acxa acxb acxc acxd acxe acxf acxg acxh acxi acxj acxk acxl acxm acxn acxo
-acxp acxq acxr acxs acxt acxu acxv acxw acxx acxy acxz acya acyb acyc acyd
-acye acyf acyg acyh acyi acyj acyk acyl acym acyn acyo acyp acyq acyr acys
-acyt acyu acyv acyw acyx acyy acyz acza aczb aczc aczd acze aczf aczg aczh
-aczi aczj aczk aczl aczm aczn aczo aczp aczq aczr aczs aczt aczu aczv aczw
-aczx aczy aczz adaa adab adac adad adae adaf adag adah adai adaj adak adal
-adam adan adao adap adaq adar adas adat adau adav adaw adax aday adaz adba
-adbb adbc adbd adbe adbf adbg adbh adbi adbj adbk adbl adbm adbn adbo adbp
-adbq adbr adbs adbt adbu adbv adbw adbx adby adbz adca adcb adcc adcd adce
-adcf adcg adch adci adcj adck adcl adcm adcn adco adcp adcq adcr adcs adct
-adcu adcv adcw adcx adcy adcz adda addb addc addd adde addf addg addh addi
-addj addk addl addm addn addo addp addq addr adds addt addu addv addw addx
-addy addz adea adeb adec aded adee adef adeg adeh adei adej adek adel adem
-aden adeo adep adeq ader ades adet adeu adev adew adex adey adez adfa adfb
-adfc adfd adfe adff adfg adfh adfi adfj adfk adfl adfm adfn adfo adfp adfq
-adfr adfs adft adfu adfv adfw adfx adfy adfz adga adgb adgc adgd adge adgf
-adgg adgh adgi adgj adgk adgl adgm adgn adgo adgp adgq adgr adgs adgt adgu
-adgv adgw adgx adgy adgz adha adhb adhc adhd adhe adhf adhg adhh adhi adhj
-adhk adhl adhm adhn adho adhp adhq adhr adhs adht adhu adhv adhw adhx adhy
-adhz adia adib adic adid adie adif adig adih adii adij adik adil adim adin
-adio adip adiq adir adis adit adiu adiv adiw adix adiy adiz adja adjb adjc
-adjd adje adjf adjg adjh adji adjj adjk adjl adjm adjn adjo adjp adjq adjr
-adjs adjt adju adjv adjw adjx adjy adjz adka adkb adkc adkd adke adkf adkg
-adkh adki adkj adkk adkl adkm adkn adko adkp adkq adkr adks adkt adku adkv
-adkw adkx adky adkz adla adlb adlc adld adle adlf adlg adlh adli adlj adlk
-adll adlm adln adlo adlp adlq adlr adls adlt adlu adlv adlw adlx adly adlz
-adma admb admc admd adme admf admg admh admi admj admk adml admm admn admo
-admp admq admr adms admt admu admv admw admx admy admz adna adnb adnc adnd
-adne adnf adng adnh adni adnj adnk adnl adnm adnn adno adnp adnq adnr adns
-adnt adnu adnv adnw adnx adny adnz adoa adob adoc adod adoe adof adog adoh
-adoi adoj adok adol adom adon adoo adop adoq ador ados adot adou adov adow
-adox adoy adoz adpa adpb adpc adpd adpe adpf adpg adph adpi adpj adpk adpl
-adpm adpn adpo adpp adpq adpr adps adpt adpu adpv adpw adpx adpy adpz adqa
-adqb adqc adqd adqe adqf adqg adqh adqi adqj adqk adql adqm adqn adqo adqp
-adqq adqr adqs adqt adqu adqv adqw adqx adqy adqz adra adrb adrc adrd adre
-adrf adrg adrh adri adrj adrk adrl adrm adrn adro adrp adrq adrr adrs adrt
-adru adrv adrw adrx adry adrz adsa adsb adsc adsd adse adsf adsg adsh adsi
-adsj adsk adsl adsm adsn adso adsp adsq adsr adss adst adsu adsv adsw adsx
-adsy adsz adta adtb adtc adtd adte adtf adtg adth adti adtj adtk adtl adtm
-adtn adto adtp adtq adtr adts adtt adtu adtv adtw adtx adty adtz adua adub
-aduc adud adue aduf adug aduh adui aduj aduk adul adum adun aduo adup aduq
-adur adus adut aduu aduv aduw adux aduy aduz adva advb advc advd adve advf
-advg advh advi advj advk advl advm advn advo advp advq advr advs advt advu
-advv advw advx advy advz adwa adwb adwc adwd adwe adwf adwg adwh adwi adwj
-adwk adwl adwm adwn adwo adwp adwq adwr adws adwt adwu adwv adww adwx adwy
-adwz adxa adxb adxc adxd adxe adxf adxg adxh adxi adxj adxk adxl adxm adxn
-adxo adxp adxq adxr adxs adxt adxu adxv adxw adxx adxy adxz adya adyb adyc
-adyd adye adyf adyg adyh adyi adyj adyk adyl adym adyn adyo adyp adyq adyr
-adys adyt adyu adyv adyw adyx adyy adyz adza adzb adzc adzd adze adzf adzg
-adzh adzi adzj adzk adzl adzm adzn adzo adzp adzq adzr adzs adzt adzu adzv
-adzw adzx adzy adzz aeaa aeab aeac aead aeae aeaf aeag aeah aeai aeaj aeak
-aeal aeam aean aeao aeap aeaq aear aeas aeat aeau aeav aeaw aeax aeay aeaz
-aeba aebb aebc aebd aebe aebf aebg aebh aebi aebj aebk aebl aebm aebn aebo
-aebp aebq aebr aebs aebt aebu aebv aebw aebx aeby aebz aeca aecb aecc aecd
-aece aecf aecg aech aeci aecj aeck aecl aecm aecn aeco aecp aecq aecr aecs
-aect aecu aecv aecw aecx aecy aecz aeda aedb aedc aedd aede aedf aedg aedh
-aedi aedj aedk aedl aedm aedn aedo aedp aedq aedr aeds aedt aedu aedv aedw
-aedx aedy aedz aeea aeeb aeec aeed aeee aeef aeeg aeeh aeei aeej aeek aeel
-aeem aeen aeeo aeep aeeq aeer aees aeet aeeu aeev aeew aeex aeey aeez aefa
-aefb aefc aefd aefe aeff aefg aefh aefi aefj aefk aefl aefm aefn aefo aefp
-aefq aefr aefs aeft aefu aefv aefw aefx aefy aefz aega aegb aegc aegd aege
-aegf aegg aegh aegi aegj aegk aegl aegm aegn aego aegp aegq aegr aegs aegt
-aegu aegv aegw aegx aegy aegz aeha aehb aehc aehd aehe aehf aehg aehh aehi
-aehj aehk aehl aehm aehn aeho aehp aehq aehr aehs aeht aehu aehv aehw aehx
-aehy aehz aeia aeib aeic aeid aeie aeif aeig aeih aeii aeij aeik aeil aeim
-aein aeio aeip aeiq aeir aeis aeit aeiu aeiv aeiw aeix aeiy aeiz aeja aejb
-aejc aejd aeje aejf aejg aejh aeji aejj aejk aejl aejm aejn aejo aejp aejq
-aejr aejs aejt aeju aejv aejw aejx aejy aejz aeka aekb aekc aekd aeke aekf
-aekg aekh aeki aekj aekk aekl aekm aekn aeko aekp aekq aekr aeks aekt aeku
-aekv aekw aekx aeky aekz aela aelb aelc aeld aele aelf aelg aelh aeli aelj
-aelk aell aelm aeln aelo aelp aelq aelr aels aelt aelu aelv aelw aelx aely
-aelz aema aemb aemc aemd aeme aemf aemg aemh aemi aemj aemk aeml aemm aemn
-aemo aemp aemq aemr aems aemt aemu aemv aemw aemx aemy aemz aena aenb aenc
-aend aene aenf aeng aenh aeni aenj aenk aenl aenm aenn aeno aenp aenq aenr
-aens aent aenu aenv aenw aenx aeny aenz aeoa aeob aeoc aeod aeoe aeof aeog
-aeoh aeoi aeoj aeok aeol aeom aeon aeoo aeop aeoq aeor aeos aeot aeou aeov
-aeow aeox aeoy aeoz aepa aepb aepc aepd aepe aepf aepg aeph aepi aepj aepk
-aepl aepm aepn aepo aepp aepq aepr aeps aept aepu aepv aepw aepx aepy aepz
-aeqa aeqb aeqc aeqd aeqe aeqf aeqg aeqh aeqi aeqj aeqk aeql aeqm aeqn aeqo
-aeqp aeqq aeqr aeqs aeqt aequ aeqv aeqw aeqx aeqy aeqz aera aerb aerc aerd
-aere aerf aerg aerh aeri aerj aerk aerl aerm aern aero aerp aerq aerr aers
-aert aeru aerv aerw aerx aery aerz aesa aesb aesc aesd aese aesf aesg aesh
-aesi aesj aesk aesl aesm aesn aeso aesp aesq aesr aess aest aesu aesv aesw
-aesx aesy aesz aeta aetb aetc aetd aete aetf aetg aeth aeti aetj aetk aetl
-aetm aetn aeto aetp aetq aetr aets aett aetu aetv aetw aetx aety aetz aeua
-aeub aeuc aeud aeue aeuf aeug aeuh aeui aeuj aeuk aeul aeum aeun aeuo aeup
-aeuq aeur aeus aeut aeuu aeuv aeuw aeux aeuy aeuz aeva aevb aevc aevd aeve
-aevf aevg aevh aevi aevj aevk aevl aevm aevn aevo aevp aevq aevr aevs aevt
-aevu aevv aevw aevx aevy aevz aewa aewb aewc aewd aewe aewf aewg aewh aewi
-aewj aewk aewl aewm aewn aewo aewp aewq aewr aews aewt aewu aewv aeww aewx
-aewy aewz aexa aexb aexc aexd aexe aexf aexg aexh aexi aexj aexk aexl aexm
-aexn aexo aexp aexq aexr aexs aext aexu aexv aexw aexx aexy aexz aeya aeyb
-aeyc aeyd aeye aeyf aeyg aeyh aeyi aeyj aeyk aeyl aeym aeyn aeyo aeyp aeyq
-aeyr aeys aeyt aeyu aeyv aeyw aeyx aeyy aeyz aeza aezb aezc aezd aeze aezf
-aezg aezh aezi aezj aezk aezl aezm aezn aezo aezp aezq aezr aezs aezt aezu
-aezv aezw aezx aezy aezz afaa afab afac afad afae afaf afag afah afai afaj
-afak afal afam afan afao afap afaq afar afas afat afau afav afaw afax afay
-afaz afba afbb afbc afbd afbe afbf afbg afbh afbi afbj afbk afbl afbm afbn
-afbo afbp afbq afbr afbs afbt afbu afbv afbw afbx afby afbz afca afcb afcc
-afcd afce afcf afcg afch afci afcj afck afcl afcm afcn afco afcp afcq afcr
-afcs afct afcu afcv afcw afcx afcy afcz afda afdb afdc afdd afde afdf afdg
-afdh afdi afdj afdk afdl afdm afdn afdo afdp afdq afdr afds afdt afdu afdv
-afdw afdx afdy afdz afea afeb afec afed afee afef afeg afeh afei afej afek
-afel afem afen afeo afep afeq afer afes afet afeu afev afew afex afey afez
-affa affb affc affd affe afff affg affh affi affj affk affl affm affn affo
-affp affq affr affs afft affu affv affw affx affy affz afga afgb afgc afgd
-afge afgf afgg afgh afgi afgj afgk afgl afgm afgn afgo afgp afgq afgr afgs
-afgt afgu afgv afgw afgx afgy afgz afha afhb afhc afhd afhe afhf afhg afhh
-afhi afhj afhk afhl afhm afhn afho afhp afhq afhr afhs afht afhu afhv afhw
-afhx afhy afhz afia afib afic afid afie afif afig afih afii afij afik afil
-afim afin afio afip afiq afir afis afit afiu afiv afiw afix afiy afiz afja
-afjb afjc afjd afje afjf afjg afjh afji afjj afjk afjl afjm afjn afjo afjp
-afjq afjr afjs afjt afju afjv afjw afjx afjy afjz afka afkb afkc afkd afke
-afkf afkg afkh afki afkj afkk afkl afkm afkn afko afkp afkq afkr afks afkt
-afku afkv afkw afkx afky afkz afla aflb aflc afld afle aflf aflg aflh afli
-aflj aflk afll aflm afln aflo aflp aflq aflr afls aflt aflu aflv aflw aflx
-afly aflz afma afmb afmc afmd afme afmf afmg afmh afmi afmj afmk afml afmm
-afmn afmo afmp afmq afmr afms afmt afmu afmv afmw afmx afmy afmz afna afnb
-afnc afnd afne afnf afng afnh afni afnj afnk afnl afnm afnn afno afnp afnq
-afnr afns afnt afnu afnv afnw afnx afny afnz afoa afob afoc afod afoe afof
-afog afoh afoi afoj afok afol afom afon afoo afop afoq afor afos afot afou
-afov afow afox afoy afoz afpa afpb afpc afpd afpe afpf afpg afph afpi afpj
-afpk afpl afpm afpn afpo afpp afpq afpr afps afpt afpu afpv afpw afpx afpy
-afpz afqa afqb afqc afqd afqe afqf afqg afqh afqi afqj afqk afql afqm afqn
-afqo afqp afqq afqr afqs afqt afqu afqv afqw afqx afqy afqz afra afrb afrc
-afrd afre afrf afrg afrh afri afrj afrk afrl afrm afrn afro afrp afrq afrr
-afrs afrt afru afrv afrw afrx afry afrz afsa afsb afsc afsd afse afsf afsg
-afsh afsi afsj afsk afsl afsm afsn afso afsp afsq afsr afss afst afsu afsv
-afsw afsx afsy afsz afta aftb aftc aftd afte aftf aftg afth afti aftj aftk
-aftl aftm aftn afto aftp aftq aftr afts aftt aftu aftv aftw aftx afty aftz
-afua afub afuc afud afue afuf afug afuh afui afuj afuk aful afum afun afuo
-afup afuq afur afus afut afuu afuv afuw afux afuy afuz afva afvb afvc afvd
-afve afvf afvg afvh afvi afvj afvk afvl afvm afvn afvo afvp afvq afvr afvs
-afvt afvu afvv afvw afvx afvy afvz afwa afwb afwc afwd afwe afwf afwg afwh
-afwi afwj afwk afwl afwm afwn afwo afwp afwq afwr afws afwt afwu afwv afww
-afwx afwy afwz afxa afxb afxc afxd afxe afxf afxg afxh afxi afxj afxk afxl
-afxm afxn afxo afxp afxq afxr afxs afxt afxu afxv afxw afxx afxy afxz afya
-afyb afyc afyd afye afyf afyg afyh afyi afyj afyk afyl afym afyn afyo afyp
-afyq afyr afys afyt afyu afyv afyw afyx afyy afyz afza afzb afzc afzd afze
-afzf afzg afzh afzi afzj afzk afzl afzm afzn afzo afzp afzq afzr afzs afzt
-afzu afzv afzw afzx afzy afzz agaa agab agac agad agae agaf agag agah agai
-agaj agak agal agam agan agao agap agaq agar agas agat agau agav agaw agax
-agay agaz agba agbb agbc agbd agbe agbf agbg agbh agbi agbj agbk agbl agbm
-agbn agbo agbp agbq agbr agbs agbt agbu agbv agbw agbx agby agbz agca agcb
-agcc agcd agce agcf agcg agch agci agcj agck agcl agcm agcn agco agcp agcq
-agcr agcs agct agcu agcv agcw agcx agcy agcz agda agdb agdc agdd agde agdf
-agdg agdh agdi agdj agdk agdl agdm agdn agdo agdp agdq agdr agds agdt agdu
-agdv agdw agdx agdy agdz agea ageb agec aged agee agef ageg ageh agei agej
-agek agel agem agen ageo agep ageq ager ages aget ageu agev agew agex agey
-agez agfa agfb agfc agfd agfe agff agfg agfh agfi agfj agfk agfl agfm agfn
-agfo agfp agfq agfr agfs agft agfu agfv agfw agfx agfy agfz agga aggb aggc
-aggd agge aggf aggg aggh aggi aggj aggk aggl aggm aggn aggo aggp aggq aggr
-aggs aggt aggu aggv aggw aggx aggy aggz agha aghb aghc aghd aghe aghf aghg
-aghh aghi aghj aghk aghl aghm aghn agho aghp aghq aghr aghs aght aghu aghv
-aghw aghx aghy aghz agia agib agic agid agie agif agig agih agii agij agik
-agil agim agin agio agip agiq agir agis agit agiu agiv agiw agix agiy agiz
-agja agjb agjc agjd agje agjf agjg agjh agji agjj agjk agjl agjm agjn agjo
-agjp agjq agjr agjs agjt agju agjv agjw agjx agjy agjz agka agkb agkc agkd
-agke agkf agkg agkh agki agkj agkk agkl agkm agkn agko agkp agkq agkr agks
-agkt agku agkv agkw agkx agky agkz agla aglb aglc agld agle aglf aglg aglh
-agli aglj aglk agll aglm agln aglo aglp aglq aglr agls aglt aglu aglv aglw
-aglx agly aglz agma agmb agmc agmd agme agmf agmg agmh agmi agmj agmk agml
-agmm agmn agmo agmp agmq agmr agms agmt agmu agmv agmw agmx agmy agmz agna
-agnb agnc agnd agne agnf agng agnh agni agnj agnk agnl agnm agnn agno agnp
-agnq agnr agns agnt agnu agnv agnw agnx agny agnz agoa agob agoc agod agoe
-agof agog agoh agoi agoj agok agol agom agon agoo agop agoq agor agos agot
-agou agov agow agox agoy agoz agpa agpb agpc agpd agpe agpf agpg agph agpi
-agpj agpk agpl agpm agpn agpo agpp agpq agpr agps agpt agpu agpv agpw agpx
-agpy agpz agqa agqb agqc agqd agqe agqf agqg agqh agqi agqj agqk agql agqm
-agqn agqo agqp agqq agqr agqs agqt agqu agqv agqw agqx agqy agqz agra agrb
-agrc agrd agre agrf agrg agrh agri agrj agrk agrl agrm agrn agro agrp agrq
-agrr agrs agrt agru agrv agrw agrx agry agrz agsa agsb agsc agsd agse agsf
-agsg agsh agsi agsj agsk agsl agsm agsn agso agsp agsq agsr agss agst agsu
-agsv agsw agsx agsy agsz agta agtb agtc agtd agte agtf agtg agth agti agtj
-agtk agtl agtm agtn agto agtp agtq agtr agts agtt agtu agtv agtw agtx agty
-agtz agua agub aguc agud ague aguf agug aguh agui aguj aguk agul agum agun
-aguo agup aguq agur agus agut aguu aguv aguw agux aguy aguz agva agvb agvc
-agvd agve agvf agvg agvh agvi agvj agvk agvl agvm agvn agvo agvp agvq agvr
-agvs agvt agvu agvv agvw agvx agvy agvz agwa agwb agwc agwd agwe agwf agwg
-agwh agwi agwj agwk agwl agwm agwn agwo agwp agwq agwr agws agwt agwu agwv
-agww agwx agwy agwz agxa agxb agxc agxd agxe agxf agxg agxh agxi agxj agxk
-agxl agxm agxn agxo agxp agxq agxr agxs agxt agxu agxv agxw agxx agxy agxz
-agya agyb agyc agyd agye agyf agyg agyh agyi agyj agyk agyl agym agyn agyo
-agyp agyq agyr agys agyt agyu agyv agyw agyx agyy agyz agza agzb agzc agzd
-agze agzf agzg agzh agzi agzj agzk agzl agzm agzn agzo agzp agzq agzr agzs
-agzt agzu agzv agzw agzx agzy agzz ahaa ahab ahac ahad ahae ahaf ahag ahah
-ahai ahaj ahak ahal aham ahan ahao ahap ahaq ahar ahas ahat ahau ahav ahaw
-ahax ahay ahaz ahba ahbb ahbc ahbd ahbe ahbf ahbg ahbh ahbi ahbj ahbk ahbl
-ahbm ahbn ahbo ahbp ahbq ahbr ahbs ahbt ahbu ahbv ahbw ahbx ahby ahbz ahca
-ahcb ahcc ahcd ahce ahcf ahcg ahch ahci ahcj ahck ahcl ahcm ahcn ahco ahcp
-ahcq ahcr ahcs ahct ahcu ahcv ahcw ahcx ahcy ahcz ahda ahdb ahdc ahdd ahde
-ahdf ahdg ahdh ahdi ahdj ahdk ahdl ahdm ahdn ahdo ahdp ahdq ahdr ahds ahdt
-ahdu ahdv ahdw ahdx ahdy ahdz ahea aheb ahec ahed ahee ahef aheg aheh ahei
-ahej ahek ahel ahem ahen aheo ahep aheq aher ahes ahet aheu ahev ahew ahex
-ahey ahez ahfa ahfb ahfc ahfd ahfe ahff ahfg ahfh ahfi ahfj ahfk ahfl ahfm
-ahfn ahfo ahfp ahfq ahfr ahfs ahft ahfu ahfv ahfw ahfx ahfy ahfz ahga ahgb
-ahgc ahgd ahge ahgf ahgg ahgh ahgi ahgj ahgk ahgl ahgm ahgn ahgo ahgp ahgq
-ahgr ahgs ahgt ahgu ahgv ahgw ahgx ahgy ahgz ahha ahhb ahhc ahhd ahhe ahhf
-ahhg ahhh ahhi ahhj ahhk ahhl ahhm ahhn ahho ahhp ahhq ahhr ahhs ahht ahhu
-ahhv ahhw ahhx ahhy ahhz ahia ahib ahic ahid ahie ahif ahig ahih ahii ahij
-ahik ahil ahim ahin ahio ahip ahiq ahir ahis ahit ahiu ahiv ahiw ahix ahiy
-ahiz ahja ahjb ahjc ahjd ahje ahjf ahjg ahjh ahji ahjj ahjk ahjl ahjm ahjn
-ahjo ahjp ahjq ahjr ahjs ahjt ahju ahjv ahjw ahjx ahjy ahjz ahka ahkb ahkc
-ahkd ahke ahkf ahkg ahkh ahki ahkj ahkk ahkl ahkm ahkn ahko ahkp ahkq ahkr
-ahks ahkt ahku ahkv ahkw ahkx ahky ahkz ahla ahlb ahlc ahld ahle ahlf ahlg
-ahlh ahli ahlj ahlk ahll ahlm ahln ahlo ahlp ahlq ahlr ahls ahlt ahlu ahlv
-ahlw ahlx ahly ahlz ahma ahmb ahmc ahmd ahme ahmf ahmg ahmh ahmi ahmj ahmk
-ahml ahmm ahmn ahmo ahmp ahmq ahmr ahms ahmt ahmu ahmv ahmw ahmx ahmy ahmz
-ahna ahnb ahnc ahnd ahne ahnf ahng ahnh ahni ahnj ahnk ahnl ahnm ahnn ahno
-ahnp ahnq ahnr ahns ahnt ahnu ahnv ahnw ahnx ahny ahnz ahoa ahob ahoc ahod
-ahoe ahof ahog ahoh ahoi ahoj ahok ahol ahom ahon ahoo ahop ahoq ahor ahos
-ahot ahou ahov ahow ahox ahoy ahoz ahpa ahpb ahpc ahpd ahpe ahpf ahpg ahph
-ahpi ahpj ahpk ahpl ahpm ahpn ahpo ahpp ahpq ahpr ahps ahpt ahpu ahpv ahpw
-ahpx ahpy ahpz ahqa ahqb ahqc ahqd ahqe ahqf ahqg ahqh ahqi ahqj ahqk ahql
-ahqm ahqn ahqo ahqp ahqq ahqr ahqs ahqt ahqu ahqv ahqw ahqx ahqy ahqz ahra
-ahrb ahrc ahrd ahre ahrf ahrg ahrh ahri ahrj ahrk ahrl ahrm ahrn ahro ahrp
-ahrq ahrr ahrs ahrt ahru ahrv ahrw ahrx ahry ahrz ahsa ahsb ahsc ahsd ahse
-ahsf ahsg ahsh ahsi ahsj ahsk ahsl ahsm ahsn ahso ahsp ahsq ahsr ahss ahst
-ahsu ahsv ahsw ahsx ahsy ahsz ahta ahtb ahtc ahtd ahte ahtf ahtg ahth ahti
-ahtj ahtk ahtl ahtm ahtn ahto ahtp ahtq ahtr ahts ahtt ahtu ahtv ahtw ahtx
-ahty ahtz ahua ahub ahuc ahud ahue ahuf ahug ahuh ahui ahuj ahuk ahul ahum
-ahun ahuo ahup ahuq ahur ahus ahut ahuu ahuv ahuw ahux ahuy ahuz ahva ahvb
-ahvc ahvd ahve ahvf ahvg ahvh ahvi ahvj ahvk ahvl ahvm ahvn ahvo ahvp ahvq
-ahvr ahvs ahvt ahvu ahvv ahvw ahvx ahvy ahvz ahwa ahwb ahwc ahwd ahwe ahwf
-ahwg ahwh ahwi ahwj ahwk ahwl ahwm ahwn ahwo ahwp ahwq ahwr ahws ahwt ahwu
-ahwv ahww ahwx ahwy ahwz ahxa ahxb ahxc ahxd ahxe ahxf ahxg ahxh ahxi ahxj
-ahxk ahxl ahxm ahxn ahxo ahxp ahxq ahxr ahxs ahxt ahxu ahxv ahxw ahxx ahxy
-ahxz ahya ahyb ahyc ahyd ahye ahyf ahyg ahyh ahyi ahyj ahyk ahyl ahym ahyn
-ahyo ahyp ahyq ahyr ahys ahyt ahyu ahyv ahyw ahyx ahyy ahyz ahza ahzb ahzc
-ahzd ahze ahzf ahzg ahzh ahzi ahzj ahzk ahzl ahzm ahzn ahzo ahzp ahzq ahzr
-ahzs ahzt ahzu ahzv ahzw ahzx ahzy ahzz aiaa aiab aiac aiad aiae aiaf aiag
-aiah aiai aiaj aiak aial aiam aian aiao aiap aiaq aiar aias aiat aiau aiav
-aiaw aiax aiay aiaz aiba aibb aibc aibd aibe aibf aibg aibh aibi aibj aibk
-aibl aibm aibn aibo aibp aibq aibr aibs aibt aibu aibv aibw aibx aiby aibz
-aica aicb aicc aicd aice aicf aicg aich aici aicj aick aicl aicm aicn aico
-aicp aicq aicr aics aict aicu aicv aicw aicx aicy aicz aida aidb aidc aidd
-aide aidf aidg aidh aidi aidj aidk aidl aidm aidn aido aidp aidq aidr aids
-aidt aidu aidv aidw aidx aidy aidz aiea aieb aiec aied aiee aief aieg aieh
-aiei aiej aiek aiel aiem aien aieo aiep aieq aier aies aiet aieu aiev aiew
-aiex aiey aiez aifa aifb aifc aifd aife aiff aifg aifh aifi aifj aifk aifl
-aifm aifn aifo aifp aifq aifr aifs aift aifu aifv aifw aifx aify aifz aiga
-aigb aigc aigd aige aigf aigg aigh aigi aigj aigk aigl aigm aign aigo aigp
-aigq aigr aigs aigt aigu aigv aigw aigx aigy aigz aiha aihb aihc aihd aihe
-aihf aihg aihh aihi aihj aihk aihl aihm aihn aiho aihp aihq aihr aihs aiht
-aihu aihv aihw aihx aihy aihz aiia aiib aiic aiid aiie aiif aiig aiih aiii
-aiij aiik aiil aiim aiin aiio aiip aiiq aiir aiis aiit aiiu aiiv aiiw aiix
-aiiy aiiz aija aijb aijc aijd aije aijf aijg aijh aiji aijj aijk aijl aijm
-aijn aijo aijp aijq aijr aijs aijt aiju aijv aijw aijx aijy aijz aika aikb
-aikc aikd aike aikf aikg aikh aiki aikj aikk aikl aikm aikn aiko aikp aikq
-aikr aiks aikt aiku aikv aikw aikx aiky aikz aila ailb ailc aild aile ailf
-ailg ailh aili ailj ailk aill ailm ailn ailo ailp ailq ailr ails ailt ailu
-ailv ailw ailx aily ailz aima aimb aimc aimd aime aimf aimg aimh aimi aimj
-aimk aiml aimm aimn aimo aimp aimq aimr aims aimt aimu aimv aimw aimx aimy
-aimz aina ainb ainc aind aine ainf aing ainh aini ainj aink ainl ainm ainn
-aino ainp ainq ainr ains aint ainu ainv ainw ainx ainy ainz aioa aiob aioc
-aiod aioe aiof aiog aioh aioi aioj aiok aiol aiom aion aioo aiop aioq aior
-aios aiot aiou aiov aiow aiox aioy aioz aipa aipb aipc aipd aipe aipf aipg
-aiph aipi aipj aipk aipl aipm aipn aipo aipp aipq aipr aips aipt aipu aipv
-aipw aipx aipy aipz aiqa aiqb aiqc aiqd aiqe aiqf aiqg aiqh aiqi aiqj aiqk
-aiql aiqm aiqn aiqo aiqp aiqq aiqr aiqs aiqt aiqu aiqv aiqw aiqx aiqy aiqz
-aira airb airc aird aire airf airg airh airi airj airk airl airm airn airo
-airp airq airr airs airt airu airv airw airx airy airz aisa aisb aisc aisd
-aise aisf aisg aish aisi aisj aisk aisl aism aisn aiso aisp aisq aisr aiss
-aist aisu aisv aisw aisx aisy aisz aita aitb aitc aitd aite aitf aitg aith
-aiti aitj aitk aitl aitm aitn aito aitp aitq aitr aits aitt aitu aitv aitw
-aitx aity aitz aiua aiub aiuc aiud aiue aiuf aiug aiuh aiui aiuj aiuk aiul
-aium aiun aiuo aiup aiuq aiur aius aiut aiuu aiuv aiuw aiux aiuy aiuz aiva
-aivb aivc aivd aive aivf aivg aivh aivi aivj aivk aivl aivm aivn aivo aivp
-aivq aivr aivs aivt aivu aivv aivw aivx aivy aivz aiwa aiwb aiwc aiwd aiwe
-aiwf aiwg aiwh aiwi aiwj aiwk aiwl aiwm aiwn aiwo aiwp aiwq aiwr aiws aiwt
-aiwu aiwv aiww aiwx aiwy aiwz aixa aixb aixc aixd aixe aixf aixg aixh aixi
-aixj aixk aixl aixm aixn aixo aixp aixq aixr aixs aixt aixu aixv aixw aixx
-aixy aixz aiya aiyb aiyc aiyd aiye aiyf aiyg aiyh aiyi aiyj aiyk aiyl aiym
-aiyn aiyo aiyp aiyq aiyr aiys aiyt aiyu aiyv aiyw aiyx aiyy aiyz aiza aizb
-aizc aizd aize aizf aizg aizh aizi aizj aizk aizl aizm aizn aizo aizp aizq
-aizr aizs aizt aizu aizv aizw aizx aizy aizz ajaa ajab ajac ajad ajae ajaf
-ajag ajah ajai ajaj ajak ajal ajam ajan ajao ajap ajaq ajar ajas ajat ajau
-ajav ajaw ajax ajay ajaz ajba ajbb ajbc ajbd ajbe ajbf ajbg ajbh ajbi ajbj
-ajbk ajbl ajbm ajbn ajbo ajbp ajbq ajbr ajbs ajbt ajbu ajbv ajbw ajbx ajby
-ajbz ajca ajcb ajcc ajcd ajce ajcf ajcg ajch ajci ajcj ajck ajcl ajcm ajcn
-ajco ajcp ajcq ajcr ajcs ajct ajcu ajcv ajcw ajcx ajcy ajcz ajda ajdb ajdc
-ajdd ajde ajdf ajdg ajdh ajdi ajdj ajdk ajdl ajdm ajdn ajdo ajdp ajdq ajdr
-ajds ajdt ajdu ajdv ajdw ajdx ajdy ajdz ajea ajeb ajec ajed ajee ajef ajeg
-ajeh ajei ajej ajek ajel ajem ajen ajeo ajep ajeq ajer ajes ajet ajeu ajev
-ajew ajex ajey ajez ajfa ajfb ajfc ajfd ajfe ajff ajfg ajfh ajfi ajfj ajfk
-ajfl ajfm ajfn ajfo ajfp ajfq ajfr ajfs ajft ajfu ajfv ajfw ajfx ajfy ajfz
-ajga ajgb ajgc ajgd ajge ajgf ajgg ajgh ajgi ajgj ajgk ajgl ajgm ajgn ajgo
-ajgp ajgq ajgr ajgs ajgt ajgu ajgv ajgw ajgx ajgy ajgz ajha ajhb ajhc ajhd
-ajhe ajhf ajhg ajhh ajhi ajhj ajhk ajhl ajhm ajhn ajho ajhp ajhq ajhr ajhs
-ajht ajhu ajhv ajhw ajhx ajhy ajhz ajia ajib ajic ajid ajie ajif ajig ajih
-ajii ajij ajik ajil ajim ajin ajio ajip ajiq ajir ajis ajit ajiu ajiv ajiw
-ajix ajiy ajiz ajja ajjb ajjc ajjd ajje ajjf ajjg ajjh ajji ajjj ajjk ajjl
-ajjm ajjn ajjo ajjp ajjq ajjr ajjs ajjt ajju ajjv ajjw ajjx ajjy ajjz ajka
-ajkb ajkc ajkd ajke ajkf ajkg ajkh ajki ajkj ajkk ajkl ajkm ajkn ajko ajkp
-ajkq ajkr ajks ajkt ajku ajkv ajkw ajkx ajky ajkz ajla ajlb ajlc ajld ajle
-ajlf ajlg ajlh ajli ajlj ajlk ajll ajlm ajln ajlo ajlp ajlq ajlr ajls ajlt
-ajlu ajlv ajlw ajlx ajly ajlz ajma ajmb ajmc ajmd ajme ajmf ajmg ajmh ajmi
-ajmj ajmk ajml ajmm ajmn ajmo ajmp ajmq ajmr ajms ajmt ajmu ajmv ajmw ajmx
-ajmy ajmz ajna ajnb ajnc ajnd ajne ajnf ajng ajnh ajni ajnj ajnk ajnl ajnm
-ajnn ajno ajnp ajnq ajnr ajns ajnt ajnu ajnv ajnw ajnx ajny ajnz ajoa ajob
-ajoc ajod ajoe ajof ajog ajoh ajoi ajoj ajok ajol ajom ajon ajoo ajop ajoq
-ajor ajos ajot ajou ajov ajow ajox ajoy ajoz ajpa ajpb ajpc ajpd ajpe ajpf
-ajpg ajph ajpi ajpj ajpk ajpl ajpm ajpn ajpo ajpp ajpq ajpr ajps ajpt ajpu
-ajpv ajpw ajpx ajpy ajpz ajqa ajqb ajqc ajqd ajqe ajqf ajqg ajqh ajqi ajqj
-ajqk ajql ajqm ajqn ajqo ajqp ajqq ajqr ajqs ajqt ajqu ajqv ajqw ajqx ajqy
-ajqz ajra ajrb ajrc ajrd ajre ajrf ajrg ajrh ajri ajrj ajrk ajrl ajrm ajrn
-ajro ajrp ajrq ajrr ajrs ajrt ajru ajrv ajrw ajrx ajry ajrz ajsa ajsb ajsc
-ajsd ajse ajsf ajsg ajsh ajsi ajsj ajsk ajsl ajsm ajsn ajso ajsp ajsq ajsr
-ajss ajst ajsu ajsv ajsw ajsx ajsy ajsz ajta ajtb ajtc ajtd ajte ajtf ajtg
-ajth ajti ajtj ajtk ajtl ajtm ajtn ajto ajtp ajtq ajtr ajts ajtt ajtu ajtv
-ajtw ajtx ajty ajtz ajua ajub ajuc ajud ajue ajuf ajug ajuh ajui ajuj ajuk
-ajul ajum ajun ajuo ajup ajuq ajur ajus ajut ajuu ajuv ajuw ajux ajuy ajuz
-ajva ajvb ajvc ajvd ajve ajvf ajvg ajvh ajvi ajvj ajvk ajvl ajvm ajvn ajvo
-ajvp ajvq ajvr ajvs ajvt ajvu ajvv ajvw ajvx ajvy ajvz ajwa ajwb ajwc ajwd
-ajwe ajwf ajwg ajwh ajwi ajwj ajwk ajwl ajwm ajwn ajwo ajwp ajwq ajwr ajws
-ajwt ajwu ajwv ajww ajwx ajwy ajwz ajxa ajxb ajxc ajxd ajxe ajxf ajxg ajxh
-ajxi ajxj ajxk ajxl ajxm ajxn ajxo ajxp ajxq ajxr ajxs ajxt ajxu ajxv ajxw
-ajxx ajxy ajxz ajya ajyb ajyc ajyd ajye ajyf ajyg ajyh ajyi ajyj ajyk ajyl
-ajym ajyn ajyo ajyp ajyq ajyr ajys ajyt ajyu ajyv ajyw ajyx ajyy ajyz ajza
-ajzb ajzc ajzd ajze ajzf ajzg ajzh ajzi ajzj ajzk ajzl ajzm ajzn ajzo ajzp
-ajzq ajzr ajzs ajzt ajzu ajzv ajzw ajzx ajzy ajzz akaa akab akac akad akae
-akaf akag akah akai akaj akak akal akam akan akao akap akaq akar akas akat
-akau akav akaw akax akay akaz akba akbb akbc akbd akbe akbf akbg akbh akbi
-akbj akbk akbl akbm akbn akbo akbp akbq akbr akbs akbt akbu akbv akbw akbx
-akby akbz akca akcb akcc akcd akce akcf akcg akch akci akcj akck akcl akcm
-akcn akco akcp akcq akcr akcs akct akcu akcv akcw akcx akcy akcz akda akdb
-akdc akdd akde akdf akdg akdh akdi akdj akdk akdl akdm akdn akdo akdp akdq
-akdr akds akdt akdu akdv akdw akdx akdy akdz akea akeb akec aked akee akef
-akeg akeh akei akej akek akel akem aken akeo akep akeq aker akes aket akeu
-akev akew akex akey akez akfa akfb akfc akfd akfe akff akfg akfh akfi akfj
-akfk akfl akfm akfn akfo akfp akfq akfr akfs akft akfu akfv akfw akfx akfy
-akfz akga akgb akgc akgd akge akgf akgg akgh akgi akgj akgk akgl akgm akgn
-akgo akgp akgq akgr akgs akgt akgu akgv akgw akgx akgy akgz akha akhb akhc
-akhd akhe akhf akhg akhh akhi akhj akhk akhl akhm akhn akho akhp akhq akhr
-akhs akht akhu akhv akhw akhx akhy akhz akia akib akic akid akie akif akig
-akih akii akij akik akil akim akin akio akip akiq akir akis akit akiu akiv
-akiw akix akiy akiz akja akjb akjc akjd akje akjf akjg akjh akji akjj akjk
-akjl akjm akjn akjo akjp akjq akjr akjs akjt akju akjv akjw akjx akjy akjz
-akka akkb akkc akkd akke akkf akkg akkh akki akkj akkk akkl akkm akkn akko
-akkp akkq akkr akks akkt akku akkv akkw akkx akky akkz akla aklb aklc akld
-akle aklf aklg aklh akli aklj aklk akll aklm akln aklo aklp aklq aklr akls
-aklt aklu aklv aklw aklx akly aklz akma akmb akmc akmd akme akmf akmg akmh
-akmi akmj akmk akml akmm akmn akmo akmp akmq akmr akms akmt akmu akmv akmw
-akmx akmy akmz akna aknb aknc aknd akne aknf akng aknh akni aknj aknk aknl
-aknm aknn akno aknp aknq aknr akns aknt aknu aknv aknw aknx akny aknz akoa
-akob akoc akod akoe akof akog akoh akoi akoj akok akol akom akon akoo akop
-akoq akor akos akot akou akov akow akox akoy akoz akpa akpb akpc akpd akpe
-akpf akpg akph akpi akpj akpk akpl akpm akpn akpo akpp akpq akpr akps akpt
-akpu akpv akpw akpx akpy akpz akqa akqb akqc akqd akqe akqf akqg akqh akqi
-akqj akqk akql akqm akqn akqo akqp akqq akqr akqs akqt akqu akqv akqw akqx
-akqy akqz akra akrb akrc akrd akre akrf akrg akrh akri akrj akrk akrl akrm
-akrn akro akrp akrq akrr akrs akrt akru akrv akrw akrx akry akrz aksa aksb
-aksc aksd akse aksf aksg aksh aksi aksj aksk aksl aksm aksn akso aksp aksq
-aksr akss akst aksu aksv aksw aksx aksy aksz akta aktb aktc aktd akte aktf
-aktg akth akti aktj aktk aktl aktm aktn akto aktp aktq aktr akts aktt aktu
-aktv aktw aktx akty aktz akua akub akuc akud akue akuf akug akuh akui akuj
-akuk akul akum akun akuo akup akuq akur akus akut akuu akuv akuw akux akuy
-akuz akva akvb akvc akvd akve akvf akvg akvh akvi akvj akvk akvl akvm akvn
-akvo akvp akvq akvr akvs akvt akvu akvv akvw akvx akvy akvz akwa akwb akwc
-akwd akwe akwf akwg akwh akwi akwj akwk akwl akwm akwn akwo akwp akwq akwr
-akws akwt akwu akwv akww akwx akwy akwz akxa akxb akxc akxd akxe akxf akxg
-akxh akxi akxj akxk akxl akxm akxn akxo akxp akxq akxr akxs akxt akxu akxv
-akxw akxx akxy akxz akya akyb akyc akyd akye akyf akyg akyh akyi akyj akyk
-akyl akym akyn akyo akyp akyq akyr akys akyt akyu akyv akyw akyx akyy akyz
-akza akzb akzc akzd akze akzf akzg akzh akzi akzj akzk akzl akzm akzn akzo
-akzp akzq akzr akzs akzt akzu akzv akzw akzx akzy akzz alaa alab alac alad
-alae alaf alag alah alai alaj alak alal alam alan alao alap alaq alar alas
-alat alau alav alaw alax alay alaz alba albb albc albd albe albf albg albh
-albi albj albk albl albm albn albo albp albq albr albs albt albu albv albw
diff --git a/camlp4/test/fixtures/idents2 b/camlp4/test/fixtures/idents2
deleted file mode 100644 (file)
index ef07f3e..0000000
+++ /dev/null
@@ -1,1219 +0,0 @@
-aaaa aaab aaac aaad aaae aaaf aaag aaah aaai aaaj aaak aaal aaam aaan aaao
-aaap aaaq aaar aaas aaat aaau aaav aaaw aaax aaay aaaz aaba aabb aabc aabd
-aabe aabf aabg aabh aabi aabj aabk aabl aabm aabn aabo aabp aabq aabr aabs
-aabt aabu aabv aabw aabx aaby aabz aaca aacb aacc aacd aace aacf aacg aach
-aaci aacj aack aacl aacm aacn aaco aacp aacq aacr aacs aact aacu aacv aacw
-aacx aacy aacz aada aadb aadc aadd aade aadf aadg aadh aadi aadj aadk aadl
-aadm aadn aado aadp aadq aadr aads aadt aadu aadv aadw aadx aady aadz aaea
-aaeb aaec aaed aaee aaef aaeg aaeh aaei aaej aaek aael aaem aaen aaeo aaep
-aaeq aaer aaes aaet aaeu aaev aaew aaex aaey aaez aafa aafb aafc aafd aafe
-aaff aafg aafh aafi aafj aafk aafl aafm aafn aafo aafp aafq aafr aafs aaft
-aafu aafv aafw aafx aafy aafz aaga aagb aagc aagd aage aagf aagg aagh aagi
-aagj aagk aagl aagm aagn aago aagp aagq aagr aags aagt aagu aagv aagw aagx
-aagy aagz aaha aahb aahc aahd aahe aahf aahg aahh aahi aahj aahk aahl aahm
-aahn aaho aahp aahq aahr aahs aaht aahu aahv aahw aahx aahy aahz aaia aaib
-aaic aaid aaie aaif aaig aaih aaii aaij aaik aail aaim aain aaio aaip aaiq
-aair aais aait aaiu aaiv aaiw aaix aaiy aaiz aaja aajb aajc aajd aaje aajf
-aajg aajh aaji aajj aajk aajl aajm aajn aajo aajp aajq aajr aajs aajt aaju
-aajv aajw aajx aajy aajz aaka aakb aakc aakd aake aakf aakg aakh aaki aakj
-aakk aakl aakm aakn aako aakp aakq aakr aaks aakt aaku aakv aakw aakx aaky
-aakz aala aalb aalc aald aale aalf aalg aalh aali aalj aalk aall aalm aaln
-aalo aalp aalq aalr aals aalt aalu aalv aalw aalx aaly aalz aama aamb aamc
-aamd aame aamf aamg aamh aami aamj aamk aaml aamm aamn aamo aamp aamq aamr
-aams aamt aamu aamv aamw aamx aamy aamz aana aanb aanc aand aane aanf aang
-aanh aani aanj aank aanl aanm aann aano aanp aanq aanr aans aant aanu aanv
-aanw aanx aany aanz aaoa aaob aaoc aaod aaoe aaof aaog aaoh aaoi aaoj aaok
-aaol aaom aaon aaoo aaop aaoq aaor aaos aaot aaou aaov aaow aaox aaoy aaoz
-aapa aapb aapc aapd aape aapf aapg aaph aapi aapj aapk aapl aapm aapn aapo
-aapp aapq aapr aaps aapt aapu aapv aapw aapx aapy aapz aaqa aaqb aaqc aaqd
-aaqe aaqf aaqg aaqh aaqi aaqj aaqk aaql aaqm aaqn aaqo aaqp aaqq aaqr aaqs
-aaqt aaqu aaqv aaqw aaqx aaqy aaqz aara aarb aarc aard aare aarf aarg aarh
-aari aarj aark aarl aarm aarn aaro aarp aarq aarr aars aart aaru aarv aarw
-aarx aary aarz aasa aasb aasc aasd aase aasf aasg aash aasi aasj aask aasl
-aasm aasn aaso aasp aasq aasr aass aast aasu aasv aasw aasx aasy aasz aata
-aatb aatc aatd aate aatf aatg aath aati aatj aatk aatl aatm aatn aato aatp
-aatq aatr aats aatt aatu aatv aatw aatx aaty aatz aaua aaub aauc aaud aaue
-aauf aaug aauh aaui aauj aauk aaul aaum aaun aauo aaup aauq aaur aaus aaut
-aauu aauv aauw aaux aauy aauz aava aavb aavc aavd aave aavf aavg aavh aavi
-aavj aavk aavl aavm aavn aavo aavp aavq aavr aavs aavt aavu aavv aavw aavx
-aavy aavz aawa aawb aawc aawd aawe aawf aawg aawh aawi aawj aawk aawl aawm
-aawn aawo aawp aawq aawr aaws aawt aawu aawv aaww aawx aawy aawz aaxa aaxb
-aaxc aaxd aaxe aaxf aaxg aaxh aaxi aaxj aaxk aaxl aaxm aaxn aaxo aaxp aaxq
-aaxr aaxs aaxt aaxu aaxv aaxw aaxx aaxy aaxz aaya aayb aayc aayd aaye aayf
-aayg aayh aayi aayj aayk aayl aaym aayn aayo aayp aayq aayr aays aayt aayu
-aayv aayw aayx aayy aayz aaza aazb aazc aazd aaze aazf aazg aazh aazi aazj
-aazk aazl aazm aazn aazo aazp aazq aazr aazs aazt aazu aazv aazw aazx aazy
-aazz abaa abab abac abad abae abaf abag abah abai abaj abak abal abam aban
-abao abap abaq abar abas abat abau abav abaw abax abay abaz abba abbb abbc
-abbd abbe abbf abbg abbh abbi abbj abbk abbl abbm abbn abbo abbp abbq abbr
-abbs abbt abbu abbv abbw abbx abby abbz abca abcb abcc abcd abce abcf abcg
-abch abci abcj abck abcl abcm abcn abco abcp abcq abcr abcs abct abcu abcv
-abcw abcx abcy abcz abda abdb abdc abdd abde abdf abdg abdh abdi abdj abdk
-abdl abdm abdn abdo abdp abdq abdr abds abdt abdu abdv abdw abdx abdy abdz
-abea abeb abec abed abee abef abeg abeh abei abej abek abel abem aben abeo
-abep abeq aber abes abet abeu abev abew abex abey abez abfa abfb abfc abfd
-abfe abff abfg abfh abfi abfj abfk abfl abfm abfn abfo abfp abfq abfr abfs
-abft abfu abfv abfw abfx abfy abfz abga abgb abgc abgd abge abgf abgg abgh
-abgi abgj abgk abgl abgm abgn abgo abgp abgq abgr abgs abgt abgu abgv abgw
-abgx abgy abgz abha abhb abhc abhd abhe abhf abhg abhh abhi abhj abhk abhl
-abhm abhn abho abhp abhq abhr abhs abht abhu abhv abhw abhx abhy abhz abia
-abib abic abid abie abif abig abih abii abij abik abil abim abin abio abip
-abiq abir abis abit abiu abiv abiw abix abiy abiz abja abjb abjc abjd abje
-abjf abjg abjh abji abjj abjk abjl abjm abjn abjo abjp abjq abjr abjs abjt
-abju abjv abjw abjx abjy abjz abka abkb abkc abkd abke abkf abkg abkh abki
-abkj abkk abkl abkm abkn abko abkp abkq abkr abks abkt abku abkv abkw abkx
-abky abkz abla ablb ablc abld able ablf ablg ablh abli ablj ablk abll ablm
-abln ablo ablp ablq ablr abls ablt ablu ablv ablw ablx ably ablz abma abmb
-abmc abmd abme abmf abmg abmh abmi abmj abmk abml abmm abmn abmo abmp abmq
-abmr abms abmt abmu abmv abmw abmx abmy abmz abna abnb abnc abnd abne abnf
-abng abnh abni abnj abnk abnl abnm abnn abno abnp abnq abnr abns abnt abnu
-abnv abnw abnx abny abnz aboa abob aboc abod aboe abof abog aboh aboi aboj
-abok abol abom abon aboo abop aboq abor abos abot abou abov abow abox aboy
-aboz abpa abpb abpc abpd abpe abpf abpg abph abpi abpj abpk abpl abpm abpn
-abpo abpp abpq abpr abps abpt abpu abpv abpw abpx abpy abpz abqa abqb abqc
-abqd abqe abqf abqg abqh abqi abqj abqk abql abqm abqn abqo abqp abqq abqr
-abqs abqt abqu abqv abqw abqx abqy abqz abra abrb abrc abrd abre abrf abrg
-abrh abri abrj abrk abrl abrm abrn abro abrp abrq abrr abrs abrt abru abrv
-abrw abrx abry abrz absa absb absc absd abse absf absg absh absi absj absk
-absl absm absn abso absp absq absr abss abst absu absv absw absx absy absz
-abta abtb abtc abtd abte abtf abtg abth abti abtj abtk abtl abtm abtn abto
-abtp abtq abtr abts abtt abtu abtv abtw abtx abty abtz abua abub abuc abud
-abue abuf abug abuh abui abuj abuk abul abum abun abuo abup abuq abur abus
-abut abuu abuv abuw abux abuy abuz abva abvb abvc abvd abve abvf abvg abvh
-abvi abvj abvk abvl abvm abvn abvo abvp abvq abvr abvs abvt abvu abvv abvw
-abvx abvy abvz abwa abwb abwc abwd abwe abwf abwg abwh abwi abwj abwk abwl
-abwm abwn abwo abwp abwq abwr abws abwt abwu abwv abww abwx abwy abwz abxa
-abxb abxc abxd abxe abxf abxg abxh abxi abxj abxk abxl abxm abxn abxo abxp
-abxq abxr abxs abxt abxu abxv abxw abxx abxy abxz abya abyb abyc abyd abye
-abyf abyg abyh abyi abyj abyk abyl abym abyn abyo abyp abyq abyr abys abyt
-abyu abyv abyw abyx abyy abyz abza abzb abzc abzd abze abzf abzg abzh abzi
-abzj abzk abzl abzm abzn abzo abzp abzq abzr abzs abzt abzu abzv abzw abzx
-abzy abzz acaa acab acac acad acae acaf acag acah acai acaj acak acal acam
-acan acao acap acaq acar acas acat acau acav acaw acax acay acaz acba acbb
-acbc acbd acbe acbf acbg acbh acbi acbj acbk acbl acbm acbn acbo acbp acbq
-acbr acbs acbt acbu acbv acbw acbx acby acbz acca accb accc accd acce accf
-accg acch acci accj acck accl accm accn acco accp accq accr accs acct accu
-accv accw accx accy accz acda acdb acdc acdd acde acdf acdg acdh acdi acdj
-acdk acdl acdm acdn acdo acdp acdq acdr acds acdt acdu acdv acdw acdx acdy
-acdz acea aceb acec aced acee acef aceg aceh acei acej acek acel acem acen
-aceo acep aceq acer aces acet aceu acev acew acex acey acez acfa acfb acfc
-acfd acfe acff acfg acfh acfi acfj acfk acfl acfm acfn acfo acfp acfq acfr
-acfs acft acfu acfv acfw acfx acfy acfz acga acgb acgc acgd acge acgf acgg
-acgh acgi acgj acgk acgl acgm acgn acgo acgp acgq acgr acgs acgt acgu acgv
-acgw acgx acgy acgz acha achb achc achd ache achf achg achh achi achj achk
-achl achm achn acho achp achq achr achs acht achu achv achw achx achy achz
-acia acib acic acid acie acif acig acih acii acij acik acil acim acin acio
-acip aciq acir acis acit aciu aciv aciw acix aciy aciz acja acjb acjc acjd
-acje acjf acjg acjh acji acjj acjk acjl acjm acjn acjo acjp acjq acjr acjs
-acjt acju acjv acjw acjx acjy acjz acka ackb ackc ackd acke ackf ackg ackh
-acki ackj ackk ackl ackm ackn acko ackp ackq ackr acks ackt acku ackv ackw
-ackx acky ackz acla aclb aclc acld acle aclf aclg aclh acli aclj aclk acll
-aclm acln aclo aclp aclq aclr acls aclt aclu aclv aclw aclx acly aclz acma
-acmb acmc acmd acme acmf acmg acmh acmi acmj acmk acml acmm acmn acmo acmp
-acmq acmr acms acmt acmu acmv acmw acmx acmy acmz acna acnb acnc acnd acne
-acnf acng acnh acni acnj acnk acnl acnm acnn acno acnp acnq acnr acns acnt
-acnu acnv acnw acnx acny acnz acoa acob acoc acod acoe acof acog acoh acoi
-acoj acok acol acom acon acoo acop acoq acor acos acot acou acov acow acox
-acoy acoz acpa acpb acpc acpd acpe acpf acpg acph acpi acpj acpk acpl acpm
-acpn acpo acpp acpq acpr acps acpt acpu acpv acpw acpx acpy acpz acqa acqb
-acqc acqd acqe acqf acqg acqh acqi acqj acqk acql acqm acqn acqo acqp acqq
-acqr acqs acqt acqu acqv acqw acqx acqy acqz acra acrb acrc acrd acre acrf
-acrg acrh acri acrj acrk acrl acrm acrn acro acrp acrq acrr acrs acrt acru
-acrv acrw acrx acry acrz acsa acsb acsc acsd acse acsf acsg acsh acsi acsj
-acsk acsl acsm acsn acso acsp acsq acsr acss acst acsu acsv acsw acsx acsy
-acsz acta actb actc actd acte actf actg acth acti actj actk actl actm actn
-acto actp actq actr acts actt actu actv actw actx acty actz acua acub acuc
-acud acue acuf acug acuh acui acuj acuk acul acum acun acuo acup acuq acur
-acus acut acuu acuv acuw acux acuy acuz acva acvb acvc acvd acve acvf acvg
-acvh acvi acvj acvk acvl acvm acvn acvo acvp acvq acvr acvs acvt acvu acvv
-acvw acvx acvy acvz acwa acwb acwc acwd acwe acwf acwg acwh acwi acwj acwk
-acwl acwm acwn acwo acwp acwq acwr acws acwt acwu acwv acww acwx acwy acwz
-acxa acxb acxc acxd acxe acxf acxg acxh acxi acxj acxk acxl acxm acxn acxo
-acxp acxq acxr acxs acxt acxu acxv acxw acxx acxy acxz acya acyb acyc acyd
-acye acyf acyg acyh acyi acyj acyk acyl acym acyn acyo acyp acyq acyr acys
-acyt acyu acyv acyw acyx acyy acyz acza aczb aczc aczd acze aczf aczg aczh
-aczi aczj aczk aczl aczm aczn aczo aczp aczq aczr aczs aczt aczu aczv aczw
-aczx aczy aczz adaa adab adac adad adae adaf adag adah adai adaj adak adal
-adam adan adao adap adaq adar adas adat adau adav adaw adax aday adaz adba
-adbb adbc adbd adbe adbf adbg adbh adbi adbj adbk adbl adbm adbn adbo adbp
-adbq adbr adbs adbt adbu adbv adbw adbx adby adbz adca adcb adcc adcd adce
-adcf adcg adch adci adcj adck adcl adcm adcn adco adcp adcq adcr adcs adct
-adcu adcv adcw adcx adcy adcz adda addb addc addd adde addf addg addh addi
-addj addk addl addm addn addo addp addq addr adds addt addu addv addw addx
-addy addz adea adeb adec aded adee adef adeg adeh adei adej adek adel adem
-aden adeo adep adeq ader ades adet adeu adev adew adex adey adez adfa adfb
-adfc adfd adfe adff adfg adfh adfi adfj adfk adfl adfm adfn adfo adfp adfq
-adfr adfs adft adfu adfv adfw adfx adfy adfz adga adgb adgc adgd adge adgf
-adgg adgh adgi adgj adgk adgl adgm adgn adgo adgp adgq adgr adgs adgt adgu
-adgv adgw adgx adgy adgz adha adhb adhc adhd adhe adhf adhg adhh adhi adhj
-adhk adhl adhm adhn adho adhp adhq adhr adhs adht adhu adhv adhw adhx adhy
-adhz adia adib adic adid adie adif adig adih adii adij adik adil adim adin
-adio adip adiq adir adis adit adiu adiv adiw adix adiy adiz adja adjb adjc
-adjd adje adjf adjg adjh adji adjj adjk adjl adjm adjn adjo adjp adjq adjr
-adjs adjt adju adjv adjw adjx adjy adjz adka adkb adkc adkd adke adkf adkg
-adkh adki adkj adkk adkl adkm adkn adko adkp adkq adkr adks adkt adku adkv
-adkw adkx adky adkz adla adlb adlc adld adle adlf adlg adlh adli adlj adlk
-adll adlm adln adlo adlp adlq adlr adls adlt adlu adlv adlw adlx adly adlz
-adma admb admc admd adme admf admg admh admi admj admk adml admm admn admo
-admp admq admr adms admt admu admv admw admx admy admz adna adnb adnc adnd
-adne adnf adng adnh adni adnj adnk adnl adnm adnn adno adnp adnq adnr adns
-adnt adnu adnv adnw adnx adny adnz adoa adob adoc adod adoe adof adog adoh
-adoi adoj adok adol adom adon adoo adop adoq ador ados adot adou adov adow
-adox adoy adoz adpa adpb adpc adpd adpe adpf adpg adph adpi adpj adpk adpl
-adpm adpn adpo adpp adpq adpr adps adpt adpu adpv adpw adpx adpy adpz adqa
-adqb adqc adqd adqe adqf adqg adqh adqi adqj adqk adql adqm adqn adqo adqp
-adqq adqr adqs adqt adqu adqv adqw adqx adqy adqz adra adrb adrc adrd adre
-adrf adrg adrh adri adrj adrk adrl adrm adrn adro adrp adrq adrr adrs adrt
-adru adrv adrw adrx adry adrz adsa adsb adsc adsd adse adsf adsg adsh adsi
-adsj adsk adsl adsm adsn adso adsp adsq adsr adss adst adsu adsv adsw adsx
-adsy adsz adta adtb adtc adtd adte adtf adtg adth adti adtj adtk adtl adtm
-adtn adto adtp adtq adtr adts adtt adtu adtv adtw adtx adty adtz adua adub
-aduc adud adue aduf adug aduh adui aduj aduk adul adum adun aduo adup aduq
-adur adus adut aduu aduv aduw adux aduy aduz adva advb advc advd adve advf
-advg advh advi advj advk advl advm advn advo advp advq advr advs advt advu
-advv advw advx advy advz adwa adwb adwc adwd adwe adwf adwg adwh adwi adwj
-adwk adwl adwm adwn adwo adwp adwq adwr adws adwt adwu adwv adww adwx adwy
-adwz adxa adxb adxc adxd adxe adxf adxg adxh adxi adxj adxk adxl adxm adxn
-adxo adxp adxq adxr adxs adxt adxu adxv adxw adxx adxy adxz adya adyb adyc
-adyd adye adyf adyg adyh adyi adyj adyk adyl adym adyn adyo adyp adyq adyr
-adys adyt adyu adyv adyw adyx adyy adyz adza adzb adzc adzd adze adzf adzg
-adzh adzi adzj adzk adzl adzm adzn adzo adzp adzq adzr adzs adzt adzu adzv
-adzw adzx adzy adzz aeaa aeab aeac aead aeae aeaf aeag aeah aeai aeaj aeak
-aeal aeam aean aeao aeap aeaq aear aeas aeat aeau aeav aeaw aeax aeay aeaz
-aeba aebb aebc aebd aebe aebf aebg aebh aebi aebj aebk aebl aebm aebn aebo
-aebp aebq aebr aebs aebt aebu aebv aebw aebx aeby aebz aeca aecb aecc aecd
-aece aecf aecg aech aeci aecj aeck aecl aecm aecn aeco aecp aecq aecr aecs
-aect aecu aecv aecw aecx aecy aecz aeda aedb aedc aedd aede aedf aedg aedh
-aedi aedj aedk aedl aedm aedn aedo aedp aedq aedr aeds aedt aedu aedv aedw
-aedx aedy aedz aeea aeeb aeec aeed aeee aeef aeeg aeeh aeei aeej aeek aeel
-aeem aeen aeeo aeep aeeq aeer aees aeet aeeu aeev aeew aeex aeey aeez aefa
-aefb aefc aefd aefe aeff aefg aefh aefi aefj aefk aefl aefm aefn aefo aefp
-aefq aefr aefs aeft aefu aefv aefw aefx aefy aefz aega aegb aegc aegd aege
-aegf aegg aegh aegi aegj aegk aegl aegm aegn aego aegp aegq aegr aegs aegt
-aegu aegv aegw aegx aegy aegz aeha aehb aehc aehd aehe aehf aehg aehh aehi
-aehj aehk aehl aehm aehn aeho aehp aehq aehr aehs aeht aehu aehv aehw aehx
-aehy aehz aeia aeib aeic aeid aeie aeif aeig aeih aeii aeij aeik aeil aeim
-aein aeio aeip aeiq aeir aeis aeit aeiu aeiv aeiw aeix aeiy aeiz aeja aejb
-aejc aejd aeje aejf aejg aejh aeji aejj aejk aejl aejm aejn aejo aejp aejq
-aejr aejs aejt aeju aejv aejw aejx aejy aejz aeka aekb aekc aekd aeke aekf
-aekg aekh aeki aekj aekk aekl aekm aekn aeko aekp aekq aekr aeks aekt aeku
-aekv aekw aekx aeky aekz aela aelb aelc aeld aele aelf aelg aelh aeli aelj
-aelk aell aelm aeln aelo aelp aelq aelr aels aelt aelu aelv aelw aelx aely
-aelz aema aemb aemc aemd aeme aemf aemg aemh aemi aemj aemk aeml aemm aemn
-aemo aemp aemq aemr aems aemt aemu aemv aemw aemx aemy aemz aena aenb aenc
-aend aene aenf aeng aenh aeni aenj aenk aenl aenm aenn aeno aenp aenq aenr
-aens aent aenu aenv aenw aenx aeny aenz aeoa aeob aeoc aeod aeoe aeof aeog
-aeoh aeoi aeoj aeok aeol aeom aeon aeoo aeop aeoq aeor aeos aeot aeou aeov
-aeow aeox aeoy aeoz aepa aepb aepc aepd aepe aepf aepg aeph aepi aepj aepk
-aepl aepm aepn aepo aepp aepq aepr aeps aept aepu aepv aepw aepx aepy aepz
-aeqa aeqb aeqc aeqd aeqe aeqf aeqg aeqh aeqi aeqj aeqk aeql aeqm aeqn aeqo
-aeqp aeqq aeqr aeqs aeqt aequ aeqv aeqw aeqx aeqy aeqz aera aerb aerc aerd
-aere aerf aerg aerh aeri aerj aerk aerl aerm aern aero aerp aerq aerr aers
-aert aeru aerv aerw aerx aery aerz aesa aesb aesc aesd aese aesf aesg aesh
-aesi aesj aesk aesl aesm aesn aeso aesp aesq aesr aess aest aesu aesv aesw
-aesx aesy aesz aeta aetb aetc aetd aete aetf aetg aeth aeti aetj aetk aetl
-aetm aetn aeto aetp aetq aetr aets aett aetu aetv aetw aetx aety aetz aeua
-aeub aeuc aeud aeue aeuf aeug aeuh aeui aeuj aeuk aeul aeum aeun aeuo aeup
-aeuq aeur aeus aeut aeuu aeuv aeuw aeux aeuy aeuz aeva aevb aevc aevd aeve
-aevf aevg aevh aevi aevj aevk aevl aevm aevn aevo aevp aevq aevr aevs aevt
-aevu aevv aevw aevx aevy aevz aewa aewb aewc aewd aewe aewf aewg aewh aewi
-aewj aewk aewl aewm aewn aewo aewp aewq aewr aews aewt aewu aewv aeww aewx
-aewy aewz aexa aexb aexc aexd aexe aexf aexg aexh aexi aexj aexk aexl aexm
-aexn aexo aexp aexq aexr aexs aext aexu aexv aexw aexx aexy aexz aeya aeyb
-aeyc aeyd aeye aeyf aeyg aeyh aeyi aeyj aeyk aeyl aeym aeyn aeyo aeyp aeyq
-aeyr aeys aeyt aeyu aeyv aeyw aeyx aeyy aeyz aeza aezb aezc aezd aeze aezf
-aezg aezh aezi aezj aezk aezl aezm aezn aezo aezp aezq aezr aezs aezt aezu
-aezv aezw aezx aezy aezz afaa afab afac afad afae afaf afag afah afai afaj
-afak afal afam afan afao afap afaq afar afas afat afau afav afaw afax afay
-afaz afba afbb afbc afbd afbe afbf afbg afbh afbi afbj afbk afbl afbm afbn
-afbo afbp afbq afbr afbs afbt afbu afbv afbw afbx afby afbz afca afcb afcc
-afcd afce afcf afcg afch afci afcj afck afcl afcm afcn afco afcp afcq afcr
-afcs afct afcu afcv afcw afcx afcy afcz afda afdb afdc afdd afde afdf afdg
-afdh afdi afdj afdk afdl afdm afdn afdo afdp afdq afdr afds afdt afdu afdv
-afdw afdx afdy afdz afea afeb afec afed afee afef afeg afeh afei afej afek
-afel afem afen afeo afep afeq afer afes afet afeu afev afew afex afey afez
-affa affb affc affd affe afff affg affh affi affj affk affl affm affn affo
-affp affq affr affs afft affu affv affw affx affy affz afga afgb afgc afgd
-afge afgf afgg afgh afgi afgj afgk afgl afgm afgn afgo afgp afgq afgr afgs
-afgt afgu afgv afgw afgx afgy afgz afha afhb afhc afhd afhe afhf afhg afhh
-afhi afhj afhk afhl afhm afhn afho afhp afhq afhr afhs afht afhu afhv afhw
-afhx afhy afhz afia afib afic afid afie afif afig afih afii afij afik afil
-afim afin afio afip afiq afir afis afit afiu afiv afiw afix afiy afiz afja
-afjb afjc afjd afje afjf afjg afjh afji afjj afjk afjl afjm afjn afjo afjp
-afjq afjr afjs afjt afju afjv afjw afjx afjy afjz afka afkb afkc afkd afke
-afkf afkg afkh afki afkj afkk afkl afkm afkn afko afkp afkq afkr afks afkt
-afku afkv afkw afkx afky afkz afla aflb aflc afld afle aflf aflg aflh afli
-aflj aflk afll aflm afln aflo aflp aflq aflr afls aflt aflu aflv aflw aflx
-afly aflz afma afmb afmc afmd afme afmf afmg afmh afmi afmj afmk afml afmm
-afmn afmo afmp afmq afmr afms afmt afmu afmv afmw afmx afmy afmz afna afnb
-afnc afnd afne afnf afng afnh afni afnj afnk afnl afnm afnn afno afnp afnq
-afnr afns afnt afnu afnv afnw afnx afny afnz afoa afob afoc afod afoe afof
-afog afoh afoi afoj afok afol afom afon afoo afop afoq afor afos afot afou
-afov afow afox afoy afoz afpa afpb afpc afpd afpe afpf afpg afph afpi afpj
-afpk afpl afpm afpn afpo afpp afpq afpr afps afpt afpu afpv afpw afpx afpy
-afpz afqa afqb afqc afqd afqe afqf afqg afqh afqi afqj afqk afql afqm afqn
-afqo afqp afqq afqr afqs afqt afqu afqv afqw afqx afqy afqz afra afrb afrc
-afrd afre afrf afrg afrh afri afrj afrk afrl afrm afrn afro afrp afrq afrr
-afrs afrt afru afrv afrw afrx afry afrz afsa afsb afsc afsd afse afsf afsg
-afsh afsi afsj afsk afsl afsm afsn afso afsp afsq afsr afss afst afsu afsv
-afsw afsx afsy afsz afta aftb aftc aftd afte aftf aftg afth afti aftj aftk
-aftl aftm aftn afto aftp aftq aftr afts aftt aftu aftv aftw aftx afty aftz
-afua afub afuc afud afue afuf afug afuh afui afuj afuk aful afum afun afuo
-afup afuq afur afus afut afuu afuv afuw afux afuy afuz afva afvb afvc afvd
-afve afvf afvg afvh afvi afvj afvk afvl afvm afvn afvo afvp afvq afvr afvs
-afvt afvu afvv afvw afvx afvy afvz afwa afwb afwc afwd afwe afwf afwg afwh
-afwi afwj afwk afwl afwm afwn afwo afwp afwq afwr afws afwt afwu afwv afww
-afwx afwy afwz afxa afxb afxc afxd afxe afxf afxg afxh afxi afxj afxk afxl
-afxm afxn afxo afxp afxq afxr afxs afxt afxu afxv afxw afxx afxy afxz afya
-afyb afyc afyd afye afyf afyg afyh afyi afyj afyk afyl afym afyn afyo afyp
-afyq afyr afys afyt afyu afyv afyw afyx afyy afyz afza afzb afzc afzd afze
-afzf afzg afzh afzi afzj afzk afzl afzm afzn afzo afzp afzq afzr afzs afzt
-afzu afzv afzw afzx afzy afzz agaa agab agac agad agae agaf agag agah agai
-agaj agak agal agam agan agao agap agaq agar agas agat agau agav agaw agax
-agay agaz agba agbb agbc agbd agbe agbf agbg agbh agbi agbj agbk agbl agbm
-agbn agbo agbp agbq agbr agbs agbt agbu agbv agbw agbx agby agbz agca agcb
-agcc agcd agce agcf agcg agch agci agcj agck agcl agcm agcn agco agcp agcq
-agcr agcs agct agcu agcv agcw agcx agcy agcz agda agdb agdc agdd agde agdf
-agdg agdh agdi agdj agdk agdl agdm agdn agdo agdp agdq agdr agds agdt agdu
-agdv agdw agdx agdy agdz agea ageb agec aged agee agef ageg ageh agei agej
-agek agel agem agen ageo agep ageq ager ages aget ageu agev agew agex agey
-agez agfa agfb agfc agfd agfe agff agfg agfh agfi agfj agfk agfl agfm agfn
-agfo agfp agfq agfr agfs agft agfu agfv agfw agfx agfy agfz agga aggb aggc
-aggd agge aggf aggg aggh aggi aggj aggk aggl aggm aggn aggo aggp aggq aggr
-aggs aggt aggu aggv aggw aggx aggy aggz agha aghb aghc aghd aghe aghf aghg
-aghh aghi aghj aghk aghl aghm aghn agho aghp aghq aghr aghs aght aghu aghv
-aghw aghx aghy aghz agia agib agic agid agie agif agig agih agii agij agik
-agil agim agin agio agip agiq agir agis agit agiu agiv agiw agix agiy agiz
-agja agjb agjc agjd agje agjf agjg agjh agji agjj agjk agjl agjm agjn agjo
-agjp agjq agjr agjs agjt agju agjv agjw agjx agjy agjz agka agkb agkc agkd
-agke agkf agkg agkh agki agkj agkk agkl agkm agkn agko agkp agkq agkr agks
-agkt agku agkv agkw agkx agky agkz agla aglb aglc agld agle aglf aglg aglh
-agli aglj aglk agll aglm agln aglo aglp aglq aglr agls aglt aglu aglv aglw
-aglx agly aglz agma agmb agmc agmd agme agmf agmg agmh agmi agmj agmk agml
-agmm agmn agmo agmp agmq agmr agms agmt agmu agmv agmw agmx agmy agmz agna
-agnb agnc agnd agne agnf agng agnh agni agnj agnk agnl agnm agnn agno agnp
-agnq agnr agns agnt agnu agnv agnw agnx agny agnz agoa agob agoc agod agoe
-agof agog agoh agoi agoj agok agol agom agon agoo agop agoq agor agos agot
-agou agov agow agox agoy agoz agpa agpb agpc agpd agpe agpf agpg agph agpi
-agpj agpk agpl agpm agpn agpo agpp agpq agpr agps agpt agpu agpv agpw agpx
-agpy agpz agqa agqb agqc agqd agqe agqf agqg agqh agqi agqj agqk agql agqm
-agqn agqo agqp agqq agqr agqs agqt agqu agqv agqw agqx agqy agqz agra agrb
-agrc agrd agre agrf agrg agrh agri agrj agrk agrl agrm agrn agro agrp agrq
-agrr agrs agrt agru agrv agrw agrx agry agrz agsa agsb agsc agsd agse agsf
-agsg agsh agsi agsj agsk agsl agsm agsn agso agsp agsq agsr agss agst agsu
-agsv agsw agsx agsy agsz agta agtb agtc agtd agte agtf agtg agth agti agtj
-agtk agtl agtm agtn agto agtp agtq agtr agts agtt agtu agtv agtw agtx agty
-agtz agua agub aguc agud ague aguf agug aguh agui aguj aguk agul agum agun
-aguo agup aguq agur agus agut aguu aguv aguw agux aguy aguz agva agvb agvc
-agvd agve agvf agvg agvh agvi agvj agvk agvl agvm agvn agvo agvp agvq agvr
-agvs agvt agvu agvv agvw agvx agvy agvz agwa agwb agwc agwd agwe agwf agwg
-agwh agwi agwj agwk agwl agwm agwn agwo agwp agwq agwr agws agwt agwu agwv
-agww agwx agwy agwz agxa agxb agxc agxd agxe agxf agxg agxh agxi agxj agxk
-agxl agxm agxn agxo agxp agxq agxr agxs agxt agxu agxv agxw agxx agxy agxz
-agya agyb agyc agyd agye agyf agyg agyh agyi agyj agyk agyl agym agyn agyo
-agyp agyq agyr agys agyt agyu agyv agyw agyx agyy agyz agza agzb agzc agzd
-agze agzf agzg agzh agzi agzj agzk agzl agzm agzn agzo agzp agzq agzr agzs
-agzt agzu agzv agzw agzx agzy agzz ahaa ahab ahac ahad ahae ahaf ahag ahah
-ahai ahaj ahak ahal aham ahan ahao ahap ahaq ahar ahas ahat ahau ahav ahaw
-ahax ahay ahaz ahba ahbb ahbc ahbd ahbe ahbf ahbg ahbh ahbi ahbj ahbk ahbl
-ahbm ahbn ahbo ahbp ahbq ahbr ahbs ahbt ahbu ahbv ahbw ahbx ahby ahbz ahca
-ahcb ahcc ahcd ahce ahcf ahcg ahch ahci ahcj ahck ahcl ahcm ahcn ahco ahcp
-ahcq ahcr ahcs ahct ahcu ahcv ahcw ahcx ahcy ahcz ahda ahdb ahdc ahdd ahde
-ahdf ahdg ahdh ahdi ahdj ahdk ahdl ahdm ahdn ahdo ahdp ahdq ahdr ahds ahdt
-ahdu ahdv ahdw ahdx ahdy ahdz ahea aheb ahec ahed ahee ahef aheg aheh ahei
-ahej ahek ahel ahem ahen aheo ahep aheq aher ahes ahet aheu ahev ahew ahex
-ahey ahez ahfa ahfb ahfc ahfd ahfe ahff ahfg ahfh ahfi ahfj ahfk ahfl ahfm
-ahfn ahfo ahfp ahfq ahfr ahfs ahft ahfu ahfv ahfw ahfx ahfy ahfz ahga ahgb
-ahgc ahgd ahge ahgf ahgg ahgh ahgi ahgj ahgk ahgl ahgm ahgn ahgo ahgp ahgq
-ahgr ahgs ahgt ahgu ahgv ahgw ahgx ahgy ahgz ahha ahhb ahhc ahhd ahhe ahhf
-ahhg ahhh ahhi ahhj ahhk ahhl ahhm ahhn ahho ahhp ahhq ahhr ahhs ahht ahhu
-ahhv ahhw ahhx ahhy ahhz ahia ahib ahic ahid ahie ahif ahig ahih ahii ahij
-ahik ahil ahim ahin ahio ahip ahiq ahir ahis ahit ahiu ahiv ahiw ahix ahiy
-ahiz ahja ahjb ahjc ahjd ahje ahjf ahjg ahjh ahji ahjj ahjk ahjl ahjm ahjn
-ahjo ahjp ahjq ahjr ahjs ahjt ahju ahjv ahjw ahjx ahjy ahjz ahka ahkb ahkc
-ahkd ahke ahkf ahkg ahkh ahki ahkj ahkk ahkl ahkm ahkn ahko ahkp ahkq ahkr
-ahks ahkt ahku ahkv ahkw ahkx ahky ahkz ahla ahlb ahlc ahld ahle ahlf ahlg
-ahlh ahli ahlj ahlk ahll ahlm ahln ahlo ahlp ahlq ahlr ahls ahlt ahlu ahlv
-ahlw ahlx ahly ahlz ahma ahmb ahmc ahmd ahme ahmf ahmg ahmh ahmi ahmj ahmk
-ahml ahmm ahmn ahmo ahmp ahmq ahmr ahms ahmt ahmu ahmv ahmw ahmx ahmy ahmz
-ahna ahnb ahnc ahnd ahne ahnf ahng ahnh ahni ahnj ahnk ahnl ahnm ahnn ahno
-ahnp ahnq ahnr ahns ahnt ahnu ahnv ahnw ahnx ahny ahnz ahoa ahob ahoc ahod
-ahoe ahof ahog ahoh ahoi ahoj ahok ahol ahom ahon ahoo ahop ahoq ahor ahos
-ahot ahou ahov ahow ahox ahoy ahoz ahpa ahpb ahpc ahpd ahpe ahpf ahpg ahph
-ahpi ahpj ahpk ahpl ahpm ahpn ahpo ahpp ahpq ahpr ahps ahpt ahpu ahpv ahpw
-ahpx ahpy ahpz ahqa ahqb ahqc ahqd ahqe ahqf ahqg ahqh ahqi ahqj ahqk ahql
-ahqm ahqn ahqo ahqp ahqq ahqr ahqs ahqt ahqu ahqv ahqw ahqx ahqy ahqz ahra
-ahrb ahrc ahrd ahre ahrf ahrg ahrh ahri ahrj ahrk ahrl ahrm ahrn ahro ahrp
-ahrq ahrr ahrs ahrt ahru ahrv ahrw ahrx ahry ahrz ahsa ahsb ahsc ahsd ahse
-ahsf ahsg ahsh ahsi ahsj ahsk ahsl ahsm ahsn ahso ahsp ahsq ahsr ahss ahst
-ahsu ahsv ahsw ahsx ahsy ahsz ahta ahtb ahtc ahtd ahte ahtf ahtg ahth ahti
-ahtj ahtk ahtl ahtm ahtn ahto ahtp ahtq ahtr ahts ahtt ahtu ahtv ahtw ahtx
-ahty ahtz ahua ahub ahuc ahud ahue ahuf ahug ahuh ahui ahuj ahuk ahul ahum
-ahun ahuo ahup ahuq ahur ahus ahut ahuu ahuv ahuw ahux ahuy ahuz ahva ahvb
-ahvc ahvd ahve ahvf ahvg ahvh ahvi ahvj ahvk ahvl ahvm ahvn ahvo ahvp ahvq
-ahvr ahvs ahvt ahvu ahvv ahvw ahvx ahvy ahvz ahwa ahwb ahwc ahwd ahwe ahwf
-ahwg ahwh ahwi ahwj ahwk ahwl ahwm ahwn ahwo ahwp ahwq ahwr ahws ahwt ahwu
-ahwv ahww ahwx ahwy ahwz ahxa ahxb ahxc ahxd ahxe ahxf ahxg ahxh ahxi ahxj
-ahxk ahxl ahxm ahxn ahxo ahxp ahxq ahxr ahxs ahxt ahxu ahxv ahxw ahxx ahxy
-ahxz ahya ahyb ahyc ahyd ahye ahyf ahyg ahyh ahyi ahyj ahyk ahyl ahym ahyn
-ahyo ahyp ahyq ahyr ahys ahyt ahyu ahyv ahyw ahyx ahyy ahyz ahza ahzb ahzc
-ahzd ahze ahzf ahzg ahzh ahzi ahzj ahzk ahzl ahzm ahzn ahzo ahzp ahzq ahzr
-ahzs ahzt ahzu ahzv ahzw ahzx ahzy ahzz aiaa aiab aiac aiad aiae aiaf aiag
-aiah aiai aiaj aiak aial aiam aian aiao aiap aiaq aiar aias aiat aiau aiav
-aiaw aiax aiay aiaz aiba aibb aibc aibd aibe aibf aibg aibh aibi aibj aibk
-aibl aibm aibn aibo aibp aibq aibr aibs aibt aibu aibv aibw aibx aiby aibz
-aica aicb aicc aicd aice aicf aicg aich aici aicj aick aicl aicm aicn aico
-aicp aicq aicr aics aict aicu aicv aicw aicx aicy aicz aida aidb aidc aidd
-aide aidf aidg aidh aidi aidj aidk aidl aidm aidn aido aidp aidq aidr aids
-aidt aidu aidv aidw aidx aidy aidz aiea aieb aiec aied aiee aief aieg aieh
-aiei aiej aiek aiel aiem aien aieo aiep aieq aier aies aiet aieu aiev aiew
-aiex aiey aiez aifa aifb aifc aifd aife aiff aifg aifh aifi aifj aifk aifl
-aifm aifn aifo aifp aifq aifr aifs aift aifu aifv aifw aifx aify aifz aiga
-aigb aigc aigd aige aigf aigg aigh aigi aigj aigk aigl aigm aign aigo aigp
-aigq aigr aigs aigt aigu aigv aigw aigx aigy aigz aiha aihb aihc aihd aihe
-aihf aihg aihh aihi aihj aihk aihl aihm aihn aiho aihp aihq aihr aihs aiht
-aihu aihv aihw aihx aihy aihz aiia aiib aiic aiid aiie aiif aiig aiih aiii
-aiij aiik aiil aiim aiin aiio aiip aiiq aiir aiis aiit aiiu aiiv aiiw aiix
-aiiy aiiz aija aijb aijc aijd aije aijf aijg aijh aiji aijj aijk aijl aijm
-aijn aijo aijp aijq aijr aijs aijt aiju aijv aijw aijx aijy aijz aika aikb
-aikc aikd aike aikf aikg aikh aiki aikj aikk aikl aikm aikn aiko aikp aikq
-aikr aiks aikt aiku aikv aikw aikx aiky aikz aila ailb ailc aild aile ailf
-ailg ailh aili ailj ailk aill ailm ailn ailo ailp ailq ailr ails ailt ailu
-ailv ailw ailx aily ailz aima aimb aimc aimd aime aimf aimg aimh aimi aimj
-aimk aiml aimm aimn aimo aimp aimq aimr aims aimt aimu aimv aimw aimx aimy
-aimz aina ainb ainc aind aine ainf aing ainh aini ainj aink ainl ainm ainn
-aino ainp ainq ainr ains aint ainu ainv ainw ainx ainy ainz aioa aiob aioc
-aiod aioe aiof aiog aioh aioi aioj aiok aiol aiom aion aioo aiop aioq aior
-aios aiot aiou aiov aiow aiox aioy aioz aipa aipb aipc aipd aipe aipf aipg
-aiph aipi aipj aipk aipl aipm aipn aipo aipp aipq aipr aips aipt aipu aipv
-aipw aipx aipy aipz aiqa aiqb aiqc aiqd aiqe aiqf aiqg aiqh aiqi aiqj aiqk
-aiql aiqm aiqn aiqo aiqp aiqq aiqr aiqs aiqt aiqu aiqv aiqw aiqx aiqy aiqz
-aira airb airc aird aire airf airg airh airi airj airk airl airm airn airo
-airp airq airr airs airt airu airv airw airx airy airz aisa aisb aisc aisd
-aise aisf aisg aish aisi aisj aisk aisl aism aisn aiso aisp aisq aisr aiss
-aist aisu aisv aisw aisx aisy aisz aita aitb aitc aitd aite aitf aitg aith
-aiti aitj aitk aitl aitm aitn aito aitp aitq aitr aits aitt aitu aitv aitw
-aitx aity aitz aiua aiub aiuc aiud aiue aiuf aiug aiuh aiui aiuj aiuk aiul
-aium aiun aiuo aiup aiuq aiur aius aiut aiuu aiuv aiuw aiux aiuy aiuz aiva
-aivb aivc aivd aive aivf aivg aivh aivi aivj aivk aivl aivm aivn aivo aivp
-aivq aivr aivs aivt aivu aivv aivw aivx aivy aivz aiwa aiwb aiwc aiwd aiwe
-aiwf aiwg aiwh aiwi aiwj aiwk aiwl aiwm aiwn aiwo aiwp aiwq aiwr aiws aiwt
-aiwu aiwv aiww aiwx aiwy aiwz aixa aixb aixc aixd aixe aixf aixg aixh aixi
-aixj aixk aixl aixm aixn aixo aixp aixq aixr aixs aixt aixu aixv aixw aixx
-aixy aixz aiya aiyb aiyc aiyd aiye aiyf aiyg aiyh aiyi aiyj aiyk aiyl aiym
-aiyn aiyo aiyp aiyq aiyr aiys aiyt aiyu aiyv aiyw aiyx aiyy aiyz aiza aizb
-aizc aizd aize aizf aizg aizh aizi aizj aizk aizl aizm aizn aizo aizp aizq
-aizr aizs aizt aizu aizv aizw aizx aizy aizz ajaa ajab ajac ajad ajae ajaf
-ajag ajah ajai ajaj ajak ajal ajam ajan ajao ajap ajaq ajar ajas ajat ajau
-ajav ajaw ajax ajay ajaz ajba ajbb ajbc ajbd ajbe ajbf ajbg ajbh ajbi ajbj
-ajbk ajbl ajbm ajbn ajbo ajbp ajbq ajbr ajbs ajbt ajbu ajbv ajbw ajbx ajby
-ajbz ajca ajcb ajcc ajcd ajce ajcf ajcg ajch ajci ajcj ajck ajcl ajcm ajcn
-ajco ajcp ajcq ajcr ajcs ajct ajcu ajcv ajcw ajcx ajcy ajcz ajda ajdb ajdc
-ajdd ajde ajdf ajdg ajdh ajdi ajdj ajdk ajdl ajdm ajdn ajdo ajdp ajdq ajdr
-ajds ajdt ajdu ajdv ajdw ajdx ajdy ajdz ajea ajeb ajec ajed ajee ajef ajeg
-ajeh ajei ajej ajek ajel ajem ajen ajeo ajep ajeq ajer ajes ajet ajeu ajev
-ajew ajex ajey ajez ajfa ajfb ajfc ajfd ajfe ajff ajfg ajfh ajfi ajfj ajfk
-ajfl ajfm ajfn ajfo ajfp ajfq ajfr ajfs ajft ajfu ajfv ajfw ajfx ajfy ajfz
-ajga ajgb ajgc ajgd ajge ajgf ajgg ajgh ajgi ajgj ajgk ajgl ajgm ajgn ajgo
-ajgp ajgq ajgr ajgs ajgt ajgu ajgv ajgw ajgx ajgy ajgz ajha ajhb ajhc ajhd
-ajhe ajhf ajhg ajhh ajhi ajhj ajhk ajhl ajhm ajhn ajho ajhp ajhq ajhr ajhs
-ajht ajhu ajhv ajhw ajhx ajhy ajhz ajia ajib ajic ajid ajie ajif ajig ajih
-ajii ajij ajik ajil ajim ajin ajio ajip ajiq ajir ajis ajit ajiu ajiv ajiw
-ajix ajiy ajiz ajja ajjb ajjc ajjd ajje ajjf ajjg ajjh ajji ajjj ajjk ajjl
-ajjm ajjn ajjo ajjp ajjq ajjr ajjs ajjt ajju ajjv ajjw ajjx ajjy ajjz ajka
-ajkb ajkc ajkd ajke ajkf ajkg ajkh ajki ajkj ajkk ajkl ajkm ajkn ajko ajkp
-ajkq ajkr ajks ajkt ajku ajkv ajkw ajkx ajky ajkz ajla ajlb ajlc ajld ajle
-ajlf ajlg ajlh ajli ajlj ajlk ajll ajlm ajln ajlo ajlp ajlq ajlr ajls ajlt
-ajlu ajlv ajlw ajlx ajly ajlz ajma ajmb ajmc ajmd ajme ajmf ajmg ajmh ajmi
-ajmj ajmk ajml ajmm ajmn ajmo ajmp ajmq ajmr ajms ajmt ajmu ajmv ajmw ajmx
-ajmy ajmz ajna ajnb ajnc ajnd ajne ajnf ajng ajnh ajni ajnj ajnk ajnl ajnm
-ajnn ajno ajnp ajnq ajnr ajns ajnt ajnu ajnv ajnw ajnx ajny ajnz ajoa ajob
-ajoc ajod ajoe ajof ajog ajoh ajoi ajoj ajok ajol ajom ajon ajoo ajop ajoq
-ajor ajos ajot ajou ajov ajow ajox ajoy ajoz ajpa ajpb ajpc ajpd ajpe ajpf
-ajpg ajph ajpi ajpj ajpk ajpl ajpm ajpn ajpo ajpp ajpq ajpr ajps ajpt ajpu
-ajpv ajpw ajpx ajpy ajpz ajqa ajqb ajqc ajqd ajqe ajqf ajqg ajqh ajqi ajqj
-ajqk ajql ajqm ajqn ajqo ajqp ajqq ajqr ajqs ajqt ajqu ajqv ajqw ajqx ajqy
-ajqz ajra ajrb ajrc ajrd ajre ajrf ajrg ajrh ajri ajrj ajrk ajrl ajrm ajrn
-ajro ajrp ajrq ajrr ajrs ajrt ajru ajrv ajrw ajrx ajry ajrz ajsa ajsb ajsc
-ajsd ajse ajsf ajsg ajsh ajsi ajsj ajsk ajsl ajsm ajsn ajso ajsp ajsq ajsr
-ajss ajst ajsu ajsv ajsw ajsx ajsy ajsz ajta ajtb ajtc ajtd ajte ajtf ajtg
-ajth ajti ajtj ajtk ajtl ajtm ajtn ajto ajtp ajtq ajtr ajts ajtt ajtu ajtv
-ajtw ajtx ajty ajtz ajua ajub ajuc ajud ajue ajuf ajug ajuh ajui ajuj ajuk
-ajul ajum ajun ajuo ajup ajuq ajur ajus ajut ajuu ajuv ajuw ajux ajuy ajuz
-ajva ajvb ajvc ajvd ajve ajvf ajvg ajvh ajvi ajvj ajvk ajvl ajvm ajvn ajvo
-ajvp ajvq ajvr ajvs ajvt ajvu ajvv ajvw ajvx ajvy ajvz ajwa ajwb ajwc ajwd
-ajwe ajwf ajwg ajwh ajwi ajwj ajwk ajwl ajwm ajwn ajwo ajwp ajwq ajwr ajws
-ajwt ajwu ajwv ajww ajwx ajwy ajwz ajxa ajxb ajxc ajxd ajxe ajxf ajxg ajxh
-ajxi ajxj ajxk ajxl ajxm ajxn ajxo ajxp ajxq ajxr ajxs ajxt ajxu ajxv ajxw
-ajxx ajxy ajxz ajya ajyb ajyc ajyd ajye ajyf ajyg ajyh ajyi ajyj ajyk ajyl
-ajym ajyn ajyo ajyp ajyq ajyr ajys ajyt ajyu ajyv ajyw ajyx ajyy ajyz ajza
-ajzb ajzc ajzd ajze ajzf ajzg ajzh ajzi ajzj ajzk ajzl ajzm ajzn ajzo ajzp
-ajzq ajzr ajzs ajzt ajzu ajzv ajzw ajzx ajzy ajzz akaa akab akac akad akae
-akaf akag akah akai akaj akak akal akam akan akao akap akaq akar akas akat
-akau akav akaw akax akay akaz akba akbb akbc akbd akbe akbf akbg akbh akbi
-akbj akbk akbl akbm akbn akbo akbp akbq akbr akbs akbt akbu akbv akbw akbx
-akby akbz akca akcb akcc akcd akce akcf akcg akch akci akcj akck akcl akcm
-akcn akco akcp akcq akcr akcs akct akcu akcv akcw akcx akcy akcz akda akdb
-akdc akdd akde akdf akdg akdh akdi akdj akdk akdl akdm akdn akdo akdp akdq
-akdr akds akdt akdu akdv akdw akdx akdy akdz akea akeb akec aked akee akef
-akeg akeh akei akej akek akel akem aken akeo akep akeq aker akes aket akeu
-akev akew akex akey akez akfa akfb akfc akfd akfe akff akfg akfh akfi akfj
-akfk akfl akfm akfn akfo akfp akfq akfr akfs akft akfu akfv akfw akfx akfy
-akfz akga akgb akgc akgd akge akgf akgg akgh akgi akgj akgk akgl akgm akgn
-akgo akgp akgq akgr akgs akgt akgu akgv akgw akgx akgy akgz akha akhb akhc
-akhd akhe akhf akhg akhh akhi akhj akhk akhl akhm akhn akho akhp akhq akhr
-akhs akht akhu akhv akhw akhx akhy akhz akia akib akic akid akie akif akig
-akih akii akij akik akil akim akin akio akip akiq akir akis akit akiu akiv
-akiw akix akiy akiz akja akjb akjc akjd akje akjf akjg akjh akji akjj akjk
-akjl akjm akjn akjo akjp akjq akjr akjs akjt akju akjv akjw akjx akjy akjz
-akka akkb akkc akkd akke akkf akkg akkh akki akkj akkk akkl akkm akkn akko
-akkp akkq akkr akks akkt akku akkv akkw akkx akky akkz akla aklb aklc akld
-akle aklf aklg aklh akli aklj aklk akll aklm akln aklo aklp aklq aklr akls
-aklt aklu aklv aklw aklx akly aklz akma akmb akmc akmd akme akmf akmg akmh
-akmi akmj akmk akml akmm akmn akmo akmp akmq akmr akms akmt akmu akmv akmw
-akmx akmy akmz akna aknb aknc aknd akne aknf akng aknh akni aknj aknk aknl
-aknm aknn akno aknp aknq aknr akns aknt aknu aknv aknw aknx akny aknz akoa
-akob akoc akod akoe akof akog akoh akoi akoj akok akol akom akon akoo akop
-akoq akor akos akot akou akov akow akox akoy akoz akpa akpb akpc akpd akpe
-akpf akpg akph akpi akpj akpk akpl akpm akpn akpo akpp akpq akpr akps akpt
-akpu akpv akpw akpx akpy akpz akqa akqb akqc akqd akqe akqf akqg akqh akqi
-akqj akqk akql akqm akqn akqo akqp akqq akqr akqs akqt akqu akqv akqw akqx
-akqy akqz akra akrb akrc akrd akre akrf akrg akrh akri akrj akrk akrl akrm
-akrn akro akrp akrq akrr akrs akrt akru akrv akrw akrx akry akrz aksa aksb
-aksc aksd akse aksf aksg aksh aksi aksj aksk aksl aksm aksn akso aksp aksq
-aksr akss akst aksu aksv aksw aksx aksy aksz akta aktb aktc aktd akte aktf
-aktg akth akti aktj aktk aktl aktm aktn akto aktp aktq aktr akts aktt aktu
-aktv aktw aktx akty aktz akua akub akuc akud akue akuf akug akuh akui akuj
-akuk akul akum akun akuo akup akuq akur akus akut akuu akuv akuw akux akuy
-akuz akva akvb akvc akvd akve akvf akvg akvh akvi akvj akvk akvl akvm akvn
-akvo akvp akvq akvr akvs akvt akvu akvv akvw akvx akvy akvz akwa akwb akwc
-akwd akwe akwf akwg akwh akwi akwj akwk akwl akwm akwn akwo akwp akwq akwr
-akws akwt akwu akwv akww akwx akwy akwz akxa akxb akxc akxd akxe akxf akxg
-akxh akxi akxj akxk akxl akxm akxn akxo akxp akxq akxr akxs akxt akxu akxv
-akxw akxx akxy akxz akya akyb akyc akyd akye akyf akyg akyh akyi akyj akyk
-akyl akym akyn akyo akyp akyq akyr akys akyt akyu akyv akyw akyx akyy akyz
-akza akzb akzc akzd akze akzf akzg akzh akzi akzj akzk akzl akzm akzn akzo
-akzp akzq akzr akzs akzt akzu akzv akzw akzx akzy akzz alaa alab alac alad
-alae alaf alag alah alai alaj alak alal alam alan alao alap alaq alar alas
-alat alau alav alaw alax alay alaz alba albb albc albd albe albf albg albh
-albi albj albk albl albm albn albo albp albq albr albs albt albu albv albw
-albx alby albz alca alcb alcc alcd alce alcf alcg alch alci alcj alck alcl
-alcm alcn alco alcp alcq alcr alcs alct alcu alcv alcw alcx alcy alcz alda
-aldb aldc aldd alde aldf aldg aldh aldi aldj aldk aldl aldm aldn aldo aldp
-aldq aldr alds aldt aldu aldv aldw aldx aldy aldz alea aleb alec aled alee
-alef aleg aleh alei alej alek alel alem alen aleo alep aleq aler ales alet
-aleu alev alew alex aley alez alfa alfb alfc alfd alfe alff alfg alfh alfi
-alfj alfk alfl alfm alfn alfo alfp alfq alfr alfs alft alfu alfv alfw alfx
-alfy alfz alga algb algc algd alge algf algg algh algi algj algk algl algm
-algn algo algp algq algr algs algt algu algv algw algx algy algz alha alhb
-alhc alhd alhe alhf alhg alhh alhi alhj alhk alhl alhm alhn alho alhp alhq
-alhr alhs alht alhu alhv alhw alhx alhy alhz alia alib alic alid alie alif
-alig alih alii alij alik alil alim alin alio alip aliq alir alis alit aliu
-aliv aliw alix aliy aliz alja aljb aljc aljd alje aljf aljg aljh alji aljj
-aljk aljl aljm aljn aljo aljp aljq aljr aljs aljt alju aljv aljw aljx aljy
-aljz alka alkb alkc alkd alke alkf alkg alkh alki alkj alkk alkl alkm alkn
-alko alkp alkq alkr alks alkt alku alkv alkw alkx alky alkz alla allb allc
-alld alle allf allg allh alli allj allk alll allm alln allo allp allq allr
-alls allt allu allv allw allx ally allz alma almb almc almd alme almf almg
-almh almi almj almk alml almm almn almo almp almq almr alms almt almu almv
-almw almx almy almz alna alnb alnc alnd alne alnf alng alnh alni alnj alnk
-alnl alnm alnn alno alnp alnq alnr alns alnt alnu alnv alnw alnx alny alnz
-aloa alob aloc alod aloe alof alog aloh aloi aloj alok alol alom alon aloo
-alop aloq alor alos alot alou alov alow alox aloy aloz alpa alpb alpc alpd
-alpe alpf alpg alph alpi alpj alpk alpl alpm alpn alpo alpp alpq alpr alps
-alpt alpu alpv alpw alpx alpy alpz alqa alqb alqc alqd alqe alqf alqg alqh
-alqi alqj alqk alql alqm alqn alqo alqp alqq alqr alqs alqt alqu alqv alqw
-alqx alqy alqz alra alrb alrc alrd alre alrf alrg alrh alri alrj alrk alrl
-alrm alrn alro alrp alrq alrr alrs alrt alru alrv alrw alrx alry alrz alsa
-alsb alsc alsd alse alsf alsg alsh alsi alsj alsk alsl alsm alsn also alsp
-alsq alsr alss alst alsu alsv alsw alsx alsy alsz alta altb altc altd alte
-altf altg alth alti altj altk altl altm altn alto altp altq altr alts altt
-altu altv altw altx alty altz alua alub aluc alud alue aluf alug aluh alui
-aluj aluk alul alum alun aluo alup aluq alur alus alut aluu aluv aluw alux
-aluy aluz alva alvb alvc alvd alve alvf alvg alvh alvi alvj alvk alvl alvm
-alvn alvo alvp alvq alvr alvs alvt alvu alvv alvw alvx alvy alvz alwa alwb
-alwc alwd alwe alwf alwg alwh alwi alwj alwk alwl alwm alwn alwo alwp alwq
-alwr alws alwt alwu alwv alww alwx alwy alwz alxa alxb alxc alxd alxe alxf
-alxg alxh alxi alxj alxk alxl alxm alxn alxo alxp alxq alxr alxs alxt alxu
-alxv alxw alxx alxy alxz alya alyb alyc alyd alye alyf alyg alyh alyi alyj
-alyk alyl alym alyn alyo alyp alyq alyr alys alyt alyu alyv alyw alyx alyy
-alyz alza alzb alzc alzd alze alzf alzg alzh alzi alzj alzk alzl alzm alzn
-alzo alzp alzq alzr alzs alzt alzu alzv alzw alzx alzy alzz amaa amab amac
-amad amae amaf amag amah amai amaj amak amal amam aman amao amap amaq amar
-amas amat amau amav amaw amax amay amaz amba ambb ambc ambd ambe ambf ambg
-ambh ambi ambj ambk ambl ambm ambn ambo ambp ambq ambr ambs ambt ambu ambv
-ambw ambx amby ambz amca amcb amcc amcd amce amcf amcg amch amci amcj amck
-amcl amcm amcn amco amcp amcq amcr amcs amct amcu amcv amcw amcx amcy amcz
-amda amdb amdc amdd amde amdf amdg amdh amdi amdj amdk amdl amdm amdn amdo
-amdp amdq amdr amds amdt amdu amdv amdw amdx amdy amdz amea ameb amec amed
-amee amef ameg ameh amei amej amek amel amem amen ameo amep ameq amer ames
-amet ameu amev amew amex amey amez amfa amfb amfc amfd amfe amff amfg amfh
-amfi amfj amfk amfl amfm amfn amfo amfp amfq amfr amfs amft amfu amfv amfw
-amfx amfy amfz amga amgb amgc amgd amge amgf amgg amgh amgi amgj amgk amgl
-amgm amgn amgo amgp amgq amgr amgs amgt amgu amgv amgw amgx amgy amgz amha
-amhb amhc amhd amhe amhf amhg amhh amhi amhj amhk amhl amhm amhn amho amhp
-amhq amhr amhs amht amhu amhv amhw amhx amhy amhz amia amib amic amid amie
-amif amig amih amii amij amik amil amim amin amio amip amiq amir amis amit
-amiu amiv amiw amix amiy amiz amja amjb amjc amjd amje amjf amjg amjh amji
-amjj amjk amjl amjm amjn amjo amjp amjq amjr amjs amjt amju amjv amjw amjx
-amjy amjz amka amkb amkc amkd amke amkf amkg amkh amki amkj amkk amkl amkm
-amkn amko amkp amkq amkr amks amkt amku amkv amkw amkx amky amkz amla amlb
-amlc amld amle amlf amlg amlh amli amlj amlk amll amlm amln amlo amlp amlq
-amlr amls amlt amlu amlv amlw amlx amly amlz amma ammb ammc ammd amme ammf
-ammg ammh ammi ammj ammk amml ammm ammn ammo ammp ammq ammr amms ammt ammu
-ammv ammw ammx ammy ammz amna amnb amnc amnd amne amnf amng amnh amni amnj
-amnk amnl amnm amnn amno amnp amnq amnr amns amnt amnu amnv amnw amnx amny
-amnz amoa amob amoc amod amoe amof amog amoh amoi amoj amok amol amom amon
-amoo amop amoq amor amos amot amou amov amow amox amoy amoz ampa ampb ampc
-ampd ampe ampf ampg amph ampi ampj ampk ampl ampm ampn ampo ampp ampq ampr
-amps ampt ampu ampv ampw ampx ampy ampz amqa amqb amqc amqd amqe amqf amqg
-amqh amqi amqj amqk amql amqm amqn amqo amqp amqq amqr amqs amqt amqu amqv
-amqw amqx amqy amqz amra amrb amrc amrd amre amrf amrg amrh amri amrj amrk
-amrl amrm amrn amro amrp amrq amrr amrs amrt amru amrv amrw amrx amry amrz
-amsa amsb amsc amsd amse amsf amsg amsh amsi amsj amsk amsl amsm amsn amso
-amsp amsq amsr amss amst amsu amsv amsw amsx amsy amsz amta amtb amtc amtd
-amte amtf amtg amth amti amtj amtk amtl amtm amtn amto amtp amtq amtr amts
-amtt amtu amtv amtw amtx amty amtz amua amub amuc amud amue amuf amug amuh
-amui amuj amuk amul amum amun amuo amup amuq amur amus amut amuu amuv amuw
-amux amuy amuz amva amvb amvc amvd amve amvf amvg amvh amvi amvj amvk amvl
-amvm amvn amvo amvp amvq amvr amvs amvt amvu amvv amvw amvx amvy amvz amwa
-amwb amwc amwd amwe amwf amwg amwh amwi amwj amwk amwl amwm amwn amwo amwp
-amwq amwr amws amwt amwu amwv amww amwx amwy amwz amxa amxb amxc amxd amxe
-amxf amxg amxh amxi amxj amxk amxl amxm amxn amxo amxp amxq amxr amxs amxt
-amxu amxv amxw amxx amxy amxz amya amyb amyc amyd amye amyf amyg amyh amyi
-amyj amyk amyl amym amyn amyo amyp amyq amyr amys amyt amyu amyv amyw amyx
-amyy amyz amza amzb amzc amzd amze amzf amzg amzh amzi amzj amzk amzl amzm
-amzn amzo amzp amzq amzr amzs amzt amzu amzv amzw amzx amzy amzz anaa anab
-anac anad anae anaf anag anah anai anaj anak anal anam anan anao anap anaq
-anar anas anat anau anav anaw anax anay anaz anba anbb anbc anbd anbe anbf
-anbg anbh anbi anbj anbk anbl anbm anbn anbo anbp anbq anbr anbs anbt anbu
-anbv anbw anbx anby anbz anca ancb ancc ancd ance ancf ancg anch anci ancj
-anck ancl ancm ancn anco ancp ancq ancr ancs anct ancu ancv ancw ancx ancy
-ancz anda andb andc andd ande andf andg andh andi andj andk andl andm andn
-ando andp andq andr ands andt andu andv andw andx andy andz anea aneb anec
-aned anee anef aneg aneh anei anej anek anel anem anen aneo anep aneq aner
-anes anet aneu anev anew anex aney anez anfa anfb anfc anfd anfe anff anfg
-anfh anfi anfj anfk anfl anfm anfn anfo anfp anfq anfr anfs anft anfu anfv
-anfw anfx anfy anfz anga angb angc angd ange angf angg angh angi angj angk
-angl angm angn ango angp angq angr angs angt angu angv angw angx angy angz
-anha anhb anhc anhd anhe anhf anhg anhh anhi anhj anhk anhl anhm anhn anho
-anhp anhq anhr anhs anht anhu anhv anhw anhx anhy anhz ania anib anic anid
-anie anif anig anih anii anij anik anil anim anin anio anip aniq anir anis
-anit aniu aniv aniw anix aniy aniz anja anjb anjc anjd anje anjf anjg anjh
-anji anjj anjk anjl anjm anjn anjo anjp anjq anjr anjs anjt anju anjv anjw
-anjx anjy anjz anka ankb ankc ankd anke ankf ankg ankh anki ankj ankk ankl
-ankm ankn anko ankp ankq ankr anks ankt anku ankv ankw ankx anky ankz anla
-anlb anlc anld anle anlf anlg anlh anli anlj anlk anll anlm anln anlo anlp
-anlq anlr anls anlt anlu anlv anlw anlx anly anlz anma anmb anmc anmd anme
-anmf anmg anmh anmi anmj anmk anml anmm anmn anmo anmp anmq anmr anms anmt
-anmu anmv anmw anmx anmy anmz anna annb annc annd anne annf anng annh anni
-annj annk annl annm annn anno annp annq annr anns annt annu annv annw annx
-anny annz anoa anob anoc anod anoe anof anog anoh anoi anoj anok anol anom
-anon anoo anop anoq anor anos anot anou anov anow anox anoy anoz anpa anpb
-anpc anpd anpe anpf anpg anph anpi anpj anpk anpl anpm anpn anpo anpp anpq
-anpr anps anpt anpu anpv anpw anpx anpy anpz anqa anqb anqc anqd anqe anqf
-anqg anqh anqi anqj anqk anql anqm anqn anqo anqp anqq anqr anqs anqt anqu
-anqv anqw anqx anqy anqz anra anrb anrc anrd anre anrf anrg anrh anri anrj
-anrk anrl anrm anrn anro anrp anrq anrr anrs anrt anru anrv anrw anrx anry
-anrz ansa ansb ansc ansd anse ansf ansg ansh ansi ansj ansk ansl ansm ansn
-anso ansp ansq ansr anss anst ansu ansv answ ansx ansy ansz anta antb antc
-antd ante antf antg anth anti antj antk antl antm antn anto antp antq antr
-ants antt antu antv antw antx anty antz anua anub anuc anud anue anuf anug
-anuh anui anuj anuk anul anum anun anuo anup anuq anur anus anut anuu anuv
-anuw anux anuy anuz anva anvb anvc anvd anve anvf anvg anvh anvi anvj anvk
-anvl anvm anvn anvo anvp anvq anvr anvs anvt anvu anvv anvw anvx anvy anvz
-anwa anwb anwc anwd anwe anwf anwg anwh anwi anwj anwk anwl anwm anwn anwo
-anwp anwq anwr anws anwt anwu anwv anww anwx anwy anwz anxa anxb anxc anxd
-anxe anxf anxg anxh anxi anxj anxk anxl anxm anxn anxo anxp anxq anxr anxs
-anxt anxu anxv anxw anxx anxy anxz anya anyb anyc anyd anye anyf anyg anyh
-anyi anyj anyk anyl anym anyn anyo anyp anyq anyr anys anyt anyu anyv anyw
-anyx anyy anyz anza anzb anzc anzd anze anzf anzg anzh anzi anzj anzk anzl
-anzm anzn anzo anzp anzq anzr anzs anzt anzu anzv anzw anzx anzy anzz aoaa
-aoab aoac aoad aoae aoaf aoag aoah aoai aoaj aoak aoal aoam aoan aoao aoap
-aoaq aoar aoas aoat aoau aoav aoaw aoax aoay aoaz aoba aobb aobc aobd aobe
-aobf aobg aobh aobi aobj aobk aobl aobm aobn aobo aobp aobq aobr aobs aobt
-aobu aobv aobw aobx aoby aobz aoca aocb aocc aocd aoce aocf aocg aoch aoci
-aocj aock aocl aocm aocn aoco aocp aocq aocr aocs aoct aocu aocv aocw aocx
-aocy aocz aoda aodb aodc aodd aode aodf aodg aodh aodi aodj aodk aodl aodm
-aodn aodo aodp aodq aodr aods aodt aodu aodv aodw aodx aody aodz aoea aoeb
-aoec aoed aoee aoef aoeg aoeh aoei aoej aoek aoel aoem aoen aoeo aoep aoeq
-aoer aoes aoet aoeu aoev aoew aoex aoey aoez aofa aofb aofc aofd aofe aoff
-aofg aofh aofi aofj aofk aofl aofm aofn aofo aofp aofq aofr aofs aoft aofu
-aofv aofw aofx aofy aofz aoga aogb aogc aogd aoge aogf aogg aogh aogi aogj
-aogk aogl aogm aogn aogo aogp aogq aogr aogs aogt aogu aogv aogw aogx aogy
-aogz aoha aohb aohc aohd aohe aohf aohg aohh aohi aohj aohk aohl aohm aohn
-aoho aohp aohq aohr aohs aoht aohu aohv aohw aohx aohy aohz aoia aoib aoic
-aoid aoie aoif aoig aoih aoii aoij aoik aoil aoim aoin aoio aoip aoiq aoir
-aois aoit aoiu aoiv aoiw aoix aoiy aoiz aoja aojb aojc aojd aoje aojf aojg
-aojh aoji aojj aojk aojl aojm aojn aojo aojp aojq aojr aojs aojt aoju aojv
-aojw aojx aojy aojz aoka aokb aokc aokd aoke aokf aokg aokh aoki aokj aokk
-aokl aokm aokn aoko aokp aokq aokr aoks aokt aoku aokv aokw aokx aoky aokz
-aola aolb aolc aold aole aolf aolg aolh aoli aolj aolk aoll aolm aoln aolo
-aolp aolq aolr aols aolt aolu aolv aolw aolx aoly aolz aoma aomb aomc aomd
-aome aomf aomg aomh aomi aomj aomk aoml aomm aomn aomo aomp aomq aomr aoms
-aomt aomu aomv aomw aomx aomy aomz aona aonb aonc aond aone aonf aong aonh
-aoni aonj aonk aonl aonm aonn aono aonp aonq aonr aons aont aonu aonv aonw
-aonx aony aonz aooa aoob aooc aood aooe aoof aoog aooh aooi aooj aook aool
-aoom aoon aooo aoop aooq aoor aoos aoot aoou aoov aoow aoox aooy aooz aopa
-aopb aopc aopd aope aopf aopg aoph aopi aopj aopk aopl aopm aopn aopo aopp
-aopq aopr aops aopt aopu aopv aopw aopx aopy aopz aoqa aoqb aoqc aoqd aoqe
-aoqf aoqg aoqh aoqi aoqj aoqk aoql aoqm aoqn aoqo aoqp aoqq aoqr aoqs aoqt
-aoqu aoqv aoqw aoqx aoqy aoqz aora aorb aorc aord aore aorf aorg aorh aori
-aorj aork aorl aorm aorn aoro aorp aorq aorr aors aort aoru aorv aorw aorx
-aory aorz aosa aosb aosc aosd aose aosf aosg aosh aosi aosj aosk aosl aosm
-aosn aoso aosp aosq aosr aoss aost aosu aosv aosw aosx aosy aosz aota aotb
-aotc aotd aote aotf aotg aoth aoti aotj aotk aotl aotm aotn aoto aotp aotq
-aotr aots aott aotu aotv aotw aotx aoty aotz aoua aoub aouc aoud aoue aouf
-aoug aouh aoui aouj aouk aoul aoum aoun aouo aoup aouq aour aous aout aouu
-aouv aouw aoux aouy aouz aova aovb aovc aovd aove aovf aovg aovh aovi aovj
-aovk aovl aovm aovn aovo aovp aovq aovr aovs aovt aovu aovv aovw aovx aovy
-aovz aowa aowb aowc aowd aowe aowf aowg aowh aowi aowj aowk aowl aowm aown
-aowo aowp aowq aowr aows aowt aowu aowv aoww aowx aowy aowz aoxa aoxb aoxc
-aoxd aoxe aoxf aoxg aoxh aoxi aoxj aoxk aoxl aoxm aoxn aoxo aoxp aoxq aoxr
-aoxs aoxt aoxu aoxv aoxw aoxx aoxy aoxz aoya aoyb aoyc aoyd aoye aoyf aoyg
-aoyh aoyi aoyj aoyk aoyl aoym aoyn aoyo aoyp aoyq aoyr aoys aoyt aoyu aoyv
-aoyw aoyx aoyy aoyz aoza aozb aozc aozd aoze aozf aozg aozh aozi aozj aozk
-aozl aozm aozn aozo aozp aozq aozr aozs aozt aozu aozv aozw aozx aozy aozz
-apaa apab apac apad apae apaf apag apah apai apaj apak apal apam apan apao
-apap apaq apar apas apat apau apav apaw apax apay apaz apba apbb apbc apbd
-apbe apbf apbg apbh apbi apbj apbk apbl apbm apbn apbo apbp apbq apbr apbs
-apbt apbu apbv apbw apbx apby apbz apca apcb apcc apcd apce apcf apcg apch
-apci apcj apck apcl apcm apcn apco apcp apcq apcr apcs apct apcu apcv apcw
-apcx apcy apcz apda apdb apdc apdd apde apdf apdg apdh apdi apdj apdk apdl
-apdm apdn apdo apdp apdq apdr apds apdt apdu apdv apdw apdx apdy apdz apea
-apeb apec aped apee apef apeg apeh apei apej apek apel apem apen apeo apep
-apeq aper apes apet apeu apev apew apex apey apez apfa apfb apfc apfd apfe
-apff apfg apfh apfi apfj apfk apfl apfm apfn apfo apfp apfq apfr apfs apft
-apfu apfv apfw apfx apfy apfz apga apgb apgc apgd apge apgf apgg apgh apgi
-apgj apgk apgl apgm apgn apgo apgp apgq apgr apgs apgt apgu apgv apgw apgx
-apgy apgz apha aphb aphc aphd aphe aphf aphg aphh aphi aphj aphk aphl aphm
-aphn apho aphp aphq aphr aphs apht aphu aphv aphw aphx aphy aphz apia apib
-apic apid apie apif apig apih apii apij apik apil apim apin apio apip apiq
-apir apis apit apiu apiv apiw apix apiy apiz apja apjb apjc apjd apje apjf
-apjg apjh apji apjj apjk apjl apjm apjn apjo apjp apjq apjr apjs apjt apju
-apjv apjw apjx apjy apjz apka apkb apkc apkd apke apkf apkg apkh apki apkj
-apkk apkl apkm apkn apko apkp apkq apkr apks apkt apku apkv apkw apkx apky
-apkz apla aplb aplc apld aple aplf aplg aplh apli aplj aplk apll aplm apln
-aplo aplp aplq aplr apls aplt aplu aplv aplw aplx aply aplz apma apmb apmc
-apmd apme apmf apmg apmh apmi apmj apmk apml apmm apmn apmo apmp apmq apmr
-apms apmt apmu apmv apmw apmx apmy apmz apna apnb apnc apnd apne apnf apng
-apnh apni apnj apnk apnl apnm apnn apno apnp apnq apnr apns apnt apnu apnv
-apnw apnx apny apnz apoa apob apoc apod apoe apof apog apoh apoi apoj apok
-apol apom apon apoo apop apoq apor apos apot apou apov apow apox apoy apoz
-appa appb appc appd appe appf appg apph appi appj appk appl appm appn appo
-appp appq appr apps appt appu appv appw appx appy appz apqa apqb apqc apqd
-apqe apqf apqg apqh apqi apqj apqk apql apqm apqn apqo apqp apqq apqr apqs
-apqt apqu apqv apqw apqx apqy apqz apra aprb aprc aprd apre aprf aprg aprh
-apri aprj aprk aprl aprm aprn apro aprp aprq aprr aprs aprt apru aprv aprw
-aprx apry aprz apsa apsb apsc apsd apse apsf apsg apsh apsi apsj apsk apsl
-apsm apsn apso apsp apsq apsr apss apst apsu apsv apsw apsx apsy apsz apta
-aptb aptc aptd apte aptf aptg apth apti aptj aptk aptl aptm aptn apto aptp
-aptq aptr apts aptt aptu aptv aptw aptx apty aptz apua apub apuc apud apue
-apuf apug apuh apui apuj apuk apul apum apun apuo apup apuq apur apus aput
-apuu apuv apuw apux apuy apuz apva apvb apvc apvd apve apvf apvg apvh apvi
-apvj apvk apvl apvm apvn apvo apvp apvq apvr apvs apvt apvu apvv apvw apvx
-apvy apvz apwa apwb apwc apwd apwe apwf apwg apwh apwi apwj apwk apwl apwm
-apwn apwo apwp apwq apwr apws apwt apwu apwv apww apwx apwy apwz apxa apxb
-apxc apxd apxe apxf apxg apxh apxi apxj apxk apxl apxm apxn apxo apxp apxq
-apxr apxs apxt apxu apxv apxw apxx apxy apxz apya apyb apyc apyd apye apyf
-apyg apyh apyi apyj apyk apyl apym apyn apyo apyp apyq apyr apys apyt apyu
-apyv apyw apyx apyy apyz apza apzb apzc apzd apze apzf apzg apzh apzi apzj
-apzk apzl apzm apzn apzo apzp apzq apzr apzs apzt apzu apzv apzw apzx apzy
-apzz aqaa aqab aqac aqad aqae aqaf aqag aqah aqai aqaj aqak aqal aqam aqan
-aqao aqap aqaq aqar aqas aqat aqau aqav aqaw aqax aqay aqaz aqba aqbb aqbc
-aqbd aqbe aqbf aqbg aqbh aqbi aqbj aqbk aqbl aqbm aqbn aqbo aqbp aqbq aqbr
-aqbs aqbt aqbu aqbv aqbw aqbx aqby aqbz aqca aqcb aqcc aqcd aqce aqcf aqcg
-aqch aqci aqcj aqck aqcl aqcm aqcn aqco aqcp aqcq aqcr aqcs aqct aqcu aqcv
-aqcw aqcx aqcy aqcz aqda aqdb aqdc aqdd aqde aqdf aqdg aqdh aqdi aqdj aqdk
-aqdl aqdm aqdn aqdo aqdp aqdq aqdr aqds aqdt aqdu aqdv aqdw aqdx aqdy aqdz
-aqea aqeb aqec aqed aqee aqef aqeg aqeh aqei aqej aqek aqel aqem aqen aqeo
-aqep aqeq aqer aqes aqet aqeu aqev aqew aqex aqey aqez aqfa aqfb aqfc aqfd
-aqfe aqff aqfg aqfh aqfi aqfj aqfk aqfl aqfm aqfn aqfo aqfp aqfq aqfr aqfs
-aqft aqfu aqfv aqfw aqfx aqfy aqfz aqga aqgb aqgc aqgd aqge aqgf aqgg aqgh
-aqgi aqgj aqgk aqgl aqgm aqgn aqgo aqgp aqgq aqgr aqgs aqgt aqgu aqgv aqgw
-aqgx aqgy aqgz aqha aqhb aqhc aqhd aqhe aqhf aqhg aqhh aqhi aqhj aqhk aqhl
-aqhm aqhn aqho aqhp aqhq aqhr aqhs aqht aqhu aqhv aqhw aqhx aqhy aqhz aqia
-aqib aqic aqid aqie aqif aqig aqih aqii aqij aqik aqil aqim aqin aqio aqip
-aqiq aqir aqis aqit aqiu aqiv aqiw aqix aqiy aqiz aqja aqjb aqjc aqjd aqje
-aqjf aqjg aqjh aqji aqjj aqjk aqjl aqjm aqjn aqjo aqjp aqjq aqjr aqjs aqjt
-aqju aqjv aqjw aqjx aqjy aqjz aqka aqkb aqkc aqkd aqke aqkf aqkg aqkh aqki
-aqkj aqkk aqkl aqkm aqkn aqko aqkp aqkq aqkr aqks aqkt aqku aqkv aqkw aqkx
-aqky aqkz aqla aqlb aqlc aqld aqle aqlf aqlg aqlh aqli aqlj aqlk aqll aqlm
-aqln aqlo aqlp aqlq aqlr aqls aqlt aqlu aqlv aqlw aqlx aqly aqlz aqma aqmb
-aqmc aqmd aqme aqmf aqmg aqmh aqmi aqmj aqmk aqml aqmm aqmn aqmo aqmp aqmq
-aqmr aqms aqmt aqmu aqmv aqmw aqmx aqmy aqmz aqna aqnb aqnc aqnd aqne aqnf
-aqng aqnh aqni aqnj aqnk aqnl aqnm aqnn aqno aqnp aqnq aqnr aqns aqnt aqnu
-aqnv aqnw aqnx aqny aqnz aqoa aqob aqoc aqod aqoe aqof aqog aqoh aqoi aqoj
-aqok aqol aqom aqon aqoo aqop aqoq aqor aqos aqot aqou aqov aqow aqox aqoy
-aqoz aqpa aqpb aqpc aqpd aqpe aqpf aqpg aqph aqpi aqpj aqpk aqpl aqpm aqpn
-aqpo aqpp aqpq aqpr aqps aqpt aqpu aqpv aqpw aqpx aqpy aqpz aqqa aqqb aqqc
-aqqd aqqe aqqf aqqg aqqh aqqi aqqj aqqk aqql aqqm aqqn aqqo aqqp aqqq aqqr
-aqqs aqqt aqqu aqqv aqqw aqqx aqqy aqqz aqra aqrb aqrc aqrd aqre aqrf aqrg
-aqrh aqri aqrj aqrk aqrl aqrm aqrn aqro aqrp aqrq aqrr aqrs aqrt aqru aqrv
-aqrw aqrx aqry aqrz aqsa aqsb aqsc aqsd aqse aqsf aqsg aqsh aqsi aqsj aqsk
-aqsl aqsm aqsn aqso aqsp aqsq aqsr aqss aqst aqsu aqsv aqsw aqsx aqsy aqsz
-aqta aqtb aqtc aqtd aqte aqtf aqtg aqth aqti aqtj aqtk aqtl aqtm aqtn aqto
-aqtp aqtq aqtr aqts aqtt aqtu aqtv aqtw aqtx aqty aqtz aqua aqub aquc aqud
-aque aquf aqug aquh aqui aquj aquk aqul aqum aqun aquo aqup aquq aqur aqus
-aqut aquu aquv aquw aqux aquy aquz aqva aqvb aqvc aqvd aqve aqvf aqvg aqvh
-aqvi aqvj aqvk aqvl aqvm aqvn aqvo aqvp aqvq aqvr aqvs aqvt aqvu aqvv aqvw
-aqvx aqvy aqvz aqwa aqwb aqwc aqwd aqwe aqwf aqwg aqwh aqwi aqwj aqwk aqwl
-aqwm aqwn aqwo aqwp aqwq aqwr aqws aqwt aqwu aqwv aqww aqwx aqwy aqwz aqxa
-aqxb aqxc aqxd aqxe aqxf aqxg aqxh aqxi aqxj aqxk aqxl aqxm aqxn aqxo aqxp
-aqxq aqxr aqxs aqxt aqxu aqxv aqxw aqxx aqxy aqxz aqya aqyb aqyc aqyd aqye
-aqyf aqyg aqyh aqyi aqyj aqyk aqyl aqym aqyn aqyo aqyp aqyq aqyr aqys aqyt
-aqyu aqyv aqyw aqyx aqyy aqyz aqza aqzb aqzc aqzd aqze aqzf aqzg aqzh aqzi
-aqzj aqzk aqzl aqzm aqzn aqzo aqzp aqzq aqzr aqzs aqzt aqzu aqzv aqzw aqzx
-aqzy aqzz araa arab arac arad arae araf arag arah arai araj arak aral aram
-aran arao arap araq arar aras arat arau arav araw arax aray araz arba arbb
-arbc arbd arbe arbf arbg arbh arbi arbj arbk arbl arbm arbn arbo arbp arbq
-arbr arbs arbt arbu arbv arbw arbx arby arbz arca arcb arcc arcd arce arcf
-arcg arch arci arcj arck arcl arcm arcn arco arcp arcq arcr arcs arct arcu
-arcv arcw arcx arcy arcz arda ardb ardc ardd arde ardf ardg ardh ardi ardj
-ardk ardl ardm ardn ardo ardp ardq ardr ards ardt ardu ardv ardw ardx ardy
-ardz area areb arec ared aree aref areg areh arei arej arek arel arem aren
-areo arep areq arer ares aret areu arev arew arex arey arez arfa arfb arfc
-arfd arfe arff arfg arfh arfi arfj arfk arfl arfm arfn arfo arfp arfq arfr
-arfs arft arfu arfv arfw arfx arfy arfz arga argb argc argd arge argf argg
-argh argi argj argk argl argm argn argo argp argq argr args argt argu argv
-argw argx argy argz arha arhb arhc arhd arhe arhf arhg arhh arhi arhj arhk
-arhl arhm arhn arho arhp arhq arhr arhs arht arhu arhv arhw arhx arhy arhz
-aria arib aric arid arie arif arig arih arii arij arik aril arim arin ario
-arip ariq arir aris arit ariu ariv ariw arix ariy ariz arja arjb arjc arjd
-arje arjf arjg arjh arji arjj arjk arjl arjm arjn arjo arjp arjq arjr arjs
-arjt arju arjv arjw arjx arjy arjz arka arkb arkc arkd arke arkf arkg arkh
-arki arkj arkk arkl arkm arkn arko arkp arkq arkr arks arkt arku arkv arkw
-arkx arky arkz arla arlb arlc arld arle arlf arlg arlh arli arlj arlk arll
-arlm arln arlo arlp arlq arlr arls arlt arlu arlv arlw arlx arly arlz arma
-armb armc armd arme armf armg armh armi armj armk arml armm armn armo armp
-armq armr arms armt armu armv armw armx army armz arna arnb arnc arnd arne
-arnf arng arnh arni arnj arnk arnl arnm arnn arno arnp arnq arnr arns arnt
-arnu arnv arnw arnx arny arnz aroa arob aroc arod aroe arof arog aroh aroi
-aroj arok arol arom aron aroo arop aroq aror aros arot arou arov arow arox
-aroy aroz arpa arpb arpc arpd arpe arpf arpg arph arpi arpj arpk arpl arpm
-arpn arpo arpp arpq arpr arps arpt arpu arpv arpw arpx arpy arpz arqa arqb
-arqc arqd arqe arqf arqg arqh arqi arqj arqk arql arqm arqn arqo arqp arqq
-arqr arqs arqt arqu arqv arqw arqx arqy arqz arra arrb arrc arrd arre arrf
-arrg arrh arri arrj arrk arrl arrm arrn arro arrp arrq arrr arrs arrt arru
-arrv arrw arrx arry arrz arsa arsb arsc arsd arse arsf arsg arsh arsi arsj
-arsk arsl arsm arsn arso arsp arsq arsr arss arst arsu arsv arsw arsx arsy
-arsz arta artb artc artd arte artf artg arth arti artj artk artl artm artn
-arto artp artq artr arts artt artu artv artw artx arty artz arua arub aruc
-arud arue aruf arug aruh arui aruj aruk arul arum arun aruo arup aruq arur
-arus arut aruu aruv aruw arux aruy aruz arva arvb arvc arvd arve arvf arvg
-arvh arvi arvj arvk arvl arvm arvn arvo arvp arvq arvr arvs arvt arvu arvv
-arvw arvx arvy arvz arwa arwb arwc arwd arwe arwf arwg arwh arwi arwj arwk
-arwl arwm arwn arwo arwp arwq arwr arws arwt arwu arwv arww arwx arwy arwz
-arxa arxb arxc arxd arxe arxf arxg arxh arxi arxj arxk arxl arxm arxn arxo
-arxp arxq arxr arxs arxt arxu arxv arxw arxx arxy arxz arya aryb aryc aryd
-arye aryf aryg aryh aryi aryj aryk aryl arym aryn aryo aryp aryq aryr arys
-aryt aryu aryv aryw aryx aryy aryz arza arzb arzc arzd arze arzf arzg arzh
-arzi arzj arzk arzl arzm arzn arzo arzp arzq arzr arzs arzt arzu arzv arzw
-arzx arzy arzz asaa asab asac asad asae asaf asag asah asai asaj asak asal
-asam asan asao asap asaq asar asas asat asau asav asaw asax asay asaz asba
-asbb asbc asbd asbe asbf asbg asbh asbi asbj asbk asbl asbm asbn asbo asbp
-asbq asbr asbs asbt asbu asbv asbw asbx asby asbz asca ascb ascc ascd asce
-ascf ascg asch asci ascj asck ascl ascm ascn asco ascp ascq ascr ascs asct
-ascu ascv ascw ascx ascy ascz asda asdb asdc asdd asde asdf asdg asdh asdi
-asdj asdk asdl asdm asdn asdo asdp asdq asdr asds asdt asdu asdv asdw asdx
-asdy asdz asea aseb asec ased asee asef aseg aseh asei asej asek asel asem
-asen aseo asep aseq aser ases aset aseu asev asew asex asey asez asfa asfb
-asfc asfd asfe asff asfg asfh asfi asfj asfk asfl asfm asfn asfo asfp asfq
-asfr asfs asft asfu asfv asfw asfx asfy asfz asga asgb asgc asgd asge asgf
-asgg asgh asgi asgj asgk asgl asgm asgn asgo asgp asgq asgr asgs asgt asgu
-asgv asgw asgx asgy asgz asha ashb ashc ashd ashe ashf ashg ashh ashi ashj
-ashk ashl ashm ashn asho ashp ashq ashr ashs asht ashu ashv ashw ashx ashy
-ashz asia asib asic asid asie asif asig asih asii asij asik asil asim asin
-asio asip asiq asir asis asit asiu asiv asiw asix asiy asiz asja asjb asjc
-asjd asje asjf asjg asjh asji asjj asjk asjl asjm asjn asjo asjp asjq asjr
-asjs asjt asju asjv asjw asjx asjy asjz aska askb askc askd aske askf askg
-askh aski askj askk askl askm askn asko askp askq askr asks askt asku askv
-askw askx asky askz asla aslb aslc asld asle aslf aslg aslh asli aslj aslk
-asll aslm asln aslo aslp aslq aslr asls aslt aslu aslv aslw aslx asly aslz
-asma asmb asmc asmd asme asmf asmg asmh asmi asmj asmk asml asmm asmn asmo
-asmp asmq asmr asms asmt asmu asmv asmw asmx asmy asmz asna asnb asnc asnd
-asne asnf asng asnh asni asnj asnk asnl asnm asnn asno asnp asnq asnr asns
-asnt asnu asnv asnw asnx asny asnz asoa asob asoc asod asoe asof asog asoh
-asoi asoj asok asol asom ason asoo asop asoq asor asos asot asou asov asow
-asox asoy asoz aspa aspb aspc aspd aspe aspf aspg asph aspi aspj aspk aspl
-aspm aspn aspo aspp aspq aspr asps aspt aspu aspv aspw aspx aspy aspz asqa
-asqb asqc asqd asqe asqf asqg asqh asqi asqj asqk asql asqm asqn asqo asqp
-asqq asqr asqs asqt asqu asqv asqw asqx asqy asqz asra asrb asrc asrd asre
-asrf asrg asrh asri asrj asrk asrl asrm asrn asro asrp asrq asrr asrs asrt
-asru asrv asrw asrx asry asrz assa assb assc assd asse assf assg assh assi
-assj assk assl assm assn asso assp assq assr asss asst assu assv assw assx
-assy assz asta astb astc astd aste astf astg asth asti astj astk astl astm
-astn asto astp astq astr asts astt astu astv astw astx asty astz asua asub
-asuc asud asue asuf asug asuh asui asuj asuk asul asum asun asuo asup asuq
-asur asus asut asuu asuv asuw asux asuy asuz asva asvb asvc asvd asve asvf
-asvg asvh asvi asvj asvk asvl asvm asvn asvo asvp asvq asvr asvs asvt asvu
-asvv asvw asvx asvy asvz aswa aswb aswc aswd aswe aswf aswg aswh aswi aswj
-aswk aswl aswm aswn aswo aswp aswq aswr asws aswt aswu aswv asww aswx aswy
-aswz asxa asxb asxc asxd asxe asxf asxg asxh asxi asxj asxk asxl asxm asxn
-asxo asxp asxq asxr asxs asxt asxu asxv asxw asxx asxy asxz asya asyb asyc
-asyd asye asyf asyg asyh asyi asyj asyk asyl asym asyn asyo asyp asyq asyr
-asys asyt asyu asyv asyw asyx asyy asyz asza aszb aszc aszd asze aszf aszg
-aszh aszi aszj aszk aszl aszm aszn aszo aszp aszq aszr aszs aszt aszu aszv
-aszw aszx aszy aszz ataa atab atac atad atae ataf atag atah atai ataj atak
-atal atam atan atao atap ataq atar atas atat atau atav ataw atax atay ataz
-atba atbb atbc atbd atbe atbf atbg atbh atbi atbj atbk atbl atbm atbn atbo
-atbp atbq atbr atbs atbt atbu atbv atbw atbx atby atbz atca atcb atcc atcd
-atce atcf atcg atch atci atcj atck atcl atcm atcn atco atcp atcq atcr atcs
-atct atcu atcv atcw atcx atcy atcz atda atdb atdc atdd atde atdf atdg atdh
-atdi atdj atdk atdl atdm atdn atdo atdp atdq atdr atds atdt atdu atdv atdw
-atdx atdy atdz atea ateb atec ated atee atef ateg ateh atei atej atek atel
-atem aten ateo atep ateq ater ates atet ateu atev atew atex atey atez atfa
-atfb atfc atfd atfe atff atfg atfh atfi atfj atfk atfl atfm atfn atfo atfp
-atfq atfr atfs atft atfu atfv atfw atfx atfy atfz atga atgb atgc atgd atge
-atgf atgg atgh atgi atgj atgk atgl atgm atgn atgo atgp atgq atgr atgs atgt
-atgu atgv atgw atgx atgy atgz atha athb athc athd athe athf athg athh athi
-athj athk athl athm athn atho athp athq athr aths atht athu athv athw athx
-athy athz atia atib atic atid atie atif atig atih atii atij atik atil atim
-atin atio atip atiq atir atis atit atiu ativ atiw atix atiy atiz atja atjb
-atjc atjd atje atjf atjg atjh atji atjj atjk atjl atjm atjn atjo atjp atjq
-atjr atjs atjt atju atjv atjw atjx atjy atjz atka atkb atkc atkd atke atkf
-atkg atkh atki atkj atkk atkl atkm atkn atko atkp atkq atkr atks atkt atku
-atkv atkw atkx atky atkz atla atlb atlc atld atle atlf atlg atlh atli atlj
-atlk atll atlm atln atlo atlp atlq atlr atls atlt atlu atlv atlw atlx atly
-atlz atma atmb atmc atmd atme atmf atmg atmh atmi atmj atmk atml atmm atmn
-atmo atmp atmq atmr atms atmt atmu atmv atmw atmx atmy atmz atna atnb atnc
-atnd atne atnf atng atnh atni atnj atnk atnl atnm atnn atno atnp atnq atnr
-atns atnt atnu atnv atnw atnx atny atnz atoa atob atoc atod atoe atof atog
-atoh atoi atoj atok atol atom aton atoo atop atoq ator atos atot atou atov
-atow atox atoy atoz atpa atpb atpc atpd atpe atpf atpg atph atpi atpj atpk
-atpl atpm atpn atpo atpp atpq atpr atps atpt atpu atpv atpw atpx atpy atpz
-atqa atqb atqc atqd atqe atqf atqg atqh atqi atqj atqk atql atqm atqn atqo
-atqp atqq atqr atqs atqt atqu atqv atqw atqx atqy atqz atra atrb atrc atrd
-atre atrf atrg atrh atri atrj atrk atrl atrm atrn atro atrp atrq atrr atrs
-atrt atru atrv atrw atrx atry atrz atsa atsb atsc atsd atse atsf atsg atsh
-atsi atsj atsk atsl atsm atsn atso atsp atsq atsr atss atst atsu atsv atsw
-atsx atsy atsz atta attb attc attd atte attf attg atth atti attj attk attl
-attm attn atto attp attq attr atts attt attu attv attw attx atty attz atua
-atub atuc atud atue atuf atug atuh atui atuj atuk atul atum atun atuo atup
-atuq atur atus atut atuu atuv atuw atux atuy atuz atva atvb atvc atvd atve
-atvf atvg atvh atvi atvj atvk atvl atvm atvn atvo atvp atvq atvr atvs atvt
-atvu atvv atvw atvx atvy atvz atwa atwb atwc atwd atwe atwf atwg atwh atwi
-atwj atwk atwl atwm atwn atwo atwp atwq atwr atws atwt atwu atwv atww atwx
-atwy atwz atxa atxb atxc atxd atxe atxf atxg atxh atxi atxj atxk atxl atxm
-atxn atxo atxp atxq atxr atxs atxt atxu atxv atxw atxx atxy atxz atya atyb
-atyc atyd atye atyf atyg atyh atyi atyj atyk atyl atym atyn atyo atyp atyq
-atyr atys atyt atyu atyv atyw atyx atyy atyz atza atzb atzc atzd atze atzf
-atzg atzh atzi atzj atzk atzl atzm atzn atzo atzp atzq atzr atzs atzt atzu
-atzv atzw atzx atzy atzz auaa auab auac auad auae auaf auag auah auai auaj
-auak aual auam auan auao auap auaq auar auas auat auau auav auaw auax auay
-auaz auba aubb aubc aubd aube aubf aubg aubh aubi aubj aubk aubl aubm aubn
-aubo aubp aubq aubr aubs aubt aubu aubv aubw aubx auby aubz auca aucb aucc
-aucd auce aucf aucg auch auci aucj auck aucl aucm aucn auco aucp aucq aucr
-aucs auct aucu aucv aucw aucx aucy aucz auda audb audc audd aude audf audg
-audh audi audj audk audl audm audn audo audp audq audr auds audt audu audv
-audw audx audy audz auea aueb auec aued auee auef aueg aueh auei auej auek
-auel auem auen aueo auep aueq auer aues auet aueu auev auew auex auey auez
-aufa aufb aufc aufd aufe auff aufg aufh aufi aufj aufk aufl aufm aufn aufo
-aufp aufq aufr aufs auft aufu aufv aufw aufx aufy aufz auga augb augc augd
-auge augf augg augh augi augj augk augl augm augn augo augp augq augr augs
-augt augu augv augw augx augy augz auha auhb auhc auhd auhe auhf auhg auhh
-auhi auhj auhk auhl auhm auhn auho auhp auhq auhr auhs auht auhu auhv auhw
-auhx auhy auhz auia auib auic auid auie auif auig auih auii auij auik auil
-auim auin auio auip auiq auir auis auit auiu auiv auiw auix auiy auiz auja
-aujb aujc aujd auje aujf aujg aujh auji aujj aujk aujl aujm aujn aujo aujp
-aujq aujr aujs aujt auju aujv aujw aujx aujy aujz auka aukb aukc aukd auke
-aukf aukg aukh auki aukj aukk aukl aukm aukn auko aukp aukq aukr auks aukt
-auku aukv aukw aukx auky aukz aula aulb aulc auld aule aulf aulg aulh auli
-aulj aulk aull aulm auln aulo aulp aulq aulr auls ault aulu aulv aulw aulx
-auly aulz auma aumb aumc aumd aume aumf aumg aumh aumi aumj aumk auml aumm
-aumn aumo aump aumq aumr aums aumt aumu aumv aumw aumx aumy aumz auna aunb
-aunc aund aune aunf aung aunh auni aunj aunk aunl aunm aunn auno aunp aunq
-aunr auns aunt aunu aunv aunw aunx auny aunz auoa auob auoc auod auoe auof
-auog auoh auoi auoj auok auol auom auon auoo auop auoq auor auos auot auou
-auov auow auox auoy auoz aupa aupb aupc aupd aupe aupf aupg auph aupi aupj
-aupk aupl aupm aupn aupo aupp aupq aupr aups aupt aupu aupv aupw aupx aupy
-aupz auqa auqb auqc auqd auqe auqf auqg auqh auqi auqj auqk auql auqm auqn
-auqo auqp auqq auqr auqs auqt auqu auqv auqw auqx auqy auqz aura aurb aurc
-aurd aure aurf aurg aurh auri aurj aurk aurl aurm aurn auro aurp aurq aurr
-aurs aurt auru aurv aurw aurx aury aurz ausa ausb ausc ausd ause ausf ausg
-aush ausi ausj ausk ausl ausm ausn auso ausp ausq ausr auss aust ausu ausv
-ausw ausx ausy ausz auta autb autc autd aute autf autg auth auti autj autk
-autl autm autn auto autp autq autr auts autt autu autv autw autx auty autz
-auua auub auuc auud auue auuf auug auuh auui auuj auuk auul auum auun auuo
-auup auuq auur auus auut auuu auuv auuw auux auuy auuz auva auvb auvc auvd
-auve auvf auvg auvh auvi auvj auvk auvl auvm auvn auvo auvp auvq auvr auvs
-auvt auvu auvv auvw auvx auvy auvz auwa auwb auwc auwd auwe auwf auwg auwh
-auwi auwj auwk auwl auwm auwn auwo auwp auwq auwr auws auwt auwu auwv auww
-auwx auwy auwz auxa auxb auxc auxd auxe auxf auxg auxh auxi auxj auxk auxl
-auxm auxn auxo auxp auxq auxr auxs auxt auxu auxv auxw auxx auxy auxz auya
-auyb auyc auyd auye auyf auyg auyh auyi auyj auyk auyl auym auyn auyo auyp
-auyq auyr auys auyt auyu auyv auyw auyx auyy auyz auza auzb auzc auzd auze
-auzf auzg auzh auzi auzj auzk auzl auzm auzn auzo auzp auzq auzr auzs auzt
-auzu auzv auzw auzx auzy auzz avaa avab avac avad avae avaf avag avah avai
-avaj avak aval avam avan avao avap avaq avar avas avat avau avav avaw avax
-avay avaz avba avbb avbc avbd avbe avbf avbg avbh avbi avbj avbk avbl avbm
-avbn avbo avbp avbq avbr avbs avbt avbu avbv avbw avbx avby avbz avca avcb
-avcc avcd avce avcf avcg avch avci avcj avck avcl avcm avcn avco avcp avcq
-avcr avcs avct avcu avcv avcw avcx avcy avcz avda avdb avdc avdd avde avdf
-avdg avdh avdi avdj avdk avdl avdm avdn avdo avdp avdq avdr avds avdt avdu
-avdv avdw avdx avdy avdz avea aveb avec aved avee avef aveg aveh avei avej
-avek avel avem aven aveo avep aveq aver aves avet aveu avev avew avex avey
-avez avfa avfb avfc avfd avfe avff avfg avfh avfi avfj avfk avfl avfm avfn
-avfo avfp avfq avfr avfs avft avfu avfv avfw avfx avfy avfz avga avgb avgc
-avgd avge avgf avgg avgh avgi avgj avgk avgl avgm avgn avgo avgp avgq avgr
-avgs avgt avgu avgv avgw avgx avgy avgz avha avhb avhc avhd avhe avhf avhg
-avhh avhi avhj avhk avhl avhm avhn avho avhp avhq avhr avhs avht avhu avhv
-avhw avhx avhy avhz avia avib avic avid avie avif avig avih avii avij avik
-avil avim avin avio avip aviq avir avis avit aviu aviv aviw avix aviy aviz
-avja avjb avjc avjd avje avjf avjg avjh avji avjj avjk avjl avjm avjn avjo
-avjp avjq avjr avjs avjt avju avjv avjw avjx avjy avjz avka avkb avkc avkd
-avke avkf avkg avkh avki avkj avkk avkl avkm avkn avko avkp avkq avkr avks
-avkt avku avkv avkw avkx avky avkz avla avlb avlc avld avle avlf avlg avlh
-avli avlj avlk avll avlm avln avlo avlp avlq avlr avls avlt avlu avlv avlw
-avlx avly avlz avma avmb avmc avmd avme avmf avmg avmh avmi avmj avmk avml
-avmm avmn avmo avmp avmq avmr avms avmt avmu avmv avmw avmx avmy avmz avna
-avnb avnc avnd avne avnf avng avnh avni avnj avnk avnl avnm avnn avno avnp
-avnq avnr avns avnt avnu avnv avnw avnx avny avnz avoa avob avoc avod avoe
-avof avog avoh avoi avoj avok avol avom avon avoo avop avoq avor avos avot
-avou avov avow avox avoy avoz avpa avpb avpc avpd avpe avpf avpg avph avpi
-avpj avpk avpl avpm avpn avpo avpp avpq avpr avps avpt avpu avpv avpw avpx
-avpy avpz avqa avqb avqc avqd avqe avqf avqg avqh avqi avqj avqk avql avqm
-avqn avqo avqp avqq avqr avqs avqt avqu avqv avqw avqx avqy avqz avra avrb
-avrc avrd avre avrf avrg avrh avri avrj avrk avrl avrm avrn avro avrp avrq
-avrr avrs avrt avru avrv avrw avrx avry avrz avsa avsb avsc avsd avse avsf
-avsg avsh avsi avsj avsk avsl avsm avsn avso avsp avsq avsr avss avst avsu
-avsv avsw avsx avsy avsz avta avtb avtc avtd avte avtf avtg avth avti avtj
-avtk avtl avtm avtn avto avtp avtq avtr avts avtt avtu avtv avtw avtx avty
-avtz avua avub avuc avud avue avuf avug avuh avui avuj avuk avul avum avun
-avuo avup avuq avur avus avut avuu avuv avuw avux avuy avuz avva avvb avvc
-avvd avve avvf avvg avvh avvi avvj avvk avvl avvm avvn avvo avvp avvq avvr
-avvs avvt avvu avvv avvw avvx avvy avvz avwa avwb avwc avwd avwe avwf avwg
-avwh avwi avwj avwk avwl avwm avwn avwo avwp avwq avwr avws avwt avwu avwv
-avww avwx avwy avwz avxa avxb avxc avxd avxe avxf avxg avxh avxi avxj avxk
-avxl avxm avxn avxo avxp avxq avxr avxs avxt avxu avxv avxw avxx avxy avxz
-avya avyb avyc avyd avye avyf avyg avyh avyi avyj avyk avyl avym avyn avyo
-avyp avyq avyr avys avyt avyu avyv avyw avyx avyy avyz avza avzb avzc avzd
-avze avzf avzg avzh avzi avzj avzk avzl avzm avzn avzo avzp avzq avzr avzs
-avzt avzu avzv avzw avzx avzy avzz awaa awab awac awad awae awaf awag awah
-awai awaj awak awal awam awan awao awap awaq awar awas awat awau awav awaw
-awax away awaz awba awbb awbc awbd awbe awbf awbg awbh awbi awbj awbk awbl
-awbm awbn awbo awbp awbq awbr awbs awbt awbu awbv awbw awbx awby awbz awca
-awcb awcc awcd awce awcf awcg awch awci awcj awck awcl awcm awcn awco awcp
-awcq awcr awcs awct awcu awcv awcw awcx awcy awcz awda awdb awdc awdd awde
-awdf awdg awdh awdi awdj awdk awdl awdm awdn awdo awdp awdq awdr awds awdt
-awdu awdv awdw awdx awdy awdz awea aweb awec awed awee awef aweg aweh awei
-awej awek awel awem awen aweo awep aweq awer awes awet aweu awev awew awex
-awey awez awfa awfb awfc awfd awfe awff awfg awfh awfi awfj awfk awfl awfm
-awfn awfo awfp awfq awfr awfs awft awfu awfv awfw awfx awfy awfz awga awgb
-awgc awgd awge awgf awgg awgh awgi awgj awgk awgl awgm awgn awgo awgp awgq
-awgr awgs awgt awgu awgv awgw awgx awgy awgz awha awhb awhc awhd awhe awhf
-awhg awhh awhi awhj awhk awhl awhm awhn awho awhp awhq awhr awhs awht awhu
-awhv awhw awhx awhy awhz awia awib awic awid awie awif awig awih awii awij
-awik awil awim awin awio awip awiq awir awis awit awiu awiv awiw awix awiy
-awiz awja awjb awjc awjd awje awjf awjg awjh awji awjj awjk awjl awjm awjn
-awjo awjp awjq awjr awjs awjt awju awjv awjw awjx awjy awjz awka awkb awkc
-awkd awke awkf awkg awkh awki awkj awkk awkl awkm awkn awko awkp awkq awkr
-awks awkt awku awkv awkw awkx awky awkz awla awlb awlc awld awle awlf awlg
-awlh awli awlj awlk awll awlm awln awlo awlp awlq awlr awls awlt awlu awlv
-awlw awlx awly awlz awma awmb awmc awmd awme awmf awmg awmh awmi awmj awmk
-awml awmm awmn awmo awmp awmq awmr awms awmt awmu awmv awmw awmx awmy awmz
-awna awnb awnc awnd awne awnf awng awnh awni awnj awnk awnl awnm awnn awno
-awnp awnq awnr awns awnt awnu awnv awnw awnx awny awnz awoa awob awoc awod
-awoe awof awog awoh awoi awoj awok awol awom awon awoo awop awoq awor awos
-awot awou awov awow awox awoy awoz awpa awpb awpc awpd awpe awpf awpg awph
-awpi awpj awpk awpl awpm awpn awpo awpp awpq awpr awps awpt awpu awpv awpw
-awpx awpy awpz awqa awqb awqc awqd awqe awqf awqg awqh awqi awqj awqk awql
-awqm awqn awqo awqp awqq awqr awqs awqt awqu awqv awqw awqx awqy awqz awra
-awrb awrc awrd awre awrf awrg awrh awri awrj awrk awrl awrm awrn awro awrp
-awrq awrr awrs awrt awru awrv awrw awrx awry awrz awsa awsb awsc awsd awse
-awsf awsg awsh awsi awsj awsk awsl awsm awsn awso awsp awsq awsr awss awst
-awsu awsv awsw awsx awsy awsz awta awtb awtc awtd awte awtf awtg awth awti
-awtj awtk awtl awtm awtn awto awtp awtq awtr awts awtt awtu awtv awtw awtx
-awty awtz awua awub awuc awud awue awuf awug awuh awui awuj awuk awul awum
-awun awuo awup awuq awur awus awut awuu awuv awuw awux awuy awuz awva awvb
-awvc awvd awve awvf awvg awvh awvi awvj awvk awvl awvm awvn awvo awvp awvq
-awvr awvs awvt awvu awvv awvw awvx awvy awvz awwa awwb awwc awwd awwe awwf
-awwg awwh awwi awwj awwk awwl awwm awwn awwo awwp awwq awwr awws awwt awwu
-awwv awww awwx awwy awwz awxa awxb awxc awxd awxe awxf awxg awxh awxi awxj
-awxk awxl awxm awxn awxo awxp awxq awxr awxs awxt awxu awxv awxw awxx awxy
-awxz awya awyb awyc awyd awye awyf awyg awyh awyi awyj awyk awyl awym awyn
-awyo awyp awyq awyr awys awyt awyu awyv awyw awyx awyy awyz awza awzb awzc
-awzd awze awzf awzg awzh awzi awzj awzk awzl awzm awzn awzo awzp awzq awzr
-awzs awzt awzu awzv awzw awzx awzy awzz axaa axab axac axad axae axaf axag
-axah axai axaj axak axal axam axan axao axap axaq axar axas axat axau axav
-axaw axax axay axaz axba axbb axbc axbd axbe axbf axbg axbh axbi axbj axbk
-axbl axbm axbn axbo axbp axbq axbr axbs axbt axbu axbv axbw axbx axby axbz
-axca axcb axcc axcd axce axcf axcg axch axci axcj axck axcl axcm axcn axco
-axcp axcq axcr axcs axct axcu axcv axcw axcx axcy axcz axda axdb axdc axdd
-axde axdf axdg axdh axdi axdj axdk axdl axdm axdn axdo axdp axdq axdr axds
-axdt axdu axdv axdw axdx axdy axdz axea axeb axec axed axee axef axeg axeh
-axei axej axek axel axem axen axeo axep axeq axer axes axet axeu axev axew
-axex axey axez axfa axfb axfc axfd axfe axff axfg axfh axfi axfj axfk axfl
-axfm axfn axfo axfp axfq axfr axfs axft axfu axfv axfw axfx axfy axfz axga
-axgb axgc axgd axge axgf axgg axgh axgi axgj axgk axgl axgm axgn axgo axgp
-axgq axgr axgs axgt axgu axgv axgw axgx axgy axgz axha axhb axhc axhd axhe
-axhf axhg axhh axhi axhj axhk axhl axhm axhn axho axhp axhq axhr axhs axht
-axhu axhv axhw axhx axhy axhz axia axib axic axid axie axif axig axih axii
-axij axik axil axim axin axio axip axiq axir axis axit axiu axiv axiw axix
-axiy axiz axja axjb axjc axjd axje axjf axjg axjh axji axjj axjk axjl axjm
-axjn axjo axjp axjq axjr axjs axjt axju axjv axjw axjx axjy axjz axka axkb
-axkc axkd axke axkf axkg axkh axki axkj axkk axkl axkm axkn axko axkp axkq
-axkr axks axkt axku axkv axkw axkx axky axkz axla axlb axlc axld axle axlf
-axlg axlh axli axlj axlk axll axlm axln axlo axlp axlq axlr axls axlt axlu
-axlv axlw axlx axly axlz axma axmb axmc axmd axme axmf axmg axmh axmi axmj
-axmk axml axmm axmn axmo axmp axmq axmr axms axmt axmu axmv axmw axmx axmy
-axmz axna axnb axnc axnd axne axnf axng axnh axni axnj axnk axnl axnm axnn
-axno axnp axnq axnr axns axnt axnu axnv axnw axnx axny axnz axoa axob axoc
-axod axoe axof axog axoh axoi axoj axok axol axom axon axoo axop axoq axor
-axos axot axou axov axow axox axoy axoz axpa axpb axpc axpd axpe axpf axpg
-axph axpi axpj axpk axpl axpm axpn axpo axpp axpq axpr axps axpt axpu axpv
-axpw axpx axpy axpz axqa axqb axqc axqd axqe axqf axqg axqh axqi axqj axqk
-axql axqm axqn axqo axqp axqq axqr axqs axqt axqu axqv axqw axqx axqy axqz
-axra axrb axrc axrd axre axrf axrg axrh axri axrj axrk axrl axrm axrn axro
-axrp axrq axrr axrs axrt axru axrv axrw axrx axry axrz axsa axsb axsc axsd
-axse axsf axsg axsh axsi axsj axsk axsl axsm axsn axso axsp axsq axsr axss
-axst axsu axsv axsw axsx axsy axsz axta axtb axtc axtd axte axtf axtg axth
-axti axtj axtk axtl axtm axtn axto axtp axtq axtr axts axtt axtu axtv axtw
-axtx axty axtz axua axub axuc axud axue axuf axug axuh axui axuj axuk axul
-axum axun axuo axup axuq axur axus axut axuu axuv axuw axux axuy axuz axva
-axvb axvc axvd axve axvf axvg axvh axvi axvj axvk axvl axvm axvn axvo axvp
-axvq axvr axvs axvt axvu axvv axvw axvx axvy axvz axwa axwb axwc axwd axwe
-axwf axwg axwh axwi axwj axwk axwl axwm axwn axwo axwp axwq axwr axws axwt
-axwu axwv axww axwx axwy axwz axxa axxb axxc axxd axxe axxf axxg axxh axxi
-axxj axxk axxl axxm axxn axxo axxp axxq axxr axxs axxt axxu axxv axxw axxx
-axxy axxz axya axyb axyc axyd axye axyf axyg axyh axyi axyj axyk axyl axym
-axyn axyo axyp axyq axyr axys axyt axyu axyv axyw axyx axyy axyz axza axzb
-axzc axzd axze axzf axzg axzh axzi axzj axzk axzl axzm axzn axzo axzp axzq
-axzr axzs axzt axzu axzv axzw axzx axzy axzz ayaa ayab ayac ayad ayae ayaf
-ayag ayah ayai ayaj ayak ayal ayam ayan ayao ayap ayaq ayar ayas ayat ayau
-ayav ayaw ayax ayay ayaz ayba aybb aybc aybd aybe aybf aybg aybh aybi aybj
-aybk aybl aybm aybn aybo aybp aybq aybr aybs aybt aybu aybv aybw aybx ayby
-aybz ayca aycb aycc aycd ayce aycf aycg aych ayci aycj ayck aycl aycm aycn
-ayco aycp aycq aycr aycs ayct aycu aycv aycw aycx aycy aycz ayda aydb aydc
-aydd ayde aydf aydg aydh aydi aydj aydk aydl aydm aydn aydo aydp aydq aydr
-ayds aydt aydu aydv aydw aydx aydy aydz ayea ayeb ayec ayed ayee ayef ayeg
-ayeh ayei ayej ayek ayel ayem ayen ayeo ayep ayeq ayer ayes ayet ayeu ayev
-ayew ayex ayey ayez ayfa ayfb ayfc ayfd ayfe ayff ayfg ayfh ayfi ayfj ayfk
-ayfl ayfm ayfn ayfo ayfp ayfq ayfr ayfs ayft ayfu ayfv ayfw ayfx ayfy ayfz
-ayga aygb aygc aygd ayge aygf aygg aygh aygi aygj aygk aygl aygm aygn aygo
-aygp aygq aygr aygs aygt aygu aygv aygw aygx aygy aygz ayha ayhb ayhc ayhd
-ayhe ayhf ayhg ayhh ayhi ayhj ayhk ayhl ayhm ayhn ayho ayhp ayhq ayhr ayhs
-ayht ayhu ayhv ayhw ayhx ayhy ayhz ayia ayib ayic ayid ayie ayif ayig ayih
-ayii ayij ayik ayil ayim ayin ayio ayip ayiq ayir ayis ayit ayiu ayiv ayiw
-ayix ayiy ayiz ayja ayjb ayjc ayjd ayje ayjf ayjg ayjh ayji ayjj ayjk ayjl
-ayjm ayjn ayjo ayjp ayjq ayjr ayjs ayjt ayju ayjv ayjw ayjx ayjy ayjz ayka
-aykb aykc aykd ayke aykf aykg aykh ayki aykj aykk aykl aykm aykn ayko aykp
-aykq aykr ayks aykt ayku aykv aykw aykx ayky aykz ayla aylb aylc ayld ayle
-aylf aylg aylh ayli aylj aylk ayll aylm ayln aylo aylp aylq aylr ayls aylt
-aylu aylv aylw aylx ayly aylz ayma aymb aymc aymd ayme aymf aymg aymh aymi
-aymj aymk ayml aymm aymn aymo aymp aymq aymr ayms aymt aymu aymv aymw aymx
-aymy aymz ayna aynb aync aynd ayne aynf ayng aynh ayni aynj aynk aynl aynm
-aynn ayno aynp aynq aynr ayns aynt aynu aynv aynw aynx ayny aynz ayoa ayob
-ayoc ayod ayoe ayof ayog ayoh ayoi ayoj ayok ayol ayom ayon ayoo ayop ayoq
-ayor ayos ayot ayou ayov ayow ayox ayoy ayoz aypa aypb aypc aypd aype aypf
-aypg ayph aypi aypj aypk aypl aypm aypn aypo aypp aypq aypr ayps aypt aypu
-aypv aypw aypx aypy aypz ayqa ayqb ayqc ayqd ayqe ayqf ayqg ayqh ayqi ayqj
-ayqk ayql ayqm ayqn ayqo ayqp ayqq ayqr ayqs ayqt ayqu ayqv ayqw ayqx ayqy
-ayqz ayra ayrb ayrc ayrd ayre ayrf ayrg ayrh ayri ayrj ayrk ayrl ayrm ayrn
-ayro ayrp ayrq ayrr ayrs ayrt ayru ayrv ayrw ayrx ayry ayrz aysa aysb aysc
-aysd ayse aysf aysg aysh aysi aysj aysk aysl aysm aysn ayso aysp aysq aysr
-ayss ayst aysu aysv aysw aysx aysy aysz ayta aytb aytc aytd ayte aytf aytg
-ayth ayti aytj aytk aytl aytm aytn ayto aytp aytq aytr ayts aytt aytu aytv
-aytw aytx ayty aytz ayua ayub ayuc ayud ayue ayuf ayug ayuh ayui ayuj ayuk
-ayul ayum ayun ayuo ayup ayuq ayur ayus ayut ayuu ayuv ayuw ayux ayuy ayuz
-ayva ayvb ayvc ayvd ayve ayvf ayvg ayvh ayvi ayvj ayvk ayvl ayvm ayvn ayvo
-ayvp ayvq ayvr ayvs ayvt ayvu ayvv ayvw ayvx ayvy ayvz aywa aywb aywc aywd
-aywe aywf aywg aywh aywi aywj aywk aywl aywm aywn aywo aywp aywq aywr ayws
-aywt aywu aywv ayww aywx aywy aywz ayxa ayxb ayxc ayxd ayxe ayxf ayxg ayxh
-ayxi ayxj ayxk ayxl ayxm ayxn ayxo ayxp ayxq ayxr ayxs ayxt ayxu ayxv ayxw
-ayxx ayxy ayxz ayya ayyb ayyc ayyd ayye ayyf ayyg ayyh ayyi ayyj ayyk ayyl
-ayym ayyn ayyo ayyp ayyq ayyr ayys ayyt ayyu ayyv ayyw ayyx ayyy ayyz ayza
-ayzb ayzc ayzd ayze ayzf ayzg ayzh ayzi ayzj ayzk ayzl ayzm ayzn ayzo ayzp
-ayzq ayzr ayzs ayzt ayzu ayzv ayzw ayzx ayzy ayzz azaa azab azac azad azae
-azaf azag azah azai azaj azak azal azam azan azao azap azaq azar azas azat
-azau azav azaw azax azay azaz azba azbb azbc azbd azbe azbf azbg azbh azbi
-azbj azbk azbl azbm azbn azbo azbp azbq azbr azbs azbt azbu azbv azbw azbx
-azby azbz azca azcb azcc azcd azce azcf azcg azch azci azcj azck azcl azcm
-azcn azco azcp azcq azcr azcs azct azcu azcv azcw azcx azcy azcz azda azdb
-azdc azdd azde azdf azdg azdh azdi azdj azdk azdl azdm azdn azdo azdp azdq
-azdr azds azdt azdu azdv azdw azdx azdy azdz azea azeb azec azed azee azef
-azeg azeh azei azej azek azel azem azen azeo azep azeq azer azes azet azeu
-azev azew azex azey azez azfa azfb azfc azfd azfe azff azfg azfh azfi azfj
-azfk azfl azfm azfn azfo azfp azfq azfr azfs azft azfu azfv azfw azfx azfy
-azfz azga azgb azgc azgd azge azgf azgg azgh azgi azgj azgk azgl azgm azgn
-azgo azgp azgq azgr azgs azgt azgu azgv azgw azgx azgy azgz azha azhb azhc
-azhd azhe azhf azhg azhh azhi azhj azhk azhl azhm azhn azho azhp azhq azhr
-azhs azht azhu azhv azhw azhx azhy azhz azia azib azic azid azie azif azig
-azih azii azij azik azil azim azin azio azip aziq azir azis azit aziu aziv
-aziw azix aziy aziz azja azjb azjc azjd azje azjf azjg azjh azji azjj azjk
-azjl azjm azjn azjo azjp azjq azjr azjs azjt azju azjv azjw azjx azjy azjz
-azka azkb azkc azkd azke azkf azkg azkh azki azkj azkk azkl azkm azkn azko
-azkp azkq azkr azks azkt azku azkv azkw azkx azky azkz azla azlb azlc azld
-azle azlf azlg azlh azli azlj azlk azll azlm azln azlo azlp azlq azlr azls
-azlt azlu azlv azlw azlx azly azlz azma azmb azmc azmd azme azmf azmg azmh
-azmi azmj azmk azml azmm azmn azmo azmp azmq azmr azms azmt azmu azmv azmw
-azmx azmy azmz azna aznb aznc aznd azne aznf azng aznh azni aznj aznk aznl
-aznm aznn azno aznp aznq aznr azns aznt aznu aznv aznw aznx azny aznz azoa
-azob azoc azod azoe azof azog azoh azoi azoj azok azol azom azon azoo azop
-azoq azor azos azot azou azov azow azox azoy azoz azpa azpb azpc azpd azpe
-azpf azpg azph azpi azpj azpk azpl azpm azpn azpo azpp azpq azpr azps azpt
-azpu azpv azpw azpx azpy azpz azqa azqb azqc azqd azqe azqf azqg azqh azqi
-azqj azqk azql azqm azqn azqo azqp azqq azqr azqs azqt azqu azqv azqw azqx
-azqy azqz azra azrb azrc azrd azre azrf azrg azrh azri azrj azrk azrl azrm
-azrn azro azrp azrq azrr azrs azrt azru azrv azrw azrx azry azrz azsa azsb
-azsc azsd azse azsf azsg azsh azsi azsj azsk azsl azsm azsn azso azsp azsq
-azsr azss azst azsu azsv azsw azsx azsy azsz azta aztb aztc aztd azte aztf
-aztg azth azti aztj aztk aztl aztm aztn azto aztp aztq aztr azts aztt aztu
-aztv aztw aztx azty aztz azua azub azuc azud azue azuf azug azuh azui azuj
-azuk azul azum azun azuo azup azuq azur azus azut azuu azuv azuw azux azuy
-azuz azva azvb azvc azvd azve azvf azvg azvh azvi azvj azvk azvl azvm azvn
-azvo azvp azvq azvr azvs azvt azvu azvv azvw azvx azvy azvz azwa azwb azwc
-azwd azwe azwf azwg azwh azwi azwj azwk azwl azwm azwn azwo azwp azwq azwr
-azws azwt azwu azwv azww azwx azwy azwz azxa azxb azxc azxd azxe azxf azxg
-azxh azxi azxj azxk azxl azxm azxn azxo azxp azxq azxr azxs azxt azxu azxv
-azxw azxx azxy azxz azya azyb azyc azyd azye azyf azyg azyh azyi azyj azyk
-azyl azym azyn azyo azyp azyq azyr azys azyt azyu azyv azyw azyx azyy azyz
-azza azzb azzc azzd azze azzf azzg azzh azzi azzj azzk azzl azzm azzn azzo
-azzp azzq azzr azzs azzt azzu azzv azzw azzx azzy azzz baaa baab baac baad
-baae baaf baag baah baai baaj baak baal baam baan baao baap baaq baar baas
-baat baau baav baaw baax baay baaz baba babb babc babd babe babf babg babh
-babi babj babk babl babm babn babo babp babq babr babs babt babu babv babw
-babx baby babz baca bacb bacc bacd bace bacf bacg bach baci bacj back bacl
-bacm bacn baco bacp bacq bacr bacs bact bacu bacv bacw bacx bacy bacz bada
-badb badc badd bade badf badg badh badi badj badk badl badm badn bado badp
-badq badr bads badt badu badv badw badx bady badz baea baeb baec baed baee
-baef baeg baeh baei baej baek bael baem baen baeo baep baeq baer baes baet
-baeu baev baew baex baey baez bafa bafb bafc bafd bafe baff bafg bafh bafi
-bafj bafk bafl bafm bafn bafo bafp bafq bafr bafs baft bafu bafv bafw bafx
-bafy bafz baga bagb bagc bagd bage bagf bagg bagh bagi bagj bagk bagl bagm
-bagn bago bagp bagq bagr bags bagt bagu bagv bagw bagx bagy bagz baha bahb
-bahc bahd bahe bahf bahg bahh bahi bahj bahk bahl bahm bahn baho bahp bahq
-bahr bahs baht bahu bahv bahw bahx bahy bahz baia baib baic baid baie baif
-baig baih baii baij baik bail baim bain baio baip baiq bair bais bait baiu
-baiv baiw baix baiy baiz baja bajb bajc bajd baje bajf bajg bajh baji bajj
-bajk bajl bajm bajn bajo bajp bajq bajr bajs bajt baju bajv bajw bajx bajy
-bajz baka bakb bakc bakd bake bakf bakg bakh baki bakj bakk bakl bakm bakn
-bako bakp bakq bakr baks bakt baku bakv bakw bakx baky bakz bala balb balc
-bald bale balf balg balh bali balj balk ball balm baln balo balp balq balr
-bals balt balu balv balw balx baly balz bama bamb bamc bamd bame bamf bamg
-bamh bami bamj bamk baml bamm bamn bamo bamp bamq bamr bams bamt bamu bamv
-bamw bamx bamy bamz bana banb banc band bane banf bang banh bani banj bank
-banl banm bann bano banp banq banr bans bant banu banv banw banx bany banz
-baoa baob baoc baod baoe baof baog baoh baoi baoj baok baol baom baon baoo
-baop baoq baor baos baot baou baov baow baox baoy baoz bapa bapb bapc bapd
-bape bapf bapg baph bapi bapj bapk bapl bapm bapn bapo bapp bapq bapr baps
-bapt bapu bapv bapw bapx bapy bapz baqa baqb baqc baqd baqe baqf baqg baqh
-baqi baqj baqk baql baqm baqn baqo baqp baqq baqr baqs baqt baqu baqv baqw
-baqx baqy baqz bara barb barc bard bare barf barg barh bari barj bark barl
-barm barn baro barp barq barr bars bart baru barv barw barx bary barz basa
-basb basc basd base basf basg bash basi basj bask basl basm basn baso basp
-basq basr bass bast basu basv basw basx basy basz bata batb batc batd bate
-batf batg bath bati batj batk batl batm batn bato batp batq batr bats batt
-batu batv batw batx baty batz baua baub bauc baud baue bauf baug bauh baui
-bauj bauk baul baum baun bauo baup bauq baur baus baut bauu bauv bauw baux
-bauy bauz bava bavb bavc bavd bave bavf bavg bavh bavi bavj bavk bavl bavm
-bavn bavo bavp bavq bavr bavs bavt bavu bavv bavw bavx bavy bavz bawa bawb
-bawc bawd bawe bawf bawg bawh bawi bawj bawk bawl bawm bawn bawo bawp bawq
-bawr baws bawt bawu bawv baww bawx bawy bawz baxa baxb baxc baxd baxe baxf
-baxg baxh baxi baxj baxk baxl baxm baxn baxo baxp baxq baxr baxs baxt baxu
-baxv baxw baxx baxy baxz baya bayb bayc bayd baye bayf bayg bayh bayi bayj
-bayk bayl baym bayn bayo bayp bayq bayr bays bayt bayu bayv bayw bayx bayy
-bayz baza bazb bazc bazd baze bazf bazg bazh bazi bazj bazk bazl bazm bazn
-bazo bazp bazq bazr bazs bazt bazu bazv bazw bazx bazy bazz bbaa bbab bbac
-bbad bbae bbaf bbag bbah bbai bbaj bbak bbal bbam bban bbao bbap bbaq bbar
-bbas bbat bbau bbav bbaw bbax bbay bbaz bbba bbbb
diff --git a/camlp4/test/fixtures/if.ml b/camlp4/test/fixtures/if.ml
deleted file mode 100644 (file)
index 3f9b452..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-let x = if x then a else b in x
-
-let x = if StringSet.mem "*" sections then a else b in x
-
-let x =
-if StringSet.mem "*" sections then fun _ -> true else
-  fun x -> StringSet.mem x sections
-in x
diff --git a/camlp4/test/fixtures/label.ml b/camlp4/test/fixtures/label.ml
deleted file mode 100644 (file)
index a60f367..0000000
+++ /dev/null
@@ -1 +0,0 @@
-value f ~a:_ ?b:_ = ();
diff --git a/camlp4/test/fixtures/lambda_free.ml b/camlp4/test/fixtures/lambda_free.ml
deleted file mode 100644 (file)
index 4d6f135..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-open Format;
-
-module S = Set.Make String;
-
-type term =
-  [ Lambda of string and term
-  | Atom of string
-  | App of term and term
-  | Opt of term and option term and term
-  ];
-
-value free_vars =
-  let rec fv t env free =
-    match t with
-    [ Lambda x t -> fv t (S.add x env) free
-    | Atom x -> if S.mem x env then free else S.add x free
-    | App t1 t2 -> fv t1 env (fv t2 env free)
-    | Opt _ _ _ -> assert False ]
-  in fun t -> fv t S.empty S.empty;
-
-value print_set f s = do {
-  fprintf f "@[<2>{ ";
-  S.iter (fprintf f "%s@ ") s;
-  fprintf f "}@]";
-};
-
-value t1 = Lambda "x" (App (Lambda "y" (App (Atom "y") (Atom "x"))) (Lambda "x" (Atom "x")));
-value t2 = Lambda "x" (App (Lambda "y" (App (Atom "y") (Atom "x"))) (Lambda "z" (Atom "z")));
-value t3 = Lambda "x" (App (Lambda "y" (App (Atom "y") (Atom "x"))) (Lambda "x" (Atom "z")));
-value t4 = Lambda "a" (App (Lambda "y" (App (Atom "y") (Atom "x"))) (Lambda "x" (Atom "z")));
-
-printf "t1: %a@." print_set (free_vars t1);
-printf "t2: %a@." print_set (free_vars t2);
-printf "t3: %a@." print_set (free_vars t3);
-printf "t4: %a@." print_set (free_vars t4);
-
-class fold ['accu] init =
-  object (o : 'self_type)
-    value accu : 'accu = init;
-    method accu = accu;
-    method term t =
-      match t with
-      [ Lambda x t -> (o#string x)#term t
-      | Atom x -> o#string x
-      | App t1 t2 -> (o#term t1)#term t2
-      | Opt t1 ot t2 -> ((o#term t1)#option (fun o -> o#term) ot)#term t2 ];
-    method string : string -> 'self_type = fun _ -> o;
-    method option : ! 'a. ('self_type -> 'a -> 'self_type) -> option 'a -> 'self_type =
-      fun f opt ->
-        match opt with
-        [ None -> o
-        | Some x -> f o x ];
-  end;
-
-class fold_atoms ['accu] f init =
-  object (o : 'self_type)
-    inherit fold ['accu] init as super;
-    method term t =
-      match t with
-      [ Atom x -> {< accu = f x accu >}
-      | _ -> super#term t ];
-  end;
-
-value t5 = Opt (Atom "a") (Some (Atom "b")) (Atom "c");
-
-value atoms = ((new fold_atoms S.add S.empty)#term t5)#accu;
-
-printf "atoms: %a@." print_set atoms;
diff --git a/camlp4/test/fixtures/loc-bug.ml b/camlp4/test/fixtures/loc-bug.ml
deleted file mode 100644 (file)
index 2901e6f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#default_quotation "expr";;
-Lwt.return
-  << 3 + >>
diff --git a/camlp4/test/fixtures/macrotest.ml b/camlp4/test/fixtures/macrotest.ml
deleted file mode 100644 (file)
index 023a5b4..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-DEFINE A = 42;
-DEFINE B = 51;
-
-IFDEF A THEN
-  value a_should_be_present = B + 2;
-  print_int (a_should_be_present + 1);
-ENDIF;
-
-print_int (a_should_be_present + 2);
-
-IFNDEF C THEN
-  print_int (a_should_be_present + 3);
-ENDIF;
-
-IFNDEF C THEN
-  print_int (a_should_be_present + 4);
-ELSE
-  print_int (c_should_not_be_present + 1);
-ENDIF;
-
-IFDEF C THEN
-  print_int (c_should_not_be_present + 2);
-ELSIF
-  print_int (A * a_should_be_present + 5);
-ENDIF;
-
-IFDEF DNE THEN
-  print_int (c_should_not_be_present + 2);
-ELSIF
-  print_int (A * a_should_be_present + 5);
-ENDIF;
-
-IFDEF OPT THEN
-  print_int (c_should_not_be_present + 2);
-ELSIF
-  print_int (A * a_should_be_present + 5);
-ENDIF;
-
-value e = 
-  IFDEF DNE THEN
-    print_int (c_should_not_be_present + 2)
-  ELSE
-    print_int (A * a_should_be_present + 5)
-  ENDIF;
-
-value f =
-  fun _ ->
-    IFDEF DNE THEN
-      print_int (c_should_not_be_present + 2)
-    ELSE
-      print_int (A * a_should_be_present + 5)
-    ENDIF;
-
-IFDEF A THEN
-  DEFINE Z = "ok";
-ELSE
-  DEFINE Z = "ko";
-ENDIF;
-
-Z;
-
-IFDEF DNE THEN
-  DEFINE Z = "ko2";
-ELSE
-  DEFINE Z = "ok2";
-ENDIF;
-
-Z;
-
-pouet;
diff --git a/camlp4/test/fixtures/macrotest.mli b/camlp4/test/fixtures/macrotest.mli
deleted file mode 100644 (file)
index 4912fd3..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-DEFINE A;
-DEFINE B;
-
-IFDEF A THEN
-  value a_should_be_present : int;
-ENDIF;
-
-IFNDEF C THEN
-  value b_should_be_present : int;
-ENDIF;
-
-IFNDEF C THEN
-  value c_should_be_present : int;
-ELSE
-  value a_should_NOT_be_present : int;
-END;
-
-IFDEF C THEN
-  value b_should_NOT_be_present : int;
-ELSE
-  value d_should_be_present : int;
-  value e_should_be_present : int;
-ENDIF;
-
-value f_should_be_present : int;
diff --git a/camlp4/test/fixtures/macrotest2.ml b/camlp4/test/fixtures/macrotest2.ml
deleted file mode 100644 (file)
index cb2d4cf..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-IFNDEF UNDEFINED_VARIABLE THEN
- DEFINE SQUARE (x) = x * x ;;
- DEFINE DOUBLE_SQUARE (x) = (SQUARE x) * 2 ;;
-END;;
-
-Printf.printf "%d\n" (DOUBLE_SQUARE(42)) ;;
diff --git a/camlp4/test/fixtures/macrotest3.ml b/camlp4/test/fixtures/macrotest3.ml
deleted file mode 100644 (file)
index ef618d2..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-IFNDEF UNDEFINED_VARIABLE THEN
- DEFINE UNDEFINED_VARIABLE
-
- IFDEF UNDEFINED_VARIABLE THEN
-  DEFINE SQUARE (x) = x * x ;;
-  DEFINE DOUBLE_SQUARE (x) = (SQUARE x) * 2 ;;
- END
-END;;
-
-Printf.printf "%d\n" (DOUBLE_SQUARE(42)) ;;
-
diff --git a/camlp4/test/fixtures/make_extend.ml b/camlp4/test/fixtures/make_extend.ml
deleted file mode 100644 (file)
index f2d625c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<:expr< EXTEND G expr: [[ "foo" -> <:expr< foo >> ]]; END >>;
diff --git a/camlp4/test/fixtures/match.ml b/camlp4/test/fixtures/match.ml
deleted file mode 100644 (file)
index 9fb52cb..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-let x =
-  match y with
-  | A z -> z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z 
-  | B l ->
-      (match l with
-       | [] -> ()
-       | x::xs -> p x; self xs)
-  | C -> ()
-in x
diff --git a/camlp4/test/fixtures/match_parser.ml b/camlp4/test/fixtures/match_parser.ml
deleted file mode 100644 (file)
index e053ee8..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-open Camlp4.PreCast;
-
-let _loc = Loc.ghost in
-let e = <:expr< parser [: `"a" :] -> t >> in
-let a =
-  match e with
-  [ <:expr< parser [: `$str:x$ :] -> t >> -> x
-  | _ -> assert False ]
-in Format.printf "a: %S@." a;
-
diff --git a/camlp4/test/fixtures/meta_multi_term.ml b/camlp4/test/fixtures/meta_multi_term.ml
deleted file mode 100644 (file)
index 35e96b2..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-open Camlp4.PreCast;
-value _loc = Loc.ghost;
-
-module Term = struct
-  type patt =
-    [ PApp of patt and patt
-    | PAny
-    | PVar of string
-    | POlb of string and expr ]
-  and expr =
-    [ EApp of expr and expr
-    | EVar of string
-    | ELam of patt and expr ];
-end;
-
-module MetaTerm = MetaGenerator Term;
diff --git a/camlp4/test/fixtures/metalib.ml b/camlp4/test/fixtures/metalib.ml
deleted file mode 100644 (file)
index 22dff11..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#load "camlp4of.cma";;
-open Camlp4.PreCast;;
-module M = Ast.Meta.Make(Ast.Meta.MetaGhostLoc);;
-let ghost = Loc.ghost;;
-M.Expr.meta_ctyp ghost <:ctyp@ghost< int >>;;
diff --git a/camlp4/test/fixtures/method_private_virtual.ml b/camlp4/test/fixtures/method_private_virtual.ml
deleted file mode 100644 (file)
index 6c0b94a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-class virtual c1 = object method virtual private f : unit end;;
-class virtual c2 = object method private virtual f : unit end;;
-
-<:str_item< class virtual c1 = object method virtual private f : unit; end >>;;
-<:str_item< class virtual c2 = object method private virtual f : unit; end >>;;
-<:str_item< class virtual c2 = object method $private:p$ virtual f : unit; end >>;;
-<:str_item< class virtual c2 = object method virtual $private:p$ f : unit; end >>;;
-<:str_item< class $virtual:v$ c2 [$t1$] =
-              object ($pat:self$) method virtual $private:p$ $lid:f$ : $t2$; end >>;;
diff --git a/camlp4/test/fixtures/mod.ml b/camlp4/test/fixtures/mod.ml
deleted file mode 100644 (file)
index ca2b3e0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-module type S = sig type t end
-module F (A : S) = struct
-  type t2 = A.t
-  module A = A
-end
-
-module A = struct type t = int end
-
-module type S3 = sig
-  module M : S
-end
-
-module type S2 = S with type t = F(A).t2
-
-module type S4 = S3 with module M = F(A).A
diff --git a/camlp4/test/fixtures/mod2.ml b/camlp4/test/fixtures/mod2.ml
deleted file mode 100644 (file)
index c0a1667..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-module type S = sig type t = 'a; end;
-module F (A : S) = struct
-  type t2 = A.t;
-end;
-
-module A = struct type t = int; end;
-
-module type S2 = S with type t = (F A).t2;
diff --git a/camlp4/test/fixtures/operators.ml b/camlp4/test/fixtures/operators.ml
deleted file mode 100644 (file)
index 467c37c..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-let _ : int = 42
-let (+) = M.(+)
-let (+) = M.(+) in 42
-let (+) : int -> int -> int = (+)
-let (+) : int -> int -> int = (+) in 42
-let None = None
-let None : int option = None
diff --git a/camlp4/test/fixtures/operators.mli b/camlp4/test/fixtures/operators.mli
deleted file mode 100644 (file)
index af44530..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val (+) : int -> int -> int
diff --git a/camlp4/test/fixtures/original_syntax.ml b/camlp4/test/fixtures/original_syntax.ml
deleted file mode 100644 (file)
index bf08d56..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-fun x when x <> 0 -> x / 42
-;;
-object val virtual mutable x : int val mutable virtual y : int end
-;;
-- !r
-;;
-! -r
-;;
--32
-;;
-- - 32
-;;
-!(r.b)
-;;
-(!r).b = !r.b
-;;
-let l : (unit -> int) list = [(fun _ -> 42); (fun _ -> 42)]
diff --git a/camlp4/test/fixtures/outside-scope.ml b/camlp4/test/fixtures/outside-scope.ml
deleted file mode 100644 (file)
index 6b8b80b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-type t 'a = [ Nil | Cons of 'a and t 'a ];
-
-module A : sig
-  value app_hd : t 'a -> ('a -> 'a) -> option 'a;
-end = struct
-  value app_hd x f =
-    match x with
-    [ Nil -> None
-    | Cons x _ -> Some (f x) ];
-end;
-open A;
-
-module M = struct
-  external mk_nil : unit -> t 'a = "%identity";
-  value nil = mk_nil ();
-  (* value is_nil x = x = nil; *)
-end;
-
-(* M.app_hd succ (M.Cons 1 M.Nil); *)
-(* M.hd (M.Cons 1 M.Nil); *)
-app_hd (M.nil : t 'a) (fun (x : int) -> (x : 'a));
diff --git a/camlp4/test/fixtures/parser.ml b/camlp4/test/fixtures/parser.ml
deleted file mode 100644 (file)
index 7e41f35..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-open Camlp4.PreCast;
-type t = [ A of t and t | B of string ];
-value lex = Lexer.mk ();
-
-    (* value list0 symb =
-      let rec loop al =
-        parser
-        [ [: a = symb; s :] -> loop [a :: al] s
-        | [: :] -> al ]
-      in
-      parser [: a = loop [] :] -> List.rev a
-    ;
-    value list0sep symb sep =
-      let rec kont al =
-        parser
-        [ [: v = sep; a = symb; s :] -> kont [a :: al] s
-        | [: :] -> al ]
-      in
-      parser
-      [ [: a = symb; s :] -> List.rev (kont [a] s)
-      | [: :] -> [] ]
-    ;
-    value list1 symb =
-      let rec loop al =
-        parser
-        [ [: a = symb; s :] -> loop [a :: al] s
-        | [: :] -> al ]
-      in
-      parser [: a = symb; s :] -> List.rev (loop [a] s)
-    ;
-    value list1sep symb sep =
-      let rec kont al =
-        parser
-        [ [: v = sep; a = symb; s :] -> kont [a :: al] s
-        | [: :] -> al ]
-      in
-      parser [: a = symb; s :] -> List.rev (kont [a] s)
-    ;                                                       *)
-
-value list1 =
-  let rec self stream acc =
-    match stream with parser
-    [ [: `(EOI, _) :] -> acc
-    | [: `(LIDENT x, _); xs :] -> self xs (A acc (B x))
-    | [: `(BLANKS _ | NEWLINE, _); xs :] -> self xs acc ]
-  in
-  parser [: `(LIDENT x, _); xs :] -> self xs (B x);
-value rec length x acc =
-  match x with
-  [ A x y -> length x (length y acc)
-  | B _ -> succ acc ];
-(* value length _ _ = -1; *)
-open Format;
-try
-  let f = Sys.argv.(1) in
-  let () = printf "parsing...@." in
-  let a = list1 (lex (Loc.mk f) (Stream.of_channel (open_in f))) in
-  let () = printf "counting...@." in
-  let n = length a 0 in
-  printf "%d@." n
-with e -> eprintf "error: %a@." Camlp4.ErrorHandler.print e;
diff --git a/camlp4/test/fixtures/pp_let_in.ml b/camlp4/test/fixtures/pp_let_in.ml
deleted file mode 100644 (file)
index c616249..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-let i = "toto" in do { (let i = 42 in print_int i); print_string i };
-let i = "toto" in do { print_string i; let i = 42 in print_int i; print_int i };
-let i = "toto" in do {
-  (let i = 42 in print_int i);
-  let i = i ^ i;
-  let i = i ^ i;
-  print_string i;
-  print_string i;
-  let i = i ^ i;
-  print_string i };
diff --git a/camlp4/test/fixtures/pp_let_in2.ml b/camlp4/test/fixtures/pp_let_in2.ml
deleted file mode 100644 (file)
index 7e9b349..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let i = "toto" in ((let i = 42 in print_int i); print_string i)
diff --git a/camlp4/test/fixtures/pp_xml.ml b/camlp4/test/fixtures/pp_xml.ml
deleted file mode 100644 (file)
index 986998c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-
-type xml = Elt of string * xml list | Pcdata of string
-
-let pp = Format.fprintf
-
-let rec print_elt f =
-  function
-  | Elt (tag, contents) ->
-      pp f "@[<hv0>@[<hv2><%s>@,%a@]@,</%s>@]"
-        tag print_list_elts contents tag
-  | Pcdata s ->
-      Format.pp_print_string f s
-
-and print_list_elts f =
-    let rec loop =
-      function
-      | [] -> ()
-      | x::xs -> (pp f "@,"; print_elt f x; loop xs) in
-    function
-    | [] -> ()
-    | [x] -> print_elt f x
-    | x::xs -> (print_elt f x; loop xs)
-
-let tree =
-  Elt ("div", [
-     Elt ("p", [Pcdata "a short text"]);
-     Elt ("p", [Pcdata "a looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong text"])
-  ])
-
-let () = Format.printf "%a@." print_elt tree
-
diff --git a/camlp4/test/fixtures/pprecordtyp.ml b/camlp4/test/fixtures/pprecordtyp.ml
deleted file mode 100644 (file)
index 1b140af..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-open Camlp4.PreCast
-
-let _loc = Loc.mk "?"
-
-let base base fields ty =
-  let fields = List.fold_right (fun field acc ->
-    let c = <:ctyp< $lid:field$ : $uid:field$.record >> in
-    <:ctyp< $c$ ; $acc$ >>) fields <:ctyp< >>
-  in
-  <:module_binding< $uid:base$ :
-    sig type record = {
-        key : $ty$;
-        $fields$
-      } end = struct
-        type record = {
-        key : $ty$;
-        $fields$
-      } end
-    >>
-
-module CleanAst = Camlp4.Struct.CleanAst.Make(Ast)
-let _ =
-  let b = base "b" ["f1"; "f2"] <:ctyp< int >> in
-  Camlp4.PreCast.Printers.OCaml.print_implem
-    ((new CleanAst.clean_ast)#str_item
-      <:str_item< module rec $b$ >>)
diff --git a/camlp4/test/fixtures/pr4314.ml b/camlp4/test/fixtures/pr4314.ml
deleted file mode 100644 (file)
index 9e6b23b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(int_of_string "1" : unit);
diff --git a/camlp4/test/fixtures/pr4314gram1.ml b/camlp4/test/fixtures/pr4314gram1.ml
deleted file mode 100644 (file)
index a83b073..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-open Camlp4.PreCast ;
-module G = Camlp4.PreCast.Gram ;
-
-value exp = G.Entry.mk "exp" ;
-value prog = G.Entry.mk "prog" ;
-
-EXTEND G
-exp:
-[ "apply"
-  [ e1 = SELF; e2 = SELF ->
-    let p = Loc.dump in
-    let () =
-    Format.eprintf "e1:    %a,@.e2:    %a,@.e1-e2: %a,@._loc:  %a@."
-      p e1 p e2 p (Loc.merge e1 e2) p _loc
-    in
-    _loc
-  ]
-| "simple"
-  [ _ = LIDENT -> _loc ]
-];
-prog: [[ e = exp; `EOI -> e ]];
-END ;
-
-(* and the following function: *)
-
-value parse_string entry s =
-try
-  G.parse_string entry (Loc.mk "<string>") s
-with [ Loc.Exc_located loc exn ->
-begin
-  print_endline (Loc.to_string loc);
-  print_endline (Printexc.to_string exn);
-  failwith "Syntax Error"
-end ] ;
-
-parse_string prog "f x";
diff --git a/camlp4/test/fixtures/pr4314gram2.ml b/camlp4/test/fixtures/pr4314gram2.ml
deleted file mode 100644 (file)
index 38a5222..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-open Camlp4.PreCast ;
-module G = Camlp4.PreCast.Gram ;
-
-value exp = G.Entry.mk "exp" ;
-value prog = G.Entry.mk "prog" ;
-
-EXTEND G
-exp:
-[ "apply"
-  [ e1 = exp LEVEL "simple"; e2 = SELF ->
-    let p = Loc.dump in
-    let () =
-    Format.eprintf "e1:    %a,@.e2:    %a,@.e1-e2: %a,@._loc:  %a@."
-      p e1 p e2 p (Loc.merge e1 e2) p _loc
-    in
-    _loc
-  ]
-| "simple"
-  [ _ = LIDENT -> _loc ]
-];
-prog: [[ e = exp; `EOI -> e ]];
-END ;
-
-(* and the following function: *)
-
-value parse_string entry s =
-try
-  G.parse_string entry (Loc.mk "<string>") s
-with [ Loc.Exc_located loc exn ->
-begin
-  print_endline (Loc.to_string loc);
-  print_endline (Printexc.to_string exn);
-  failwith "Syntax Error"
-end ] ;
-
-parse_string prog "f x";
diff --git a/camlp4/test/fixtures/pr4314gram3.ml b/camlp4/test/fixtures/pr4314gram3.ml
deleted file mode 100644 (file)
index 3298bcb..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-open Camlp4.PreCast ;
-module G = Camlp4.PreCast.Gram ;
-
-value exp = G.Entry.mk "exp" ;
-value prog = G.Entry.mk "prog" ;
-
-EXTEND G
-exp:
-[ "apply"
-  [ e1 = SELF; e2 = exp LEVEL "simple" ->
-    let p = Loc.dump in
-    let () =
-    Format.eprintf "e1:    %a,@.e2:    %a,@.e1-e2: %a,@._loc:  %a@."
-      p e1 p e2 p (Loc.merge e1 e2) p _loc
-    in
-    _loc
-  ]
-| "simple"
-  [ _ = LIDENT -> _loc ]
-];
-prog: [[ e = exp; `EOI -> e ]];
-END ;
-
-(* and the following function: *)
-
-value parse_string entry s =
-try
-  G.parse_string entry (Loc.mk "<string>") s
-with [ Loc.Exc_located loc exn ->
-begin
-  print_endline (Loc.to_string loc);
-  print_endline (Printexc.to_string exn);
-  failwith "Syntax Error"
-end ] ;
-
-parse_string prog "f x";
diff --git a/camlp4/test/fixtures/pr4314gram4.ml b/camlp4/test/fixtures/pr4314gram4.ml
deleted file mode 100644 (file)
index 1c6712e..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-open Camlp4.PreCast ;
-module G = Camlp4.PreCast.Gram ;
-
-value exp = G.Entry.mk "exp" ;
-value prog = G.Entry.mk "prog" ;
-
-EXTEND G
-exp:
-[ "apply"
-  [ e1 = SELF; e2 = exp LEVEL "simple"; e3 = exp LEVEL "simple" ->
-    let p = Loc.dump in
-    let () =
-    Format.eprintf "e1:   %a,@.e2:   %a,@.e3:   %a,@._loc: %a@."
-      p e1 p e2 p e3 p _loc
-    in
-    _loc
-  ]
-| "simple"
-  [ _ = LIDENT -> _loc ]
-];
-prog: [[ e = exp; `EOI -> e ]];
-END ;
-
-(* and the following function: *)
-
-value parse_string entry s =
-try
-  G.parse_string entry (Loc.mk "<string>") s
-with [ Loc.Exc_located loc exn ->
-begin
-  print_endline (Loc.to_string loc);
-  print_endline (Printexc.to_string exn);
-  failwith "Syntax Error"
-end ] ;
-
-parse_string prog "f x y";
diff --git a/camlp4/test/fixtures/pr4314gram5.ml b/camlp4/test/fixtures/pr4314gram5.ml
deleted file mode 100644 (file)
index bd2fb11..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-open Camlp4.PreCast ;
-module G = Camlp4.PreCast.Gram ;
-
-value exp = G.Entry.mk "exp" ;
-value prog = G.Entry.mk "prog" ;
-
-EXTEND G
-exp:
-[ "apply"
-[ e1 = SELF; e2 = exp LEVEL "simple"; e3 = SELF ->
-    let p = Loc.dump in
-    let () =
-    Format.eprintf "e1:   %a,@.e2:   %a,@.e3:   %a,@._loc: %a@."
-      p e1 p e2 p e3 p _loc
-    in
-    _loc
-  ]
-| "simple"
-[ x = LIDENT; y = LIDENT ->
-  let () = Format.eprintf "reduce expr simple (%S, %S) at %a@." x y Loc.dump _loc in _loc ]
-];
-prog: [[ e = exp; `EOI -> e ]];
-END ;
-
-(* and the following function: *)
-
-value parse_string entry s =
-try
-  print_endline s;
-  G.parse_string entry (Loc.mk "<string>") s
-with [ Loc.Exc_located loc exn ->
-begin
-  print_endline (Loc.to_string loc);
-  print_endline (Printexc.to_string exn);
-  failwith "Syntax Error"
-end ] ;
-
-parse_string prog "f1 f2 x1 x2 y1 y2";
diff --git a/camlp4/test/fixtures/pr4329.ml b/camlp4/test/fixtures/pr4329.ml
deleted file mode 100644 (file)
index 72f2b78..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-open Camlp4.PreCast ;
-module G = Camlp4.PreCast.Gram;
-
-value ab_eoi = G.Entry.mk "ab_eoi" ;
-value a_or_ab = G.Entry.mk "a_or_ab" ;
-value a_or_ab_eoi = G.Entry.mk "a_or_ab_eoi" ;
-value c_a_or_ab_eoi = G.Entry.mk "c_a_or_ab_eoi" ;
-
-EXTEND G
-ab_eoi: [[ "a"; "b"; `EOI -> () ]];
-a_or_ab: [[ "a" -> () | "a"; "b" -> () ]];
-a_or_ab_eoi: [[ a_or_ab; `EOI -> () ]];
-c_a_or_ab_eoi: [[ "c"; a_or_ab; `EOI -> () ]];
-END ;
-
-value parse_string entry s =
-try
-  G.parse_string entry (Loc.mk "<string>") s
-with [ Loc.Exc_located loc exn ->
-begin
-  print_endline (Loc.to_string loc);
-  print_endline (Printexc.to_string exn);
-  (* failwith "Syntax Error" *)
-end ] ;
-
-(* Consider the following syntax errors: *)
-parse_string ab_eoi "a c" ;
-(* File "<string>", line 1, characters 2-3
-Stream.Error("illegal begin of ab_eoi")
-Exception: Failure "Syntax Error".
---> "Illegal begin": at least the first symbol was correct
---> nevertheless, the reported position is correct
---> The message used to be: "b" then EOI expected after "a" in [ab_eoi]    *)
-
-parse_string a_or_ab_eoi "a c" ;
-(* File "<string>", line 1, characters 0-1
-Stream.Error("illegal begin of a_or_ab_eoi")
-Exception: Failure "Syntax Error".
---> "Illegal begin": at least the first non-terminal was correct
---> the reported position is weird
---> I think the message used to be either: "b" expected after "a" in
-[a_or_ab]
-or: EOI expected after [a_or_ab] in [a_or_ab_eoi]                       *)
-
-parse_string c_a_or_ab_eoi "c a c" ;
-(* File "<string>", line 1, characters 2-3
-Stream.Error("[a_or_ab] expected after \"c\" (in [c_a_or_ab_eoi])")
-Exception: Failure "Syntax Error".
---> "[a_or_ab] expected": this is very confusing: there is a valid a_or_ab
-there, namely "a"                                                             *)
diff --git a/camlp4/test/fixtures/pr4330.ml b/camlp4/test/fixtures/pr4330.ml
deleted file mode 100644 (file)
index 1959358..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-open Camlp4.PreCast ;
-module G = Camlp4.PreCast.Gram ;
-
-value a = G.Entry.mk "a" ;
-value a_eoi = G.Entry.mk "a_eoi" ;
-
-EXTEND G
-a: [[ "one" -> 1 | x = a; "plus"; y = a -> x+y ]];
-a_eoi: [[ x = a; `EOI -> x ]];
-END ;
-
-(* and the following function: *)
-
-value parse_string entry s o =
-try
-  Printf.eprintf "Parsing %S\n%!" s;
-  assert (o = Some (G.parse_string entry (Loc.mk "<string>") s))
-with [ Loc.Exc_located loc exn when o <> None ->
-begin
-  print_endline (Loc.to_string loc);
-  print_endline (Printexc.to_string exn);
-  assert (o = None)
-end
-| exn when o = None -> Printf.eprintf "Fail as expected\n%!"
-| exn -> begin
-  Printf.eprintf "Unexpected exception: \n%!";
-  print_endline (Printexc.to_string exn);
-  assert (o = None)
-end ] ;
-
-(* The following is correct: *)
-
-parse_string a_eoi "one plus one" (Some 2);
-
-(* While all of the following inputs should be rejected because they are not *)
-(* legal according to the grammar: *)
-
-parse_string a_eoi "one plus" None;
-(* - : int = 1 *)
-parse_string a_eoi "one plus plus" None;
-(* - : int = 1 *)
-parse_string a_eoi "one plus one plus" None;
-(* - : int = 2 *)
-parse_string a_eoi "one plus one plus plus" None;
-(* - : int = 2 *)
-
-(* Curiously, you may only repeat the operator twice. If you specify it three
-times, gramlib complains.                                                     *)
-
-parse_string a_eoi "one plus plus plus" None ;
-(* File "<string>", line 1, characters 9-13 *)
-(* Stream.Error("EOI expected after [a] (in [a_eoi])") *)
-(* Exception: Failure "Syntax Error". *)
-parse_string a_eoi "one plus one plus plus plus" None ;
-(* File "<string>", line 1, characters 18-22 *)
-(* Stream.Error("EOI expected after [a] (in [a_eoi])") *)
-(* Exception: Failure "Syntax Error". *)
diff --git a/camlp4/test/fixtures/pr4357.ml b/camlp4/test/fixtures/pr4357.ml
deleted file mode 100644 (file)
index 2d84004..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-open Camlp4.PreCast
-
-let sample_expr _loc _loc_name s =
-  Printf.eprintf "file=%s line=%d offset=%d bol=%d\n%!"
-    (Loc.file_name _loc)
-    (Loc.start_line _loc)
-    (Loc.start_off _loc)
-    (Loc.start_bol _loc);
-  <:expr< $lid:s$ >>
-;;
-
-Quotation.add
-  "sample"
-  Syntax.Quotation.DynAst.expr_tag
-  sample_expr
-;;
diff --git a/camlp4/test/fixtures/pr4357sample.ml b/camlp4/test/fixtures/pr4357sample.ml
deleted file mode 100644 (file)
index 789bcb8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-let u = "Hello";;
-let s = <:sample<u>>;;
-print_string s
diff --git a/camlp4/test/fixtures/pr4357sample2.ml b/camlp4/test/fixtures/pr4357sample2.ml
deleted file mode 100644 (file)
index f6fe8d0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#default_quotation "sample";;
-let u = "Hello";;
-let s = <<u>>;;
-let s = <:sample<u>>;;
-print_string s
diff --git a/camlp4/test/fixtures/pr4452.ml b/camlp4/test/fixtures/pr4452.ml
deleted file mode 100644 (file)
index bed7db7..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-open Camlp4.PreCast
-
-let _loc = Loc.mk "?"
-
-let base base fields ty =
-  let fields = List.fold_right (fun field acc ->
-    let c = <:ctyp< $lid:field$ : $uid:field$.record >> in
-    <:ctyp< $c$ ; $acc$ >>) fields <:ctyp< >>
-  in
-  <:module_binding< $uid:base$ :
-    sig type record = {
-        key : $ty$;
-        $fields$
-      } end = struct
-        type record = {
-        key : $ty$;
-        $fields$
-      } end
-    >>
-
-let _ =
-  let b = base "b" ["f1"; "f2"] <:ctyp< int >> in
-  Camlp4.PreCast.Printers.OCaml.print_implem
-    <:str_item< module rec $b$ >>
diff --git a/camlp4/test/fixtures/private_row.ml b/camlp4/test/fixtures/private_row.ml
deleted file mode 100644 (file)
index 53ada77..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-                                             
-
-module type Ops = sig
-     type expr
-  val eval : expr -> int
-  end
-  ;;
-
-
-module Plus = struct
-     type 'a expr0 = [`Num of int | `Plus of 'a * 'a ]
-     module F(X : Ops with type expr = private ([> 'a expr0] as 'a)) =
-        struct
-           type expr = X.expr expr0
-           let eval : expr -> int = function
-                 `Num n -> n
-                |`Plus(e1,e2) -> X.eval e1 + X.eval e2
-        end
-    module rec L : (Ops with type expr = L.expr expr0) = F(L)
-  end
-  ;;
-
-
-open Printf
-;;
-
-let _ = Printf.printf "%d\n%!" (Plus.L.eval (`Plus ((`Num 5),(`Num 2))));;
diff --git a/camlp4/test/fixtures/rec.ml b/camlp4/test/fixtures/rec.ml
deleted file mode 100644 (file)
index 1c74b24..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-(* rec.ml *)
-value rec x = 42;
diff --git a/camlp4/test/fixtures/seq.ml b/camlp4/test/fixtures/seq.ml
deleted file mode 100644 (file)
index dd563d4..0000000
+++ /dev/null
@@ -1,1003 +0,0 @@
-module M = struct
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-end;
diff --git a/camlp4/test/fixtures/seq2.ml b/camlp4/test/fixtures/seq2.ml
deleted file mode 100644 (file)
index d47c254..0000000
+++ /dev/null
@@ -1,3003 +0,0 @@
-module M = struct
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-  foo bar;
-end;
diff --git a/camlp4/test/fixtures/simplify.ml b/camlp4/test/fixtures/simplify.ml
deleted file mode 100644 (file)
index d910641..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-open Camlp4.PreCast
-
-let simplify =
-  object
-    inherit Ast.map as super
-    method expr e =
-      match super#expr e with
-      | <:expr< $x$ + 0 >> | <:expr< 0 + $x$ >> -> x
-      | x -> x
-  end
-in AstFilters.register_str_item_filter simplify#str_item
diff --git a/camlp4/test/fixtures/simplify_r.ml b/camlp4/test/fixtures/simplify_r.ml
deleted file mode 100644 (file)
index fa60135..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-open Camlp4.PreCast;
-
-let simplify =
-  object
-    inherit Ast.map as super;
-    method expr e =
-      match super#expr e with
-      [ <:expr< $x$ + 0 >> | <:expr< 0 + $x$ >> -> x
-      | x -> x ];
-  end
-in AstFilters.register_str_item_filter simplify#str_item;
diff --git a/camlp4/test/fixtures/stream-parser-bug.ml b/camlp4/test/fixtures/stream-parser-bug.ml
deleted file mode 100644 (file)
index 6c17793..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-let foo = parser
-  | [< '42; ps >] ->
-      let ps = ps + 42 in
-      type_phrases ps
-  | [< >] -> [< >]
-
diff --git a/camlp4/test/fixtures/string.ml b/camlp4/test/fixtures/string.ml
deleted file mode 100644 (file)
index 5b0e646..0000000
+++ /dev/null
@@ -1 +0,0 @@
-"abc";
diff --git a/camlp4/test/fixtures/superfluous.ml b/camlp4/test/fixtures/superfluous.ml
deleted file mode 100644 (file)
index 79b086b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-open Camlp4.PreCast;;
-open Syntax;;
-
-let _loc = Loc.ghost;;
-let st = <:str_item< >>;;
-let e = <:expr< 1 >>
-let bi = <:binding< x = 0 >>;;
-
-(* none of these holds due to superfluous StSem and StNil *)
-assert (Ast.StSem (_loc, st, st) = <:str_item< $st$ $st$ >>);;
-assert (Ast.StExp (_loc, e) = <:str_item< $exp:e$ >>);;
-assert (Ast.StVal (_loc, bi) = <:str_item< let $bi$ >>);;
diff --git a/camlp4/test/fixtures/transform-examples.ml b/camlp4/test/fixtures/transform-examples.ml
deleted file mode 100644 (file)
index 0aea9c4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<:expr< $x$ + $y$ - $z$ >> -> <:expr< plus_minus $x$ $y$ $z$ >>
-
-<< List.rev (List.rev $l$) >> -> l
diff --git a/camlp4/test/fixtures/try.ml b/camlp4/test/fixtures/try.ml
deleted file mode 100644 (file)
index 90c01a3..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-try
-  let f = Sys.getenv "CAMLP4_DEBUG_FILE"
-  in
-    foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar
-with Not_found -> stderr
-
diff --git a/camlp4/test/fixtures/tuple_as_retval.ml b/camlp4/test/fixtures/tuple_as_retval.ml
deleted file mode 100644 (file)
index 1dd68e6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-EXTEND Gram
-  abc: [ [ (x,y) = foo -> x+y ] ];
-END;
diff --git a/camlp4/test/fixtures/type.ml b/camlp4/test/fixtures/type.ml
deleted file mode 100644 (file)
index f17cc50..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-type t = [ A of int | B of t ];
-type t2 = [ A of int | B of t ];
-type t3 = [ A of int | B of t ];
diff --git a/camlp4/test/fixtures/type_decl.ml b/camlp4/test/fixtures/type_decl.ml
deleted file mode 100644 (file)
index 8610ba2..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-module M = struct
-  type t = A of int * int * int * int * int * int * int * int * int * int
-    | B | B | B | B | B | B | B | B
-  and t2 =
-    | B | B | B | B | B | B | B | B
-  and t3 =
-    | B | B | B of a * a * a * a * a * a * a * a * a * a * a | B | B | B | B | B
-  and t4 =
-    | B | B | B | B | B | B | B | B
-  and t5 =
-    | B | B | B | B | B | B | B | B
-  and t6 =
-    | B | B | B |  A of int * int * int * int * int * int * int * int * int * int * int * int * int * int * int * int * int * int * int | B | B | B | B | B
-  and t7 =
-    | B | B | B | B | B | B | B | B
-  and t8 =
-    | B | B | B | B | B | B | B | B
-  and t9 =
-    | B | B | B | B | B | B | B | B
-  and t10 =
-    | A of (a * a)
-end
diff --git a/camlp4/test/fixtures/unit.ml b/camlp4/test/fixtures/unit.ml
deleted file mode 100644 (file)
index 52241df..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-type t1 = ();;
-type t2 = unit;;
-let x : t1 = ();;
-let y : t2 = ();;
diff --git a/camlp4/test/fixtures/use.ml b/camlp4/test/fixtures/use.ml
deleted file mode 100644 (file)
index 36e2f69..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-(* use.ml *)
-#use "test/fixtures/rec.ml";
-(* value use *)
-value use = 3;
diff --git a/camlp4/test/fixtures/where.o.ml b/camlp4/test/fixtures/where.o.ml
deleted file mode 100644 (file)
index 8295d4a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let where = 42
diff --git a/camlp4/test/fixtures/where.r.ml b/camlp4/test/fixtures/where.r.ml
deleted file mode 100644 (file)
index e48c308..0000000
+++ /dev/null
@@ -1 +0,0 @@
-x where x = 42;
diff --git a/camlp4/unmaintained/Makefile b/camlp4/unmaintained/Makefile
deleted file mode 100644 (file)
index b6db075..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#########################################################################
-#                                                                       #
-#                            Objective Caml                             #
-#                                                                       #
-#                                Camlp4                                 #
-#                                                                       #
-#   Copyright 2004 Institut National de Recherche en Informatique et    #
-#   en Automatique.  All rights reserved.  This file is distributed     #
-#   under the terms of the Q Public License version 1.0.                #
-#                                                                       #
-#########################################################################
-#
-# The unmaintained directory
-#
-
-include ../config/Makefile.cnf
-
-DIRS=format lefteval ocamllex olabl scheme sml
-
-include ../config/Makefile.base
diff --git a/camlp4/unmaintained/compile/.cvsignore b/camlp4/unmaintained/compile/.cvsignore
deleted file mode 100644 (file)
index 47817cc..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-*.fast
-*.fast.opt
-o_fast.ml
-pa_o_fast.ml
diff --git a/camlp4/unmaintained/compile/.depend b/camlp4/unmaintained/compile/.depend
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/camlp4/unmaintained/compile/Makefile b/camlp4/unmaintained/compile/Makefile
deleted file mode 100644 (file)
index bd4078f..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-include ../config/Makefile.cnf
-
-INCLUDES=-I ../camlp4 -I ../lib
-SRC=../etc/pa_o.ml ../etc/pa_op.ml # FIXME and why not pa_$D.ml?
-D=o
-COMP_OPT=-strict_parsing -e "Grammar.Entry.obj Pcaml.interf" -e "Grammar.Entry.obj Pcaml.implem" -e "Grammar.Entry.obj Pcaml.top_phrase" -e "Grammar.Entry.obj Pcaml.use_file"
-CLEANFILES=pa_*_fast.ml *_fast.ml
-
-# FIXME
-EXECUTABLES=#camlp4$D.fast
-
-include ../config/Makefile.base
-
-WARNINGS=Ay
-
-camlp4$D.fast: pa_$D_fast.cmo
-       rm -f camlp4$D.fast
-       cd ../camlp4; $(MAKE) CAMLP4=../compile/camlp4$D.fast CAMLP4M="../compile/pa_$D_fast.cmo ../meta/pr_dump.cmo"
-
-camlp4$D.fast.opt: pa_$D_fast.cmx
-       rm -f camlp4$D.fast.opt
-       cd ../camlp4; $(MAKE) ../compile/camlp4$D.fast.opt CAMLP4OPT=../compile/camlp4$D.fast.opt CAMLP4M="../compile/pa_$D_fast.cmx ../meta/pr_dump.cmx"
-
-pa_$D_fast.ml: comp_head.ml $D_fast.ml comp_trail.ml
-       cat $(SRC) | sed -e "s/Plexer.make_lexer *()/P.lexer_pos/" -e "/EXTEND/,/END/d" -e "/Grammar.Entry.of_parser/d" -e "/Grammar.Entry.gcreate/d" | cat comp_head.ml - $D_fast.ml comp_trail.ml > pa_$D_fast.ml
-
-$D_fast.ml: compile.cmo $(SRC)
-       echo '(* camlp4r *)' >$D_fast.ml
-       OTOP=$(OTOP) EXE=$(EXE) ./compile.sh $(COMP_OPT) $(SRC) >> $D_fast.ml
-
-install-local:
-       if test -f camlp4$D.fast.opt; then cp camlp4$D.fast.opt $(BINDIR)/camlp4$D.opt$(EXE); fi
-       for TARG in  pa_$D_fast.cmi  pa_$D_fast.cmo pa_$D_fast.cmx ; do if test -f $$TARG; then cp $$TARG "$(LIBDIR)/camlp4/."; fi; done
-
-include .depend
diff --git a/camlp4/unmaintained/compile/comp_head.ml b/camlp4/unmaintained/compile/comp_head.ml
deleted file mode 100644 (file)
index cd62343..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-(* camlp4r q_MLast.cmo pa_extend.cmo *)
-
-
-module P =
-  struct
-    value gloc bp strm = Grammar.loc_of_token_interval bp (Stream.count strm);
-    value list0 symb =
-      let rec loop al =
-        parser
-        [ [: a = symb; s :] -> loop [a :: al] s
-        | [: :] -> al ]
-      in
-      parser [: a = loop [] :] -> List.rev a
-    ;
-    value list0sep symb sep =
-      let rec kont al =
-        parser
-        [ [: v = sep; a = symb; s :] -> kont [a :: al] s
-        | [: :] -> al ]
-      in
-      parser
-      [ [: a = symb; s :] -> List.rev (kont [a] s)
-      | [: :] -> [] ]
-    ;
-    value list1 symb =
-      let rec loop al =
-        parser
-        [ [: a = symb; s :] -> loop [a :: al] s
-        | [: :] -> al ]
-      in
-      parser [: a = symb; s :] -> List.rev (loop [a] s)
-    ;
-    value list1sep symb sep =
-      let rec kont al =
-        parser
-        [ [: v = sep; a = symb; s :] -> kont [a :: al] s
-        | [: :] -> al ]
-      in
-      parser [: a = symb; s :] -> List.rev (kont [a] s)
-    ;
-    value option f =
-      parser
-      [ [: x = f :] -> Some x
-      | [: :] -> None ]
-    ;
-    value token (p_con, p_prm) =
-      if p_prm = "" then parser [: `(con, prm) when con = p_con :] -> prm
-      else parser [: `(con, prm) when con = p_con && prm = p_prm :] -> prm
-    ;
-    value orzero f f0 =
-      parser bp
-      [ [: x = f :] -> x
-      | [: x = f0 :] ep ->
-(*
-let (loc1, loc2) = Grammar.loc_of_token_interval bp ep in
-let _ = do { Printf.eprintf "recovered or_zero at loc (%d, %d)\n" loc1 loc2; flush stderr } in
-*)
-           x ]
-    ;
-    value error entry prev_symb symb =
-      symb ^ " expected" ^
-      (if prev_symb = "" then "" else " after " ^ prev_symb) ^
-      " (in [" ^ entry ^ "])"
-    ;
-    value lexer = Plexer.gmake();
-  end
-;
-
-(****************************************)
-
diff --git a/camlp4/unmaintained/compile/comp_trail.ml b/camlp4/unmaintained/compile/comp_trail.ml
deleted file mode 100644 (file)
index 75f40ab..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-(* camlp4r pa_extend.cmo *)
-(****************************************)
-
-value interf_p =
-  Grammar.Entry.of_parser Pcaml.gram "interf" interf_0
-;
-
-value implem_p =
-  Grammar.Entry.of_parser Pcaml.gram "implem" implem_0
-;
-
-value top_phrase_p =
-  Grammar.Entry.of_parser Pcaml.gram "top_phrase" top_phrase_0
-;
-
-value use_file_p =
-  Grammar.Entry.of_parser Pcaml.gram "use_file" use_file_0
-;
-
-EXTEND
-  interf:
-    [ [ x = interf_p -> x ] ]
-  ;
-  implem:
-    [ [ x = implem_p -> x ] ]
-  ;
-  top_phrase:
-    [ [ x = top_phrase_p -> x ] ]
-  ;
-  use_file:
-    [ [ x = use_file_p -> x ] ]
-  ;
-END;
diff --git a/camlp4/unmaintained/compile/compile.ml b/camlp4/unmaintained/compile/compile.ml
deleted file mode 100644 (file)
index b5e6ba5..0000000
+++ /dev/null
@@ -1,574 +0,0 @@
-(* camlp4r *)
-
-
-open Gramext;
-
-value strict_parsing = ref False;
-value keywords = ref [];
-
-value _loc = Loc.ghost;
-
-(* Watch the segmentation faults here! the compiled file must have been
-   loaded in camlp4 with the option pa_extend.cmo -meta_action. *)
-value magic_act (act : Obj.t) : MLast.expr = Obj.magic act;
-
-(* Names of symbols for error messages; code borrowed to grammar.ml *)
-
-value rec name_of_symbol entry =
-  fun
-  [ Snterm e -> "[" ^ e.ename ^ "]"
-  | Snterml e l -> "[" ^ e.ename ^ " level " ^ l ^ "]"
-  | Sself | Snext -> "[" ^ entry.ename ^ "]"
-  | Stoken tok -> entry.egram.glexer.Token.tok_text tok
-  | _ -> "???" ]
-;
-
-value rec name_of_symbol_failed entry =
-  fun
-  [ Slist0 s -> name_of_symbol_failed entry s
-  | Slist0sep s _ -> name_of_symbol_failed entry s
-  | Slist1 s -> name_of_symbol_failed entry s
-  | Slist1sep s _ -> name_of_symbol_failed entry s
-  | Sopt s -> name_of_symbol_failed entry s
-  | Stree t -> name_of_tree_failed entry t
-  | s -> name_of_symbol entry s ]
-and name_of_tree_failed entry =
-  fun
-  [ Node {node = s; brother = bro; son = son} ->
-      let txt = name_of_symbol_failed entry s in
-      let txt =
-        match (s, son) with
-        [ (Sopt _, Node _) -> txt ^ " or " ^ name_of_tree_failed entry son
-        | _ -> txt ]
-      in
-      let txt =
-        match bro with
-        [ DeadEnd | LocAct _ _ -> txt
-        | _ -> txt ^ " or " ^ name_of_tree_failed entry bro ]
-      in
-      txt
-  | DeadEnd | LocAct _ _ -> "???" ]
-;
-
-value tree_failed entry prev_symb tree =
-  let (s2, s3) =
-    let txt = name_of_tree_failed entry tree in
-    match prev_symb with
-    [ Slist0 s ->
-        let txt1 = name_of_symbol_failed entry s in
-        ("", txt1 ^ " or " ^ txt)
-    | Slist1 s ->
-        let txt1 = name_of_symbol_failed entry s in
-        ("", txt1 ^ " or " ^ txt)
-    | Slist0sep s sep ->
-        let txt1 = name_of_symbol_failed entry s in
-        ("", txt1 ^ " or " ^ txt)
-    | Slist1sep s sep ->
-        let txt1 = name_of_symbol_failed entry s in
-        ("", txt1 ^ " or " ^ txt)
-    | Sopt _ | Stree _ -> ("", txt)
-    | _ -> (name_of_symbol entry prev_symb, txt) ]
-  in
-  <:expr<
-    P.error $str:entry.ename$ $`str:s2$ $`str:s3$
-  >>
-;
-
-(* Compilation *)
-
-value rec find_act =
-  fun
-  [ DeadEnd -> failwith "find_act"
-  | LocAct act _ -> (magic_act act, 0)
-  | Node {son = son; brother = bro} ->
-      let (act, n) = try find_act son with [ Failure _ -> find_act bro ] in
-      (act, n + 1) ]
-;
-
-value level_number e l =
-  match e.edesc with
-  [ Dlevels elevs ->
-      loop 0 elevs where rec loop n =
-        fun
-        [ [lev :: levs] -> if lev.lname = Some l then n else loop (n + 1) levs
-        | [] -> failwith ("level " ^ l ^ " not found in entry " ^ e.ename) ]
-  | Dparser _ -> 0 ]
-;
-
-value nth_patt_of_act (e, n) =
-  let patt_list =
-    loop e where rec loop =
-      fun
-      [ <:expr< fun (_loc : Locaction.t) -> $_$ >> ->
-        []
-      | <:expr< fun ($p$ : $_$) -> $e$ >> -> [p :: loop e]
-      | <:expr< fun $p$ -> $e$ >> -> [p :: loop e]
-      | _ -> failwith "nth_patt_of_act" ]
-  in
-  List.nth patt_list n
-;
-
-value rec last_patt_of_act =
-  fun
-  [ <:expr< fun ($p$ : $_$) (_loc : Locaction.t) ->
-    $_$ >> -> p
-  | <:expr< fun $_$ -> $e$ >> -> last_patt_of_act e
-  | _ -> failwith "last_patt_of_act" ]
-;
-
-#load "pr_r.cmo";
-value rec final_action =
-  fun
-  [
-    <:expr< fun (_loc : Loc.t) -> ($e$ : $_$) >> -> e
-  | <:expr< fun $_$ -> $e$ >> -> final_action e
-  | ast -> do {
-    print_endline "final_action failed";
-    Pcaml.print_implem.val [(MLast.StExp _loc ast, _loc)];
-    failwith "final_action";
-  } ]
-;
-
-value parse_standard_symbol e rkont fkont ending_act =
-  <:expr<
-     match try Some ($e$ __strm) with [ Stream.Failure -> None ] with
-     [ Some $nth_patt_of_act ending_act$ -> $rkont$
-     | _ -> $fkont$ ]
-  >>
-;
-
-value parse_symbol_no_failure e rkont fkont ending_act =
-  <:expr<
-     let $nth_patt_of_act ending_act$ =
-       try $e$ __strm with [ Stream.Failure -> raise (Stream.Error "") ]
-     in
-     $rkont$
-  >>
-;
-
-value rec contain_loc =
-  fun
-  [ <:expr< $lid:s$ >> -> (s = "loc") || (s = "_loc")
-  | <:expr< $uid:_$ >> -> False
-  | <:expr< $str:_$ >> -> False
-  | <:expr< ($list:el$) >> -> List.exists contain_loc el
-  | <:expr< $e1$ $e2$ >> -> contain_loc e1 || contain_loc e2
-  | _ -> True ]
-;
-
-value gen_let_loc _loc e =
-  if contain_loc e then <:expr< let _loc = P.gloc bp __strm in $e$ >> else e
-;
-
-value phony_entry = Grammar.Entry.obj Pcaml.implem;
-
-value rec parse_tree entry nlevn alevn (tree, fst_symb) act_kont kont =
-  match tree with
-  [ DeadEnd -> kont
-  | LocAct act _ ->
-      let act = magic_act act in
-      act_kont False act
-  | Node {node = Sself; son = LocAct act _; brother = bro} ->
-      let act = magic_act act in
-      let n = entry.ename ^ "_" ^ string_of_int alevn in
-      let e =
-        if strict_parsing.val || alevn = 0 || fst_symb then <:expr< $lid:n$ >>
-        else <:expr< P.orzero $lid:n$ $lid:entry.ename ^ "_0"$ >>
-      in
-      let p2 =
-        match bro with
-        [ DeadEnd -> kont
-        | _ -> parse_tree entry nlevn alevn (bro, fst_symb) act_kont kont ]
-      in
-      let p1 = act_kont True act in
-      parse_standard_symbol e p1 p2 (act, 0)
-  | Node {node = s; son = LocAct act _; brother = bro} ->
-      let act = magic_act act in
-      let p2 = parse_tree entry nlevn alevn (bro, fst_symb) act_kont kont in
-      let p1 = act_kont False act in
-      parse_symbol entry nlevn s p1 p2 (act, 0)
-  | Node {node = s; son = son; brother = bro} ->
-      let p2 = parse_tree entry nlevn alevn (bro, fst_symb) act_kont kont in
-      let p1 =
-        let err =
-          let txt = tree_failed entry s son in
-          <:expr< raise (Stream.Error $txt$) >>
-        in
-        match son with
-        [ Node {brother = DeadEnd} ->
-            parse_tree entry nlevn alevn (son, False) act_kont err
-        | _ ->
-            let p1 =
-              parse_tree entry nlevn alevn (son, True) act_kont
-                <:expr< raise Stream.Failure >>
-            in
-            <:expr< try $p1$ with [ Stream.Failure -> $err$ ] >> ]
-      in
-      parse_symbol entry nlevn s p1 p2 (find_act son) ]
-and parse_symbol entry nlevn s rkont fkont ending_act =
-  match s with
-  [ Slist0 s ->
-      let e = <:expr< P.list0 $symbol_parser entry nlevn s$ >> in
-      parse_symbol_no_failure e rkont fkont ending_act
-  | Slist1 s ->
-      let e = <:expr< P.list1 $symbol_parser entry nlevn s$ >> in
-      parse_standard_symbol e rkont fkont ending_act
-  | Slist0sep s sep ->
-      let e =
-        <:expr<
-          P.list0sep $symbol_parser entry nlevn s$
-            $symbol_parser entry nlevn sep$ >>
-      in
-      parse_symbol_no_failure e rkont fkont ending_act
-  | Slist1sep s sep ->
-      let e =
-        <:expr<
-           P.list1sep $symbol_parser entry nlevn s$
-             $symbol_parser entry nlevn sep$ >>
-      in
-      parse_standard_symbol e rkont fkont ending_act
-  | Sopt s ->
-      let e = <:expr< P.option $symbol_parser entry nlevn s$ >> in
-      parse_symbol_no_failure e rkont fkont ending_act
-  | Stree tree ->
-      let kont = <:expr< raise Stream.Failure >> in
-      let act_kont _ act = gen_let_loc _loc (final_action act) in
-      let e = parse_tree phony_entry 0 0 (tree, True) act_kont kont in
-      parse_standard_symbol <:expr< fun __strm -> $e$ >> rkont fkont ending_act
-  | Snterm e ->
-      let n =
-        match e.edesc with
-        [ Dparser _ -> e.ename
-        | Dlevels _ -> e.ename ^ "_0" ]
-      in
-      parse_standard_symbol <:expr< $lid:n$ >> rkont fkont ending_act
-  | Snterml e l ->
-      let n = e.ename ^ "_" ^ string_of_int (level_number e l) in
-      parse_standard_symbol <:expr< $lid:n$ >> rkont fkont ending_act
-  | Sself ->
-      let n = entry.ename ^ "_0" in
-      parse_standard_symbol <:expr< $lid:n$ >> rkont fkont ending_act
-  | Snext ->
-      let n = entry.ename ^ "_" ^ string_of_int nlevn in
-      parse_standard_symbol <:expr< $lid:n$ >> rkont fkont ending_act
-  | Stoken tok ->
-      let _ =
-        do {
-          if fst tok = "" && not (List.mem (snd tok) keywords.val) then
-            keywords.val := [snd tok :: keywords.val]
-          else ()
-        }
-      in
-      let p =
-        let patt = nth_patt_of_act ending_act in
-        let p_con = fst tok in
-        let p_prm = snd tok in
-        if snd tok = "" then
-          if fst tok = "ANY" then <:patt< (_, $patt$) >>
-          else <:patt< ($`str:p_con$, $patt$) >>
-        else
-          match patt with
-          [ <:patt< _ >> -> <:patt< ($`str:p_con$, $`str:p_prm$) >>
-          | _ -> <:patt< ($`str:p_con$, ($`str:p_prm$ as $patt$)) >> ]
-      in
-      <:expr<
-        match Stream.peek __strm with
-        [ Some $p$ -> do { Stream.junk __strm; $rkont$ }
-        | _ -> $fkont$ ]
-      >>
-  | _ ->
-      parse_standard_symbol <:expr< not_impl >> rkont fkont ending_act ]
-and symbol_parser entry nlevn =
-  fun
-  [ Snterm e ->
-      let n = e.ename ^ "_0" in
-      <:expr< $lid:n$ >>
-  | Snterml e l ->
-      let n = e.ename ^ "_" ^ string_of_int (level_number e l) in
-      <:expr< $lid:n$ >>
-  | Snext ->
-      let n = entry.ename ^ "_" ^ string_of_int nlevn in
-      if strict_parsing.val then <:expr< $lid:n$ >>
-      else
-        let n0 = entry.ename ^ "_0" in
-        <:expr< P.orzero $lid:n$ $lid:n0$ >>
-  | Stoken tok ->
-      let _ =
-        do {
-          if fst tok = "" && not (List.mem (snd tok) keywords.val) then
-            keywords.val := [snd tok :: keywords.val]
-          else ()
-        }
-      in
-      <:expr< P.token ($`str:fst tok$, $`str:snd tok$) >>
-  | Stree tree ->
-      let kont = <:expr< raise Stream.Failure >> in
-      let act_kont _ act = final_action act in
-      <:expr<
-        fun __strm ->
-          $parse_tree phony_entry 0 0 (tree, True) act_kont kont$
-      >>
-  | _ ->
-      <:expr< aaa >> ]
-;
-
-value rec start_parser_of_levels entry clevn levs =
-  let n = entry.ename ^ "_" ^ string_of_int clevn in
-  let next = entry.ename ^ "_" ^ string_of_int (clevn + 1) in
-  let p = <:patt< $lid:n$ >> in
-  match levs with
-  [ [] -> [Some (p, <:expr< fun __strm -> raise Stream.Failure >>)]
-  | [lev :: levs] ->
-      let pel = start_parser_of_levels entry (succ clevn) levs in
-      match lev.lprefix with
-      [ DeadEnd ->
-          let ncont =
-             if not strict_parsing.val && clevn = 0 then
-               entry.ename ^ "_gen_cont"
-             else entry.ename ^ "_" ^ string_of_int clevn ^ "_cont"
-          in
-          let curr =
-            <:expr< let a = $lid:next$ __strm in $lid:ncont$ bp a __strm >>
-          in
-          let curr = <:expr< let bp = Stream.count __strm in $curr$ >> in
-          let e = <:expr< fun __strm -> $curr$ >> in
-          let pel = if levs = [] then [] else pel in
-          [Some (p, e) :: pel]
-      | tree ->
-          let alevn = clevn in
-          let (kont, pel) =
-            match levs with
-            [ [] -> (<:expr< raise Stream.Failure >>, [])
-            | _ ->
-                let e =
-                  match (lev.assoc, lev.lsuffix) with
-                  [ (NonA, _) | (_, DeadEnd) -> <:expr< $lid:next$ __strm >>
-                  | _ ->
-                      let ncont =
-                        entry.ename ^ "_" ^ string_of_int clevn ^ "_cont"
-                      in
-                      <:expr<
-                        let a = $lid:next$ __strm in
-                        $lid:ncont$ bp a __strm
-                      >> ]
-                in
-                (e, pel) ]
-          in
-          let act_kont end_with_self act =
-            if lev.lsuffix = DeadEnd then gen_let_loc _loc (final_action act)
-            else
-              let ncont = entry.ename ^ "_" ^ string_of_int clevn ^ "_cont" in
-              gen_let_loc _loc
-                <:expr< $lid:ncont$ bp $final_action act$ __strm >>
-          in
-          let curr =
-            parse_tree entry (succ clevn) alevn (tree, True) act_kont kont
-          in
-          let curr = <:expr< let bp = Stream.count __strm in $curr$ >> in
-          let e = <:expr< fun __strm -> $curr$ >> in
-          [Some (p, e) :: pel] ] ]
-;
-
-value rec continue_parser_of_levels entry clevn levs =
-  let n = entry.ename ^ "_" ^ string_of_int clevn ^ "_cont" in
-  let p = <:patt< $lid:n$ >> in
-  match levs with
-  [ [] -> [None]
-  | [lev :: levs] ->
-      let pel = continue_parser_of_levels entry (succ clevn) levs in
-      match lev.lsuffix with
-      [ DeadEnd ->
-          [None :: pel]
-      | tree ->
-          let alevn =
-            match lev.assoc with
-            [ LeftA | NonA -> succ clevn
-            | RightA -> clevn ]
-          in
-          let (kont, pel) =
-            match levs with
-            [ [] -> (<:expr< a__ >>, [])
-            | _ -> (<:expr< a__ >>, pel) ]
-          in
-          let act_kont end_with_self act =
-            let p = last_patt_of_act act in
-            match lev.assoc with
-            [ RightA | NonA ->
-                <:expr<
-                  let $p$ = a__ in
-                  $gen_let_loc _loc (final_action act)$
-                >>
-            | LeftA ->
-                let ncont =
-                  entry.ename ^ "_" ^ string_of_int clevn ^ "_cont"
-                in
-                gen_let_loc _loc
-                  <:expr<
-                    let $p$ = a__ in
-                    $lid:ncont$ bp $final_action act$ __strm
-                  >> ]
-          in
-          let curr =
-            parse_tree entry (succ clevn) alevn (tree, True) act_kont kont
-          in
-          let e = <:expr< fun bp a__ __strm -> $curr$ >> in
-          [Some (p, e) :: pel] ] ]
-;
-
-value continue_parser_of_levels_again entry levs =
-  let n = entry.ename ^ "_gen_cont" in
-  let e =
-    loop <:expr< a__ >> 0 levs where rec loop var levn =
-      fun
-      [ [] -> <:expr< if x == a__ then x else $lid:n$ bp x __strm >>
-      | [lev :: levs] ->
-          match lev.lsuffix with
-          [ DeadEnd -> loop var (levn + 1) levs
-          | _ ->
-              let n = entry.ename ^ "_" ^ string_of_int levn ^ "_cont" in
-              let rest = loop <:expr< x >> (levn + 1) levs in
-              <:expr< let x = $lid:n$ bp $var$ __strm in $rest$ >> ] ]
-  in
-  (<:patt< $lid:n$ >>, <:expr< fun bp a__ __strm -> $e$ >>)
-;
-
-value empty_entry ename =
-  let p = <:patt< $lid:ename$ >> in
-  let e =
-    <:expr<
-      fun __strm ->
-        raise (Stream.Error $str:"entry [" ^ ename ^ "] is empty"$) >>
-  in
-  [Some (p, e)]
-;
-
-value start_parser_of_entry entry =
-  match entry.edesc with
-  [ Dlevels [] -> empty_entry entry.ename
-  | Dlevels elev -> start_parser_of_levels entry 0 elev
-  | Dparser p -> [] ]
-;
-
-value continue_parser_of_entry entry =
-  match entry.edesc with
-  [ Dlevels elev -> continue_parser_of_levels entry 0 elev
-  | Dparser p -> [] ]
-;
-
-value continue_parser_of_entry_again entry =
-  if strict_parsing.val then []
-  else
-    match entry.edesc with
-    [ Dlevels ([_; _ :: _] as levs) ->
-        [continue_parser_of_levels_again entry levs]
-    | _ -> [] ]
-;
-
-value rec list_alternate l1 l2 =
-  match (l1, l2) with
-  [ ([x1 :: l1], [x2 :: l2]) -> [x1; x2 :: list_alternate l1 l2]
-  | ([], l2) -> l2
-  | (l1, []) -> l1 ]
-;
-
-value compile_entry entry =
-  let pel1 = start_parser_of_entry entry in
-  let pel2 = continue_parser_of_entry entry in
-  let pel = list_alternate pel1 pel2 in
-  List.fold_right
-    (fun pe list ->
-       match pe with
-       [ Some pe -> [pe :: list]
-       | None -> list ])
-    pel (continue_parser_of_entry_again entry)
-;
-
-(* get all entries connected together *)
-
-value rec scan_tree list =
-  fun
-  [ Node {node = n; son = son; brother = bro} ->
-      let list = scan_symbol list n in
-      let list = scan_tree list son in
-      let list = scan_tree list bro in
-      list
-  | LocAct _ _ | DeadEnd -> list ]
-and scan_symbol list =
-  fun
-  [ Snterm e -> scan_entry list e
-  | Snterml e l -> scan_entry list e
-  | Slist0 s -> scan_symbol list s
-  | Slist0sep s sep -> scan_symbol (scan_symbol list s) sep
-  | Slist1 s -> scan_symbol list s
-  | Slist1sep s sep -> scan_symbol (scan_symbol list s) sep
-  | Sopt s -> scan_symbol list s
-  | Stree t -> scan_tree list t
-  | Smeta _ _ _ | Sself | Snext | Stoken _ -> list ]
-and scan_level list lev =
-  let list = scan_tree list lev.lsuffix in
-  let list = scan_tree list lev.lprefix in
-  list
-and scan_levels list levs = List.fold_left scan_level list levs
-and scan_entry list entry =
-  if List.memq entry list then list
-  else
-    match entry.edesc with
-    [ Dlevels levs -> scan_levels [entry :: list] levs
-    | Dparser _ -> list ]
-;
-
-value all_entries_in_graph list entry =
-  List.rev (scan_entry list entry)
-;
-
-(* main *)
-
-value entries = ref [];
-
-value rec list_mem_right_assoc x =
-  fun
-  [ [] -> False
-  | [(a, b) :: l] -> x = b || list_mem_right_assoc x l ]
-;
-
-value rec expr_list =
-  fun
-  [ [] -> <:expr< [] >>
-  | [x :: l] -> <:expr< [$`str:x$ :: $expr_list l$] >> ]
-;
-
-value compile () =
-  let _ = do { keywords.val := []; } in
-  let list = List.fold_left all_entries_in_graph [] entries.val in
-  let list =
-    List.filter (fun e -> List.memq e list) entries.val @
-    List.filter (fun e -> not (List.memq e entries.val)) list
-  in
-  let list =
-    let set = ref [] in
-    List.fold_right
-      (fun entry list ->
-         if List.mem entry.ename set.val then
-           list
-         else do { set.val := [entry.ename :: set.val]; [entry :: list] })
-        list []
-  in
-  let pell = List.map compile_entry list in
-  let pel = List.flatten pell in
-  let si1 = <:str_item< value rec $list:pel$ >> in
-  let si2 =
-    let list = List.sort compare keywords.val in
-    <:str_item<
-      List.iter (fun kw -> P.lexer.Token.tok_using ("", kw))
-        $expr_list list$
-    >>
-  in
-  let loc = Loc.ghost in
-  ([(si1, loc); (si2, loc)], False)
-;
-
-Pcaml.parse_implem.val := fun _ _ -> compile ();
-
-Pcaml.add_option "-strict_parsing" (Arg.Set strict_parsing)
-  "Don't generate error recovering by trying continuations or first levels"
-;
diff --git a/camlp4/unmaintained/compile/compile.sh b/camlp4/unmaintained/compile/compile.sh
deleted file mode 100755 (executable)
index a2f4f77..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh -e
-
-ARGS=
-FILES=
-ENTRIES=
-while test "" != "$1"; do
-        case $1 in
-        -e)
-           shift;
-           if test "$ENTRIES" != ""; then ENTRIES="$ENTRIES; "; fi
-           ENTRIES="$ENTRIES$1";;
-        *.ml*) FILES="$FILES $1";;
-        *) ARGS="$ARGS $1";;
-        esac
-        shift
-done
-
-cat $FILES | sed -e 's/Pcaml.parse_i.*$//' > tmp.ml
-echo "Compile.entries.val := [$ENTRIES];" >> tmp.ml
-> tmp.mli
-set -x
-$OTOP/boot/ocamlrun$EXE $OTOP/boot/ocamlc -I $OTOP/boot -c tmp.mli
-$OTOP/boot/ocamlrun$EXE ../boot/camlp4boot$EXE -meta_action tmp.ml -o tmp.ppo
-$OTOP/boot/ocamlrun$EXE $OTOP/boot/ocamlc -I $OTOP/boot -I ../lib -I ../camlp4 -c -impl tmp.ppo
-rm tmp.ppo
-> tmp.null
-$OTOP/boot/ocamlrun$EXE ../camlp4/camlp4$EXE ./compile.cmo ./tmp.cmo ../etc/pr_r.cmo ../etc/pr_rp.cmo $ARGS -sep "\n\n" -impl tmp.null && rm tmp.*
diff --git a/camlp4/unmaintained/etc/.cvsignore b/camlp4/unmaintained/etc/.cvsignore
deleted file mode 100644 (file)
index 50d8a8e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-*.cm[oia]
-camlp4o
-camlp4sch
-camlp4o.opt
-version.sh
-mkcamlp4.sh
-mkcamlp4.mpw
diff --git a/camlp4/unmaintained/etc/.depend b/camlp4/unmaintained/etc/.depend
deleted file mode 100644 (file)
index 863adc1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-parserify.cmo: parserify.cmi 
-parserify.cmx: parserify.cmi 
-pr_op_main.cmo: parserify.cmi 
-pr_op_main.cmx: parserify.cmx 
-pr_rp_main.cmo: parserify.cmi 
-pr_rp_main.cmx: parserify.cmx 
diff --git a/camlp4/unmaintained/etc/Makefile b/camlp4/unmaintained/etc/Makefile
deleted file mode 100644 (file)
index 196dd2b..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-include ../config/Makefile.cnf
-
-INCLUDES=-I ../camlp4 -I ../lib -I ../meta -I $(OTOP)/lex -I $(OTOP)/parsing
-OBJS=q_phony.cmo pa_o.cmo pa_op.cmo pa_oop.cmo pa_ru.cmo pa_extfun.cmo pa_fstream.cmo pa_ifdef.cmo pr_r.cmo pr_rp.cmo pr_o.cmo pr_op.cmo pr_extend.cmo pr_extfun.cmo pr_null.cmo pr_depend.cmo genTraversal.cmo fi_exc_tracer.cmo
-INTF=pa_o.cmi
-CAMLP4OM=pa_o.cmo pa_op.cmo ../meta/pr_dump.cmo
-CAMLP4OMX=$(CAMLP4OM:.cmo=.cmx)
-EXECUTABLES=camlp4o
-
-include ../config/Makefile.base
-
-all-local: mkcamlp4.sh
-
-pr_rp.cmo: parserify.cmo pr_rp_main.cmo
-       $(OCAMLC) parserify.cmo pr_rp_main.cmo -a -o $@
-
-pr_op.cmo: parserify.cmo pr_op_main.cmo
-       $(OCAMLC) parserify.cmo pr_op_main.cmo -a -o $@
-
-pr_rp.cmx: parserify.cmx pr_rp_main.cmx
-       $(OCAMLOPT) parserify.cmx pr_rp_main.cmx -a -o pr_rp.cmxa
-       mv pr_rp.cmxa pr_rp.cmx
-       mv pr_rp.$(A) pr_rp.$(O)
-
-pr_op.cmx: parserify.cmx pr_op_main.cmx
-       $(OCAMLOPT) parserify.cmx pr_op_main.cmx -a -o pr_op.cmxa
-       mv pr_op.cmxa pr_op.cmx
-       mv pr_op.$(A) pr_op.$(O)
-
-camlp4o$(EXE): ../camlp4/camlp4$(EXE) $(CAMLP4OM)
-       rm -f camlp4o$(EXE)
-       cd ../camlp4; $(MAKE) CAMLP4=../etc/camlp4o$(EXE) CAMLP4M="-I ../etc $(CAMLP4OM)"
-
-camlp4o.opt: $(CAMLP4OMX)
-       rm -f camlp4o.opt
-       cd ../camlp4; $(MAKE) ../etc/camlp4o.opt CAMLP4OPT=../etc/camlp4o.opt CAMLP4M="-I ../etc $(CAMLP4OMX)"
-
-mkcamlp4.sh: mkcamlp4.sh.tpl version.sh
-       sed -e "s!LIBDIR!$(LIBDIR)!g" -e "/define VERSION/r version.sh" \
-           mkcamlp4.sh.tpl > mkcamlp4.sh
-
-version.sh : $(OTOP)/VERSION
-       echo "VERSION=\"`head -1 ../VERSION`\"" >version.sh
-
-install-local:
-       -$(MKDIR) "$(LIBDIR)/camlp4" "$(BINDIR)"
-       cp $(OBJS) "$(LIBDIR)/camlp4/."
-       cp $(INTF) "$(LIBDIR)/camlp4/."
-       cp camlp4o$(EXE) "$(BINDIR)/."
-       if test -f camlp4o.opt; then \
-         cp camlp4o.opt "$(BINDIR)/camlp4o.opt$(EXE)"; \
-         cp $(OBJSX) "$(LIBDIR)/camlp4/."; \
-         for file in $(OBJSX); do \
-           cp "`echo $$file | sed -e 's/\.cmx$$/.$(O)/'`" "$(LIBDIR)/camlp4/."; \
-         done ; \
-       fi
-       cp mkcamlp4.sh "$(BINDIR)/mkcamlp4"
-       chmod a+x "$(BINDIR)/mkcamlp4"
-
-include .depend
diff --git a/camlp4/unmaintained/etc/pa_fstream.ml b/camlp4/unmaintained/etc/pa_fstream.ml
deleted file mode 100644 (file)
index e5027b5..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-(* camlp4r pa_extend.cmo q_MLast.cmo *)
-
-
-open Pcaml;
-
-type spat_comp =
-  [ SpTrm of Loc.t and MLast.patt and option MLast.expr
-  | SpNtr of Loc.t and MLast.patt and MLast.expr
-  | SpStr of Loc.t and MLast.patt ]
-;
-type sexp_comp =
-  [ SeTrm of Loc.t and MLast.expr
-  | SeNtr of Loc.t and MLast.expr ]
-;
-
-(* parsers *)
-
-value strm_n = "__strm";
-value next_fun _loc = <:expr< Fstream.next >>;
-
-value rec pattern_eq_expression p e =
-  match (p, e) with
-  [ (<:patt< $lid:a$ >>, <:expr< $lid:b$ >>) -> a = b
-  | (<:patt< $uid:a$ >>, <:expr< $uid:b$ >>) -> a = b
-  | (<:patt< $p1$ $p2$ >>, <:expr< $e1$ $e2$ >>) ->
-      pattern_eq_expression p1 e1 && pattern_eq_expression p2 e2
-  | (<:patt< ($list:pl$) >>, <:expr< ($list:el$) >>) ->
-      loop pl el where rec loop pl el =
-        match (pl, el) with
-        [ ([p :: pl], [e :: el]) ->
-            pattern_eq_expression p e && loop pl el
-        | ([], []) -> True
-        | _ -> False ]
-  | _ -> False ]
-;
-
-value stream_pattern_component skont =
-  fun
-  [ SpTrm _loc p wo ->
-      let p = <:patt< Some ($p$, $lid:strm_n$) >> in
-      if wo = None && pattern_eq_expression p skont then
-        <:expr< $next_fun _loc$ $lid:strm_n$ >>
-      else
-        <:expr< match $next_fun _loc$ $lid:strm_n$ with
-                [ $p$ $when:wo$ -> $skont$
-                | _ -> None ] >>
-  | SpNtr _loc p e ->
-      let p = <:patt< Some ($p$, $lid:strm_n$) >> in
-      if pattern_eq_expression p skont then <:expr< $e$ $lid:strm_n$ >>
-      else
-        <:expr< match $e$ $lid:strm_n$ with
-                [ $p$ -> $skont$
-                | _ -> None ] >>
-  | SpStr _loc p ->
-      <:expr< let $p$ = $lid:strm_n$ in $skont$ >> ]
-;
-
-value rec stream_pattern _loc epo e =
-  fun
-  [ [] ->
-      let e =
-        match epo with
-        [ Some ep -> <:expr< let $ep$ = Fstream.count $lid:strm_n$ in $e$ >>
-        | None -> e ]
-      in
-      <:expr< Some ($e$, $lid:strm_n$) >>
-  | [spc :: spcl] ->
-      let skont = stream_pattern _loc epo e spcl in
-      stream_pattern_component skont spc ]
-;
-
-value rec parser_cases _loc =
-  fun
-  [ [] -> <:expr< None >>
-  | [(spcl, epo, e) :: spel] ->
-      match parser_cases _loc spel with
-      [ <:expr< None >> -> stream_pattern _loc epo e spcl
-      | pc ->
-          <:expr< match $stream_pattern _loc epo e spcl$ with
-                  [ Some _ as x -> x
-                  | None -> $pc$ ] >> ] ]
-;
-
-value cparser_match _loc me bpo pc =
-  let pc = parser_cases _loc pc in
-  let e =
-    match bpo with
-    [ Some bp -> <:expr< let $bp$ = Stream.count $lid:strm_n$ in $pc$ >>
-    | None -> pc ]
-  in
-  <:expr< let ($lid:strm_n$ : Stream.t _) = $me$ in $e$ >>
-;
-
-value cparser _loc bpo pc =
-  let e = parser_cases _loc pc in
-  let e =
-    match bpo with
-    [ Some bp -> <:expr< let $bp$ = Fstream.count $lid:strm_n$ in $e$ >>
-    | None -> e ]
-  in
-  let p = <:patt< ($lid:strm_n$ : Fstream.t _) >> in <:expr< fun $p$ -> $e$ >>
-;
-
-(* streams *)
-
-value slazy _loc x = <:expr< fun () -> $x$ >>;
-
-value rec cstream _loc =
-  fun
-  [ [] -> <:expr< Fstream.nil >>
-  | [SeTrm _loc e :: sel] ->
-      let e2 = cstream _loc sel in
-      let x = <:expr< Fstream.cons $e$ $e2$ >> in
-      <:expr< Fstream.flazy $slazy _loc x$ >>
-  | [SeNtr _loc e] ->
-      e
-  | [SeNtr _loc e :: sel] ->
-      let e2 = cstream _loc sel in
-      let x = <:expr< Fstream.app $e$ $e2$ >> in
-      <:expr< Fstream.flazy $slazy _loc x$ >> ]
-;
-
-EXTEND
-  GLOBAL: expr;
-  expr: LEVEL "top"
-    [ [ "fparser"; po = OPT ipatt; "["; pcl = LIST0 parser_case SEP "|"; "]" ->
-          <:expr< $cparser _loc po pcl$ >>
-      | "fparser"; po = OPT ipatt; pc = parser_case ->
-          <:expr< $cparser _loc po [pc]$ >>
-      | "match"; e = SELF; "with"; "parser"; po = OPT ipatt; "[";
-        pcl = LIST0 parser_case SEP "|"; "]" ->
-          <:expr< $cparser_match _loc e po pcl$ >>
-      | "match"; e = SELF; "with"; "parser"; po = OPT ipatt;
-        pc = parser_case ->
-          <:expr< $cparser_match _loc e po [pc]$ >> ] ]
-  ;
-  parser_case:
-    [ [ "[:"; sp = stream_patt; ":]"; po = OPT ipatt; "->"; e = expr ->
-          (sp, po, e) ] ]
-  ;
-  stream_patt:
-    [ [ spc = stream_patt_comp -> [spc]
-      | spc = stream_patt_comp; ";"; sp = LIST1 stream_patt_comp SEP ";" ->
-          [spc :: sp]
-      | -> [] ] ]
-  ;
-  stream_patt_comp:
-    [ [ "`"; p = patt; eo = OPT [ "when"; e = expr -> e ] -> SpTrm _loc p eo
-      | p = patt; "="; e = expr -> SpNtr _loc p e
-      | p = patt -> SpStr _loc p ] ]
-  ;
-  ipatt:
-    [ [ i = LIDENT -> <:patt< $lid:i$ >> ] ]
-  ;
-  expr: LEVEL "simple"
-    [ [ "fstream"; "[:"; se = LIST0 stream_expr_comp SEP ";"; ":]" ->
-          <:expr< $cstream _loc se$ >> ] ]
-  ;
-  stream_expr_comp:
-    [ [ "`"; e = expr -> SeTrm _loc e
-      | e = expr -> SeNtr _loc e ] ]
-  ;
-END;
diff --git a/camlp4/unmaintained/etc/pa_ifdef.ml b/camlp4/unmaintained/etc/pa_ifdef.ml
deleted file mode 100644 (file)
index 0665263..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-(* camlp4r pa_extend.cmo q_MLast.cmo *)
-
-
-(* This module is deprecated since version 3.07; use pa_macro.ml instead *)
-
-value _ =
-  prerr_endline "Warning: pa_ifdef is deprecated since OCaml 3.07. Use pa_macro instead."
-;
-
-type item_or_def 'a =
-  [ SdStr of 'a | SdDef of string | SdUnd of string | SdNop ]
-;
-
-value list_remove x l =
-  List.fold_right (fun e l -> if e = x then l else [e :: l]) l []
-;
-
-value defined = ref ["OCAML_308"; "OCAML_307"; "OCAML_305"; "CAMLP4_300"; "NEWSEQ"];
-value define x = defined.val := [x :: defined.val];
-value undef x = defined.val := list_remove x defined.val;
-
-EXTEND
-  GLOBAL: Pcaml.expr Pcaml.str_item Pcaml.sig_item;
-  Pcaml.expr: LEVEL "top"
-    [ [ "ifdef"; c = UIDENT; "then"; e1 = Pcaml.expr; "else";
-         e2 = Pcaml.expr ->
-          if List.mem c defined.val then e1 else e2
-      | "ifndef"; c = UIDENT; "then"; e1 = Pcaml.expr; "else";
-         e2 = Pcaml.expr ->
-          if List.mem c defined.val then e2 else e1 ] ]
-  ;
-  Pcaml.str_item: FIRST
-    [ [ x = def_undef_str ->
-          match x with
-          [ SdStr si -> si
-          | SdDef x -> do { define x; <:str_item< declare end >> }
-          | SdUnd x -> do { undef x; <:str_item< declare end >> }
-          | SdNop -> <:str_item< declare end >> ] ] ]
-  ;
-  def_undef_str:
-    [ [ "ifdef"; c = UIDENT; "then"; e1 = str_item_def_undef;
-        "else"; e2 = str_item_def_undef ->
-          if List.mem c defined.val then e1 else e2
-      | "ifdef"; c = UIDENT; "then"; e1 = str_item_def_undef ->
-          if List.mem c defined.val then e1 else SdNop
-      | "ifndef"; c = UIDENT; "then"; e1 = str_item_def_undef;
-        "else"; e2 = str_item_def_undef ->
-          if List.mem c defined.val then e2 else e1
-      | "ifndef"; c = UIDENT; "then"; e1 = str_item_def_undef ->
-          if List.mem c defined.val then SdNop else e1
-      | "define"; c = UIDENT -> SdDef c
-      | "undef"; c = UIDENT -> SdUnd c ] ]
-  ;
-  str_item_def_undef:
-    [ [ d = def_undef_str -> d
-      | si = Pcaml.str_item -> SdStr si ] ]
-  ;
-  Pcaml.sig_item: FIRST
-    [ [ x = def_undef_sig ->
-          match x with
-          [ SdStr si -> si
-          | SdDef x -> do { define x; <:sig_item< declare end >> }
-          | SdUnd x -> do { undef x; <:sig_item< declare end >> }
-          | SdNop -> <:sig_item< declare end >> ] ] ]
-  ;
-  def_undef_sig:
-    [ [ "ifdef"; c = UIDENT; "then"; e1 = sig_item_def_undef;
-        "else"; e2 = sig_item_def_undef ->
-          if List.mem c defined.val then e1 else e2
-      | "ifdef"; c = UIDENT; "then"; e1 = sig_item_def_undef ->
-          if List.mem c defined.val then e1 else SdNop
-      | "ifndef"; c = UIDENT; "then"; e1 = sig_item_def_undef;
-        "else"; e2 = sig_item_def_undef ->
-          if List.mem c defined.val then e2 else e1
-      | "ifndef"; c = UIDENT; "then"; e1 = sig_item_def_undef ->
-          if List.mem c defined.val then SdNop else e1
-      | "define"; c = UIDENT -> SdDef c
-      | "undef"; c = UIDENT -> SdUnd c ] ]
-  ;
-  sig_item_def_undef:
-    [ [ d = def_undef_sig -> d
-      | si = Pcaml.sig_item -> SdStr si ] ]
-  ;
-END;
-
-Pcaml.add_option "-D" (Arg.String define)
-  "<string> Define for ifdef instruction."
-;
-Pcaml.add_option "-U" (Arg.String undef)
-  "<string> Undefine for ifdef instruction."
-;
diff --git a/camlp4/unmaintained/etc/pa_oop.ml b/camlp4/unmaintained/etc/pa_oop.ml
deleted file mode 100644 (file)
index bb5684b..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-(* camlp4r pa_extend.cmo q_MLast.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Pcaml;
-
-type spat_comp =
-  [ SpTrm of Loc.t and MLast.patt and option MLast.expr
-  | SpNtr of Loc.t and MLast.patt and MLast.expr
-  | SpStr of Loc.t and MLast.patt ]
-;
-type sexp_comp =
-  [ SeTrm of Loc.t and MLast.expr | SeNtr of Loc.t and MLast.expr ]
-;
-
-value strm_n = "__strm";
-value peek_fun _loc = <:expr< Stream.peek >>;
-value junk_fun _loc = <:expr< Stream.junk >>;
-
-(* Parsers. *)
-
-value stream_pattern_component skont =
-  fun
-  [ SpTrm _loc p wo ->
-      (<:expr< $peek_fun _loc$ $lid:strm_n$ >>, p, wo,
-       <:expr< do { $junk_fun _loc$ $lid:strm_n$; $skont$ } >>)
-  | SpNtr _loc p e ->
-      (<:expr< try Some ($e$ $lid:strm_n$) with
-               [ Stream.Failure -> None ] >>,
-       p, None, skont)
-  | SpStr _loc p ->
-      (<:expr< Some $lid:strm_n$ >>, p, None, skont) ]
-;
-
-value rec stream_pattern _loc epo e ekont =
-  fun
-  [ [] ->
-      match epo with
-      [ Some ep -> <:expr< let $ep$ = Stream.count $lid:strm_n$ in $e$ >>
-      | _ -> e ]
-  | [(spc, err) :: spcl] ->
-      let skont =
-        let ekont err =
-          let str =
-            match err with
-            [ Some estr -> estr
-            | _ -> <:expr< "" >> ]
-          in
-          <:expr< raise (Stream.Error $str$) >>
-        in
-        stream_pattern _loc epo e ekont spcl
-      in
-      let (tst, p, wo, e) = stream_pattern_component skont spc in
-      let ckont = ekont err in
-      <:expr< match $tst$ with
-              [ Some $p$ $when:wo$ -> $e$ | _ -> $ckont$ ] >> ]
-;
-
-value rec parser_cases _loc =
-  fun
-  [ [] -> <:expr< raise Stream.Failure >>
-  | [(spcl, epo, e) :: spel] ->
-      stream_pattern _loc epo e (fun _ -> parser_cases _loc spel) spcl ]
-;
-
-value cparser _loc bpo pc =
-  let e = parser_cases _loc pc in
-  let e =
-    match bpo with
-    [ Some bp -> <:expr< let $bp$ = Stream.count $lid:strm_n$ in $e$ >>
-    | None -> e ]
-  in
-  let p = <:patt< ($lid:strm_n$ : Stream.t _) >> in
-  <:expr< fun $p$ -> $e$ >>
-;
-
-value cparser_match _loc me bpo pc =
-  let pc = parser_cases _loc pc in
-  let e =
-    match bpo with
-    [ Some bp -> <:expr< let $bp$ = Stream.count $lid:strm_n$ in $pc$ >>
-    | None -> pc ]
-  in
-  <:expr< let $lid:strm_n$ = $me$ in $e$ >>
-;
-
-(* streams *)
-
-value slazy _loc e = <:expr< fun _ -> $e$ >>;
-
-value rec cstream gloc =
-  fun
-  [ [] -> let _loc = gloc in <:expr< Stream.sempty >>
-  | [SeTrm _loc e :: secl] ->
-      <:expr< Stream.lcons $slazy _loc e$ $cstream gloc secl$ >>
-  | [SeNtr _loc e :: secl] ->
-      <:expr< Stream.lapp $slazy _loc e$ $cstream gloc secl$ >> ]
-;
-
-(* Syntax extensions in Ocaml grammar *)
-
-
-EXTEND
-  GLOBAL: expr;
-  expr: LEVEL "expr1"
-    [ [ "parser"; po = OPT ipatt; OPT "|"; pcl = LIST1 parser_case SEP "|" ->
-          <:expr< $cparser _loc po pcl$ >>
-      | "match"; e = expr; "with"; "parser"; po = OPT ipatt; OPT "|";
-        pcl = LIST1 parser_case SEP "|" ->
-          <:expr< $cparser_match _loc e po pcl$ >> ] ]
-  ;
-  parser_case:
-    [ [ "[<"; sp = stream_patt; ">]"; po = OPT ipatt; "->"; e = expr ->
-          (sp, po, e) ] ]
-  ;
-  stream_patt:
-    [ [ spc = stream_patt_comp -> [(spc, None)]
-      | spc = stream_patt_comp; ";"; sp = LIST1 stream_patt_comp_err SEP ";" ->
-          [(spc, None) :: sp]
-      | (* empty *) -> [] ] ]
-  ;
-  stream_patt_comp_err:
-    [ [ spc = stream_patt_comp;
-        eo = OPT [ "??"; e = expr LEVEL "expr1" -> e ] ->
-          (spc, eo) ] ]
-  ;
-  stream_patt_comp:
-    [ [ "'"; p = patt; eo = OPT [ "when"; e = (expr LEVEL "expr1") -> e ] ->
-         SpTrm _loc p eo
-     | p = patt; "="; e = (expr LEVEL "expr1") -> SpNtr _loc p e
-     | p = patt -> SpStr _loc p ] ]
-  ;
-  ipatt:
-    [ [ i = LIDENT -> <:patt< $lid:i$ >> ] ]
-  ;
-
-  expr: LEVEL "simple"
-    [ [ "[<"; se = LIST0 stream_expr_comp SEP ";"; ">]" ->
-          <:expr< $cstream _loc se$ >> ] ]
-  ;
-  stream_expr_comp:
-    [ [ "'"; e = expr LEVEL "expr1" -> SeTrm _loc e
-      | e = expr LEVEL "expr1" -> SeNtr _loc e ] ]
-  ;
-END;
diff --git a/camlp4/unmaintained/etc/pa_ru.ml b/camlp4/unmaintained/etc/pa_ru.ml
deleted file mode 100644 (file)
index 1761c5e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-(* camlp4r pa_extend.cmo q_MLast.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Pcaml;
-
-value o2b =
-  fun
-  [ Some _ -> True
-  | None -> False ]
-;
-
-EXTEND
-  GLOBAL: expr;
-  expr: LEVEL "top"
-    [ [ "do"; "{"; seq = sequence; "}" ->
-          match seq with
-          [ [e] -> e
-          | _ -> <:expr< do { $list:seq$ } >> ] ] ]
-  ;
-  sequence:
-    [ [ "let"; o = OPT "rec"; l = LIST1 let_binding SEP "and"; [ "in" | ";" ];
-        el = SELF ->
-          let e =
-            match el with
-            [ [e] -> e
-            | _ -> <:expr< do { $list:el$ } >> ]
-          in
-          [ <:expr< let $opt:o2b o$ $list:l$ in $e$ >> ]
-      | e = expr; ";"; el = SELF ->
-          let e = let _loc = MLast.loc_of_expr e in <:expr< ($e$ : unit) >> in
-          [e :: el]
-      | e = expr; ";" -> [e]
-      | e = expr -> [e] ] ]
-  ;
-END;
diff --git a/camlp4/unmaintained/etc/parserify.ml b/camlp4/unmaintained/etc/parserify.ml
deleted file mode 100644 (file)
index f0a3be8..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-(* camlp4r q_MLast.cmo *)
-
-
-(* FIXME FIXME *)
-value _loc = Loc.mk "FIXME parserify.ml";
-
-type spc =
-  [ SPCterm of (MLast.patt * option MLast.expr)
-  | SPCnterm of MLast.patt and MLast.expr
-  | SPCsterm of MLast.patt ]
-;
-
-exception NotImpl;
-
-value rec subst v =
-  MLast.Map.Expr.expr (fun [ <:expr@_loc< __strm >> -> <:expr< $lid:v$ >>
-                           | e -> e ])
-(* FIXME FIXME *)
-  (* match e with
-  [ <:expr< $lid:x$ >> -> if x = "__strm" then <:expr< $lid:v$ >> else e
-  | <:expr< $uid:_$ >> -> e
-  | <:expr< $int:_$ >> -> e
-  | <:expr< $chr:_$ >> -> e
-  | <:expr< $str:_$ >> -> e
-  | <:expr@_loc< $e1$ . $lab$ >> -> <:expr< $subst v e1$ . $lab$ >>
-  | <:expr@_loc< $x$ $y$ >> -> <:expr< $subst v x$ $subst v y$ >>
-  | <:expr@_loc< let $lid:s1$ = $e1$ in $e2$ >> ->
-      if s1 = v then <:expr< let $lid:s1$ = $subst v e1$ in $e2$ >>
-      else <:expr< let $lid:s1$ = $subst v e1$ in $subst v e2$ >>
-  | <:expr@_loc< let _ = $e1$ in $e2$ >> ->
-      <:expr< let _ = $subst v e1$ in $subst v e2$ >>
-  | <:expr@_loc< ($list:el$) >> -> <:expr< ($list:List.map (subst v) el$) >>
-  | _ -> raise NotImpl ]                                                        *)
-;
-
-value rec is_free v =
-  fun
-  [ <:expr< $lid:x$ >> -> x <> v
-  | <:expr< $uid:_$ >> -> True
-  | <:expr< $int:_$ >> -> True
-  | <:expr< $chr:_$ >> -> True
-  | <:expr< $str:_$ >> -> True
-  | <:expr< $e$ . $_$ >> -> is_free v e
-  | <:expr< $x$ $y$ >> -> is_free v x && is_free v y
-  | <:expr< let $lid:s1$ = $e1$ in $e2$ >> ->
-      is_free v e1 && (s1 = v || is_free v e2)
-  | <:expr< let _ = $e1$ in $e2$ >> -> is_free v e1 && is_free v e2
-  | <:expr< ($list:el$) >> -> List.for_all (is_free v) el
-  | _ -> raise NotImpl ]
-;
-
-value gensym =
-  let cnt = ref 0 in
-  fun () ->
-    do { incr cnt; "pr_rp_symb_" ^ string_of_int cnt.val }
-;
-
-value free_var_in_expr c e =
-  let rec loop_alpha v =
-    let x = String.make 1 v in
-    if is_free x e then Some x
-    else if v = 'z' then None
-    else loop_alpha (Char.chr (Char.code v + 1))
-  in
-  let rec loop_count cnt =
-    let x = String.make 1 c ^ string_of_int cnt in
-    if is_free x e then x else loop_count (succ cnt)
-  in
-  try
-    match loop_alpha c with
-    [ Some v -> v
-    | None -> loop_count 1 ]
-  with
-  [ NotImpl -> gensym () ]
-;
-
-value parserify _loc =
-  fun
-  [ <:expr< $e$ __strm >> -> e
-  | e -> <:expr< fun __strm -> $e$ >> ]
-;
-
-value is_raise_failure =
-  fun
-  [ <:expr< raise Stream.Failure >> -> True
-  | _ -> False ]
-;
-
-value is_raise_error =
-  fun
-  [ <:expr< raise (Stream.Error $_$) >> -> True
-  | _ -> False ]
-;
-
-value semantic _loc e =
-  try
-    if is_free "__strm" e then e
-    else
-      let v = free_var_in_expr 's' e in
-      <:expr< let $lid:v$ = __strm in $subst v e$ >>
-  with
-  [ NotImpl -> e ]
-;
-
-value rewrite_parser =
-  rewrite True where rec rewrite top ge =
-    match ge with
-    [ <:expr@_loc< let $p$ = try $e$ with [ Stream.Failure -> raise $exc$ ] in
-               $sp_kont$ >> ->
-        let f = parserify _loc e in
-        <:expr<
-          match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-          [ Some $p$ -> $rewrite False sp_kont$
-          | _ -> raise $exc$ ]
-        >>
-    | <:expr@_loc< let $p$ = Stream.count __strm in $f$ >> ->
-        try
-          if is_free "__strm" f then ge
-          else
-            let v = free_var_in_expr 's' f in
-            <:expr<
-              let $lid:v$ = __strm in
-              let $p$ = Stream.count __strm in $subst v f$
-            >>
-        with
-        [ NotImpl -> ge ]
-    | <:expr@_loc< let $p$ = __strm in $e$ >> ->
-        <:expr< let $p$ = __strm in $rewrite False e$ >>
-    | <:expr@_loc< let $p$ = $f$ __strm in $sp_kont$ >> when top ->
-        <:expr<
-          match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-          [ Some $p$ -> $rewrite False sp_kont$
-          | _ -> raise Stream.Failure ]
-        >>
-    | <:expr@_loc< let $p$ = $e$ in $sp_kont$ >> ->
-        if match e with
-           [ <:expr< match try Some $_$ with [ Stream.Failure -> None ] with
-                      [ $list:_$ ] >>
-           | <:expr< match Stream.peek __strm with [ $list:_$ ] >>
-           | <:expr< try $_$ with [ Stream.Failure -> $_$ ] >>
-           | <:expr< let $_$ = Stream.count __strm in $_$ >> -> True
-           | _ -> False ]
-        then
-          let f = rewrite True <:expr< fun __strm -> $e$ >> in
-          let exc =
-            if top then <:expr< Stream.Failure >>
-            else <:expr< Stream.Error "" >>
-          in
-          <:expr<
-            match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-            [ Some $p$ -> $rewrite False sp_kont$
-            | _ -> raise $exc$ ]
-          >>
-        else semantic _loc ge
-    | <:expr@_loc< match try Some $e$ with [ Stream.Failure -> None ] with
-                  [ Some $p$ -> $sp_kont$
-                  | _ -> $p_kont$ ] >> ->
-        let f = parserify _loc e in
-        if not top && is_raise_failure p_kont then semantic _loc ge
-        else
-          let (p, f, sp_kont, p_kont) =
-            if top || is_raise_error p_kont then
-              (p, f, rewrite False sp_kont, rewrite top p_kont)
-            else
-              let f =
-                <:expr<
-                  fun __strm ->
-                    match
-                      try Some ($f$ __strm) with [ Stream.Failure -> None ]
-                    with
-                    [ Some $p$ -> $rewrite False sp_kont$
-                    | _ -> $rewrite top p_kont$ ]
-                >>
-              in
-              (<:patt< a >>, f, <:expr< a >>,
-               <:expr< raise (Stream.Error "") >>)
-          in
-          <:expr<
-            match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-            [ Some $p$ -> $sp_kont$
-            | _ -> $p_kont$ ]
-          >>
-    | <:expr< match Stream.peek __strm with [ $list:pel$ ] >> ->
-        let rec iter pel =
-          match pel with
-          [ [(<:patt< Some $p$ >>, eo,
-              <:expr< do { Stream.junk __strm; $sp_kont$ } >>);
-             (<:patt< _ >>, None, p_kont) :: _] ->
-               <:expr<
-                 match Stream.peek __strm with
-                 [ Some $p$ $when:eo$ ->
-                     do { Stream.junk __strm; $rewrite False sp_kont$ }
-                 | _ -> $rewrite top p_kont$ ]
-               >>
-          | [(<:patt< Some $p$ >>, eo,
-              <:expr< do { Stream.junk __strm; $sp_kont$ } >>) :: pel] ->
-               let p_kont = iter pel in
-               <:expr<
-                 match Stream.peek __strm with
-                 [ Some $p$ $when:eo$ ->
-                     do { Stream.junk __strm; $rewrite False sp_kont$ }
-                 | _ -> $p_kont$ ]
-               >>
-          | _ ->
-              <:expr< match Stream.peek __strm with [ $list:pel$ ] >> ]
-        in
-        iter pel
-    | <:expr@_loc< try Some $e$ with [ Stream.Failure -> $p_kont$ ] >> ->
-        let f = parserify _loc e in
-        let e =
-          <:expr<
-            match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-            [ Some a -> Some a
-            | _ -> $p_kont$ ]
-          >>
-        in
-        rewrite top e
-    | <:expr@_loc< try $e$ with [ Stream.Failure -> $p_kont$ ] >> ->
-        let f = parserify _loc e in
-        let e =
-          <:expr<
-            match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-            [ Some a -> a
-            | _ -> $rewrite top p_kont$ ]
-          >>
-        in
-        rewrite top e
-    | <:expr< $f$ __strm >> ->
-        if top then
-          <:expr<
-            match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-            [ Some a -> a
-            | _  -> raise Stream.Failure ]
-          >>
-        else
-          let v = free_var_in_expr 's' f in
-          <:expr< let $lid:v$ = __strm in $subst v f$ $lid:v$ >>
-    | e -> let loc = MLast.loc_of_expr e in semantic loc e ]
-;
-
-value spc_of_parser =
-  let rec parser_cases e =
-    match e with
-    [ <:expr<
-        match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-        [ Some $p$ -> $sp_kont$
-        | _ -> $p_kont$ ]
-      >> ->
-        let spc = (SPCnterm p f, None) in
-        let (sp, epo, e) = kont sp_kont in
-        [([spc :: sp], epo, e) :: parser_cases p_kont]
-    | <:expr<
-        match Stream.peek __strm with
-        [ Some $p$ $when:wo$ -> do { Stream.junk __strm; $sp_kont$ }
-        | _ -> $p_kont$ ]
-      >> ->
-        let spc = (SPCterm (p, wo), None) in
-        let (sp, epo, e) = kont sp_kont in
-        [([spc :: sp], epo, e) :: parser_cases p_kont]
-    | <:expr< let $p$ = __strm in $sp_kont$ >> ->
-        let spc = (SPCsterm p, None) in
-        let (sp, epo, e) = kont sp_kont in
-        [([spc :: sp], epo, e)]
-    | <:expr< let $p$ = Stream.count __strm in $e$ >> -> [([], Some p, e)]
-    | <:expr< raise Stream.Failure >> -> []
-    | _ -> [([], None, e)] ]
-  and kont e =
-    match e with
-    [ <:expr<
-        match try Some ($f$ __strm) with [ Stream.Failure -> None ] with
-        [ Some $p$ -> $sp_kont$
-        | _ -> raise (Stream.Error $err$) ]
-      >> ->
-        let err =
-          match err with
-          [ <:expr< "" >> -> None
-          | _ -> Some err ]
-        in
-        let spc = (SPCnterm p f, err) in
-        let (sp, epo, e) = kont sp_kont in
-        ([spc :: sp], epo, e)
-    | <:expr<
-        match Stream.peek __strm with
-        [ Some $p$ $when:wo$ -> do { Stream.junk __strm; $sp_kont$ }
-        | _ -> raise (Stream.Error $err$) ]
-      >> ->
-        let err =
-          match err with
-          [ <:expr< "" >> -> None
-          | _ -> Some err ]
-        in
-        let spc = (SPCterm (p, wo), err) in
-        let (sp, epo, e) = kont sp_kont in
-        ([spc :: sp], epo, e)
-    | <:expr< let $p$ = __strm in $sp_kont$ >> ->
-        let spc = (SPCsterm p, None) in
-        let (sp, epo, e) = kont sp_kont in
-        ([spc :: sp], epo, e)
-    | <:expr< let $p$ = Stream.count __strm in $e$ >> -> ([], Some p, e)
-    | _ -> ([], None, e) ]
-  in
-  parser_cases
-;
-
-value parser_of_expr e = spc_of_parser (rewrite_parser e);
diff --git a/camlp4/unmaintained/etc/parserify.mli b/camlp4/unmaintained/etc/parserify.mli
deleted file mode 100644 (file)
index c1affdb..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-(* camlp4r *)
-
-
-type spc =
-  [ SPCterm of (MLast.patt * option MLast.expr)
-  | SPCnterm of MLast.patt and MLast.expr
-  | SPCsterm of MLast.patt ]
-;
-
-value parser_of_expr :
-  MLast.expr ->
-    list (list (spc * option MLast.expr) * option MLast.patt * MLast.expr);
diff --git a/camlp4/unmaintained/etc/pr_depend.ml b/camlp4/unmaintained/etc/pr_depend.ml
deleted file mode 100644 (file)
index 53224da..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-(* camlp4r *)
-
-
-open MLast;
-
-value not_impl name x =
-  Format.eprintf "pr_depend: not impl: %s; %a@." name ObjTools.print (Obj.repr x)
-;
-
-module StrSet =
-  Set.Make (struct type t = string; value compare = compare; end)
-;
-
-value fset = ref StrSet.empty;
-value addmodule s = fset.val := StrSet.add s fset.val;
-
-value list = List.iter;
-
-value option f =
-  fun
-  [ Some x -> f x
-  | None -> () ]
-;
-
-value longident =
-  fun
-  [ [s; _ :: _] -> addmodule s
-  | _ -> () ]
-;
-
-value rec ctyp =
-  fun
-  [ TyAcc _ t _ -> ctyp_module t
-  | TyAli _ t1 t2 -> do { ctyp t1; ctyp t2; }
-  | TyApp _ t1 t2 -> do { ctyp t1; ctyp t2; }
-  | TyAny _ -> ()
-  | TyArr _ t1 t2 -> do { ctyp t1; ctyp t2; }
-  | TyCls _ li -> longident li
-  | TyLab _ _ t -> ctyp t
-  | TyLid _ _ -> ()
-  | TyMan _ t1 t2 -> do { ctyp t1; ctyp t2; }
-  | TyOlb _ _ t -> ctyp t
-  | TyQuo _ _ -> ()
-  | TyRec _ ldl -> list label_decl ldl
-  | TySum _ cdl -> list constr_decl cdl
-  | TyPrv _ t -> ctyp t
-  | TyTup _ tl -> list ctyp tl
-  | TyVrn _ sbtll _ -> list variant sbtll
-  | x -> not_impl "ctyp" x ]
-and constr_decl (_, _, tl) = list ctyp tl
-and label_decl (_, _, _, t) = ctyp t
-and variant =
-  fun
-  [ RfTag _ _ tl -> list ctyp tl
-  | RfInh t -> ctyp t ]
-and ctyp_module =
-  fun
-  [ TyAcc _ t _ -> ctyp_module t
-  | TyApp _ t1 t2 -> do { ctyp t1; ctyp t2; }
-  | TyUid _ m -> addmodule m
-  | x -> not_impl "ctyp_module" x ]
-;
-
-value rec patt =
-  fun
-  [ PaAcc _ p _ -> patt_module p
-  | PaAli _ p1 p2 -> do { patt p1; patt p2; }
-  | PaAny _ -> ()
-  | PaApp _ p1 p2 -> do { patt p1; patt p2; }
-  | PaArr _ pl -> list patt pl
-  | PaChr _ _ -> ()
-  | PaInt _ _ -> ()
-  | PaLab _ _ po -> option patt po
-  | PaLid _ _ -> ()
-  | PaOlb _ _ peoo ->
-      option (fun (p, eo) -> do { patt p; option expr eo }) peoo
-  | PaOrp _ p1 p2 -> do { patt p1; patt p2; }
-  | PaRec _ lpl -> list label_patt lpl
-  | PaRng _ p1 p2 -> do { patt p1; patt p2; }
-  | PaStr _ _ -> ()
-  | PaTup _ pl -> list patt pl
-  | PaTyc _ p t -> do { patt p; ctyp t; }
-  | PaUid _ _ -> ()
-  | PaVrn _ _ -> ()
-  | x -> not_impl "patt" x ]
-and patt_module =
-  fun
-  [ PaUid _ m -> addmodule m
-  | PaAcc _ p _ -> patt_module p
-  | x -> not_impl "patt_module" x ]
-and label_patt (p1, p2) = do { patt p1; patt p2; }
-and expr =
-  fun
-  [ ExAcc _ e1 e2 -> do { expr_module e1; expr e2; }
-  | ExApp _ e1 e2 -> do { expr e1; expr e2; }
-  | ExAre _ e1 e2 -> do { expr e1; expr e2; }
-  | ExArr _ el -> list expr el
-  | ExAsf _ -> ()
-  | ExAsr _ e -> do { expr e; }
-  | ExAss _ e1 e2 -> do { expr e1; expr e2; }
-  | ExChr _ _ -> ()
-  | ExCoe _ e t1 t2 -> do { expr e; option ctyp t1; ctyp t2 }
-  | ExFor _ _ e1 e2 _ el -> do { expr e1; expr e2; list expr el; }
-  | ExFun _ pwel -> list match_case pwel
-  | ExIfe _ e1 e2 e3 -> do { expr e1; expr e2; expr e3; }
-  | ExInt _ _ -> ()
-  | ExInt32 _ _ -> ()
-  | ExInt64 _ _ -> ()
-  | ExNativeInt _ _ -> ()
-  | ExFlo _ _ -> ()
-  | ExLab _ _ eo -> option expr eo
-  | ExLaz _ e -> expr e
-  | ExLet _ _ pel e -> do { list let_binding pel; expr e; }
-  | ExLid _ _ -> ()
-  | ExLmd _ _ me e -> do { module_expr me; expr e; }
-  | ExMat _ e pwel -> do { expr e; list match_case pwel; }
-  | ExNew _ li -> longident li
-  | ExOlb _ _ eo -> option expr eo
-  | ExRec _ lel w -> do { list label_expr lel; option expr w; }
-  | ExSeq _ el -> list expr el
-  | ExSnd _ e _ -> expr e
-  | ExSte _ e1 e2 -> do { expr e1; expr e2; }
-  | ExStr _ _ -> ()
-  | ExTry _ e pwel -> do { expr e; list match_case pwel; }
-  | ExTup _ el -> list expr el
-  | ExTyc _ e t -> do { expr e; ctyp t; }
-  | ExUid _ _ -> ()
-  | ExVrn _ _ -> ()
-  | ExWhi _ e el -> do { expr e; list expr el; }
-  | x -> not_impl "expr" x ]
-and expr_module =
-  fun
-  [ ExUid _ m -> addmodule m
-  | e -> expr e ]
-and let_binding (p, e) = do { patt p; expr e }
-and label_expr (p, e) = do { patt p; expr e }
-and match_case (p, w, e) = do { patt p; option expr w; expr e; }
-and module_type =
-  fun
-  [ MtAcc _ (MtUid _ m) _ -> addmodule m
-  | MtFun _ _ mt1 mt2 -> do { module_type mt1; module_type mt2; }
-  | MtSig _ sil -> list sig_item sil
-  | MtUid _ _ -> ()
-  | MtWit _ mt wc -> do { module_type mt; list with_constr wc; }
-  | x -> not_impl "module_type" x ]
-and with_constr =
-  fun
-  [ WcTyp _ _ _ t -> ctyp t
-  | x -> not_impl "with_constr" x ]
-and sig_item =
-  fun
-  [ SgDcl _ sil -> list sig_item sil
-  | SgExc _ _ tl -> list ctyp tl
-  | SgExt _ _ t _ -> ctyp t
-  | SgMod _ _ mt -> module_type mt
-  | SgRecMod _ mts -> list (fun (_, mt) -> module_type mt) mts
-  | SgMty _ _ mt -> module_type mt
-  | SgOpn _ [s :: _] -> addmodule s
-  | SgTyp _ tdl -> list type_decl tdl
-  | SgVal _ _ t -> ctyp t
-  | x -> not_impl "sig_item" x ]
-and module_expr =
-  fun
-  [ MeAcc _ (MeUid _ m) _ -> addmodule m
-  | MeApp _ me1 me2 -> do { module_expr me1; module_expr me2; }
-  | MeFun _ _ mt me -> do { module_type mt; module_expr me; }
-  | MeStr _ sil -> list str_item sil
-  | MeTyc _ me mt -> do { module_expr me; module_type mt; }
-  | MeUid _ _ -> ()
-  | x -> not_impl "module_expr" x ]
-and str_item =
-  fun
-  [ StCls _ cil -> list (fun ci -> class_expr ci.ciExp) cil
-  | StDcl _ sil -> list str_item sil
-  | StDir _ _ _ -> ()
-  | StExc _ _ tl _ -> list ctyp tl
-  | StExp _ e -> expr e
-  | StExt _ _ t _ -> ctyp t
-  | StMod _ _ me -> module_expr me
-  | StRecMod _ nmtmes -> list (fun (_, mt, me) -> do { module_expr me; module_type mt; }) nmtmes
-  | StMty _ _ mt -> module_type mt
-  | StOpn _ [s :: _] -> addmodule s
-  | StTyp _ tdl -> list type_decl tdl
-  | StVal _ _ pel -> list let_binding pel
-  | x -> not_impl "str_item" x ]
-and type_decl (_, _, t, _) = ctyp t
-and class_expr =
-  fun
-  [ CeApp _ ce e -> do { class_expr ce; expr e; }
-  | CeCon _ li tl -> do { longident li; list ctyp tl; }
-  | CeFun _ p ce -> do { patt p; class_expr ce; }
-  | CeLet _ _ pel ce -> do { list let_binding pel; class_expr ce; }
-  | CeStr _ po csil -> do { option patt po; list class_str_item csil; }
-  | x -> not_impl "class_expr" x ]
-and class_str_item =
-  fun
-  [ CrInh _ ce _ -> class_expr ce
-  | CrIni _ e -> expr e
-  | CrMth _ _ _ e None -> expr e
-  | CrMth _ _ _ e (Some t) -> do { expr e; ctyp t }
-  | CrVal _ _ _ e -> expr e
-  | CrVir _ _ _ t -> ctyp t
-  | x -> not_impl "class_str_item" x ]
-;
-
-(* Print dependencies *)
-
-value load_path = ref [""];
-
-value find_in_path path name =
-  if not (Filename.is_implicit name) then
-    if Sys.file_exists name then name else raise Not_found
-  else
-    let rec try_dir =
-      fun
-      [ [] -> raise Not_found
-      | [dir :: rem] ->
-          let fullname = Filename.concat dir name in
-          if Sys.file_exists fullname then fullname else try_dir rem ]
-    in
-    try_dir path
-;
-
-value find_depend modname (byt_deps, opt_deps) =
-  let name = String.uncapitalize modname in
-  try
-    let filename = find_in_path load_path.val (name ^ ".mli") in
-    let basename = Filename.chop_suffix filename ".mli" in
-    let byt_dep = basename ^ ".cmi" in
-    let opt_dep =
-      if Sys.file_exists (basename ^ ".ml") then basename ^ ".cmx"
-      else basename ^ ".cmi"
-    in
-    ([byt_dep :: byt_deps], [opt_dep :: opt_deps])
-  with
-  [ Not_found ->
-      try
-        let filename = find_in_path load_path.val (name ^ ".ml") in
-        let basename = Filename.chop_suffix filename ".ml" in
-        ([basename ^ ".cmo" :: byt_deps], [basename ^ ".cmx" :: opt_deps])
-      with
-      [ Not_found -> (byt_deps, opt_deps) ] ]
-;
-
-value (depends_on, escaped_eol) =
-  match Sys.os_type with
-  [ "Unix" | "Win32" | "Cygwin" -> (": ", "\\\n    ")
-  | "MacOS" -> ("\196 ", "\182\n    ")
-  | _ -> assert False ]
-;
-
-value print_depend target_file deps =
-  match deps with
-  [ [] -> ()
-  | _ ->
-      do {
-        print_string target_file;
-        print_string depends_on;
-        let rec print_items pos =
-          fun
-          [ [] -> print_string "\n"
-          | [dep :: rem] ->
-              if pos + String.length dep <= 77 then do {
-                print_string dep;
-                print_string " ";
-                print_items (pos + String.length dep + 1) rem
-              }
-              else do {
-                print_string escaped_eol;
-                print_string dep;
-                print_string " ";
-                print_items (String.length dep + 5) rem
-              } ]
-        in
-        print_items (String.length target_file + 2) deps
-      } ]
-;
-
-(* Main *)
-
-value depend_sig ast =
-  do {
-    fset.val := StrSet.empty;
-    List.iter (fun (si, _) -> sig_item si) ast;
-    let basename = Filename.chop_suffix Pcaml.input_file.val ".mli" in
-    let (byt_deps, _) = StrSet.fold find_depend fset.val ([], []) in
-    print_depend (basename ^ ".cmi") byt_deps;
-  }
-;
-
-value depend_str ast =
-  do {
-    fset.val := StrSet.empty;
-    List.iter (fun (si, _) -> str_item si) ast;
-    let basename =
-      if Filename.check_suffix Pcaml.input_file.val ".ml" then
-        Filename.chop_suffix Pcaml.input_file.val ".ml"
-      else
-        try
-          let len = String.rindex Pcaml.input_file.val '.' in
-          String.sub Pcaml.input_file.val 0 len
-        with
-        [ Failure _ | Not_found -> Pcaml.input_file.val ]
-    in
-    let init_deps =
-      if Sys.file_exists (basename ^ ".mli") then
-        let cmi_name = basename ^ ".cmi" in ([cmi_name], [cmi_name])
-      else ([], [])
-    in
-    let (byt_deps, opt_deps) = StrSet.fold find_depend fset.val init_deps in
-    print_depend (basename ^ ".cmo") byt_deps;
-    print_depend (basename ^ ".cmx") opt_deps;
-  }
-;
-
-Pcaml.print_interf.val := depend_sig;
-Pcaml.print_implem.val := depend_str;
-
-Pcaml.add_option "-I"
-  (Arg.String (fun dir -> load_path.val := load_path.val @ [dir]))
-  "<dir> Add <dir> to the list of include directories.";
diff --git a/camlp4/unmaintained/etc/pr_extend.ml b/camlp4/unmaintained/etc/pr_extend.ml
deleted file mode 100644 (file)
index 5f8b693..0000000
+++ /dev/null
@@ -1,518 +0,0 @@
-(* camlp4r q_MLast.cmo ./pa_extfun.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Pcaml;
-open Spretty;
-
-value no_slist = ref False;
-
-value expr e dg k = pr_expr.pr_fun "top" e dg k;
-value patt e dg k = pr_patt.pr_fun "top" e dg k;
-
-(* Utilities *)
-
-value rec list elem el k =
-  match el with
-  [ [] -> k
-  | [x] -> [: `elem x k :]
-  | [x :: l] -> [: `elem x [: :]; list elem l k :] ]
-;
-
-value rec listws elem sep el k =
-  match el with
-  [ [] -> k
-  | [x] -> [: `elem x k :]
-  | [x :: l] -> [: `elem x [: `sep :]; listws elem sep l k :] ]
-;
-
-value rec listwbws elem b sep el dg k =
-  match el with
-  [ [] -> [: b; k :]
-  | [x] -> [: `elem b x dg k :]
-  | [x :: l] ->
-      let sdg =
-        match sep with
-        [ S _ x -> x
-        | _ -> "" ]
-      in
-      [: `elem b x sdg [: :]; listwbws elem [: `sep :] sep l dg k :] ]
-;
-
-(* Extracting *)
-
-value rec get_globals =
-  fun
-  [ [(<:patt< _ >>, <:expr< ($e$ : $uid:gmod1$.Entry.e '$_$) >>) :: pel] ->
-      let (gmod, gl) = get_globals pel in
-      if gmod = "" || gmod = gmod1 then (gmod1, [e :: gl])
-      else raise Not_found
-  | [] -> ("", [])
-  | _ -> raise Not_found ]
-;
-
-value rec get_locals =
-  fun
-  [ [(<:patt< $_$ >>,
-      <:expr< (grammar_entry_create $_$ : $_$) >>) :: pel] ->
-        get_locals pel
-  | [] -> ()
-  | _ -> raise Not_found ]
-;
-
-value unposition =
-  fun
-  [ <:expr< None >> -> None
-  | <:expr< Some Gramext.First >> -> Some Gramext.First
-  | <:expr< Some Gramext.Last >> -> Some Gramext.Last
-  | <:expr< Some (Gramext.Before $str:s$) >> -> Some (Gramext.Before s)
-  | <:expr< Some (Gramext.After $str:s$) >> -> Some (Gramext.After s)
-  | <:expr< Some (Gramext.Level $str:s$) >> -> Some (Gramext.Level s)
-  | _ -> raise Not_found ]
-;
-
-value unlabel =
-  fun
-  [ <:expr< None >> -> None
-  | <:expr< Some $str:s$ >> -> Some s
-  | _ -> raise Not_found ]
-;
-
-value unassoc =
-  fun
-  [ <:expr< None >> -> None
-  | <:expr< Some Gramext.NonA >> -> Some Gramext.NonA
-  | <:expr< Some Gramext.LeftA >> -> Some Gramext.LeftA
-  | <:expr< Some Gramext.RightA >> -> Some Gramext.RightA
-  | _ -> raise Not_found ]
-;
-
-value rec unaction =
-  fun
-  [ <:expr< fun ($lid:locp$ : Loc.t) -> ($a$ : $_$) >>
-    when locp = Stdpp.loc_name.val ->
-      let ao =
-        match a with
-        [ <:expr< () >> -> None
-        | _ -> Some a ]
-      in
-      ([], ao)
-  | <:expr< fun ($p$ : $_$) -> $e$ >> ->
-      let (pl, a) = unaction e in ([p :: pl], a)
-  | <:expr@_loc< fun _ -> $e$ >> ->
-      let (pl, a) = unaction e in ([ <:patt< _ >> :: pl ], a)
-  | _ -> raise Not_found ]
-;
-
-value untoken =
-  fun
-  [ <:expr< ($str:x$, $str:y$) >> -> (x, y)
-  | _ -> raise Not_found ]
-;
-
-type symbol =
-  [ Snterm of MLast.expr
-  | Snterml of MLast.expr and string
-  | Slist0 of symbol
-  | Slist0sep of symbol and symbol
-  | Slist1 of symbol
-  | Slist1sep of symbol and symbol
-  | Sopt of symbol
-  | Sself
-  | Snext
-  | Stoken of Token.pattern
-  | Srules of list (list (option MLast.patt * symbol) * option MLast.expr) ]
-;
-
-value rec unsymbol =
-  fun
-  [ <:expr< Gramext.Snterm ($uid:_$.Entry.obj ($e$ : $_$)) >> -> Snterm e
-  | <:expr< Gramext.Snterml ($uid:_$.Entry.obj ($e$ : $_$)) $str:s$ >> ->
-      Snterml e s
-  | <:expr< Gramext.Snterml ($uid:_$.Entry.obj ($e$ : $_$), $str:s$) >> ->
-      Snterml e s
-  | <:expr< Gramext.Slist0 $e$ >> -> Slist0 (unsymbol e)
-  | <:expr< Gramext.Slist0sep $e1$ $e2$ >> ->
-      Slist0sep (unsymbol e1) (unsymbol e2)
-  | <:expr< Gramext.Slist0sep ($e1$, $e2$) >> ->
-      Slist0sep (unsymbol e1) (unsymbol e2)
-  | <:expr< Gramext.Slist1 $e$ >> -> Slist1 (unsymbol e)
-  | <:expr< Gramext.Slist1sep $e1$ $e2$ >> ->
-      Slist1sep (unsymbol e1) (unsymbol e2)
-  | <:expr< Gramext.Slist1sep ($e1$, $e2$) >> ->
-      Slist1sep (unsymbol e1) (unsymbol e2)
-  | <:expr< Gramext.Sopt $e$ >> -> Sopt (unsymbol e)
-  | <:expr< Gramext.Sself >> -> Sself
-  | <:expr< Gramext.Snext >> -> Snext
-  | <:expr< Gramext.Stoken $e$ >> -> Stoken (untoken e)
-  | <:expr< Gramext.srules $e$ >> -> Srules (unrule_list [] e)
-  | _ -> raise Not_found ]
-and unpsymbol_list pl e =
-  match (pl, e) with
-  [ ([], <:expr< [] >>) -> []
-  | ([p :: pl], <:expr< [$e$ :: $el$] >>) ->
-      let op =
-        match p with
-        [ <:patt< _ >> -> None
-        | _ -> Some p ]
-      in
-      [(op, unsymbol e) :: unpsymbol_list pl el]
-  | _ -> raise Not_found ]
-and unrule =
-  fun
-  [ <:expr@_loc< ($e1$, Gramext.action $e2$) >> ->
-      let (pl, a) =
-        match unaction e2 with
-        [ ([], None) -> ([], Some <:expr< () >>)
-        | x -> x ]
-      in
-      let sl = unpsymbol_list (List.rev pl) e1 in
-      (sl, a)
-  | _ -> raise Not_found ]
-and unrule_list rl =
-  fun
-  [ <:expr< [$e$ :: $el$] >> -> unrule_list [unrule e :: rl] el
-  | <:expr< [] >> -> rl
-  | _ -> raise Not_found ]
-;
-
-value unlevel =
-  fun
-  [ <:expr< ($e1$, $e2$, $e3$) >> ->
-      (unlabel e1, unassoc e2, unrule_list [] e3)
-  | _ -> raise Not_found ]
-;
-
-value rec unlevel_list =
-  fun
-  [ <:expr< [$e$ :: $el$] >> -> [unlevel e :: unlevel_list el]
-  | <:expr< [] >> -> []
-  | _ -> raise Not_found ]
-;
-
-value unentry =
-  fun
-  [ <:expr< (Grammar.Entry.obj ($e$ : Grammar.Entry.e '$_$), $pos$, $ll$) >> ->
-      (e, unposition pos, unlevel_list ll)
-  | _ -> raise Not_found ]
-;
-
-value rec unentry_list =
-  fun
-  [ <:expr< [$e$ :: $el$] >> -> [unentry e :: unentry_list el]
-  | <:expr< [] >> -> []
-  | _ -> raise Not_found ]
-;
-
-value unextend_body e =
-  let ((_, globals), e) =
-    match e with
-    [ <:expr< let $list:pel$ in $e1$ >> ->
-        try (get_globals pel, e1) with
-        [ Not_found -> (("", []), e) ]
-    | _ -> (("", []), e) ]
-  in
-  let e =
-    match e with
-    [ <:expr<
-        let grammar_entry_create s =
-          Grammar.Entry.create (Grammar.of_entry $_$) s
-        in
-        $e$ >> ->
-       let e =
-         match e with
-         [ <:expr< let $list:pel$ in $e1$ >> ->
-             try let _ = get_locals pel in e1 with
-             [ Not_found -> e ]
-         | _ -> e ]
-       in
-       e
-    | _ -> e ]
-  in
-  let el = unentry_list e in
-  (globals, el)
-;
-
-value ungextend_body e =
-  let e =
-    match e with
-    [ <:expr<
-        let grammar_entry_create = Gram.Entry.create in
-        let $list:ll$ in $e$
-      >> ->
-        let _ = get_locals ll in e
-    | _ -> e ]
-  in
-  match e with
-  [ <:expr< do { $list:el$ } >> ->
-      List.map
-        (fun
-         [ <:expr< $uid:_$.extend ($e$ : $uid:_$.Entry.e '$_$) $pos$ $ll$ >> ->
-             (e, unposition pos, unlevel_list ll)
-         | _ -> raise Not_found ])
-        el
-  | _ -> raise Not_found ]
-;
-
-(* Printing *)
-
-value ident s k = HVbox [: `S LR s; k :];
-value string s k = HVbox [: `S LR ("\"" ^ s ^ "\""); k :];
-
-value position =
-  fun
-  [ None -> [: :]
-  | Some Gramext.First -> [: `S LR "FIRST" :]
-  | Some Gramext.Last -> [: `S LR "LAST" :]
-  | Some (Gramext.Before s) -> [: `S LR "BEFORE"; `string s [: :] :]
-  | Some (Gramext.After s) -> [: `S LR "AFTER"; `string s [: :] :]
-  | Some (Gramext.Level s) -> [: `S LR "LEVEL"; `string s [: :] :] ]
-;
-
-value action expr a dg k =
-  expr a dg k
-;
-
-value token (con, prm) k =
-  if con = "" then string prm k
-  else if prm = "" then HVbox [: `S LR con; k :]
-  else HVbox [: `S LR con; `string prm k :]
-;
-
-value simplify_rules rl =
-  try
-    List.map
-      (fun
-       [ ([(Some <:patt< $lid:x$ >>, s)], Some <:expr< $lid:y$ >>) ->
-           if x = y then ([(None, s)], None) else raise Exit
-       | ([], _) as r -> r
-       | _ -> raise Exit ])
-      rl
-  with
-  [ Exit -> rl ]
-;
-
-value rec symbol s k =
-  match s with
-  [ Snterm e -> expr e "" k
-  | Snterml e s -> HVbox [: `expr e "" [: :]; `S LR "LEVEL"; `string s k :]
-  | Slist0 s -> HVbox [: `S LR "LIST0"; `symbol s k :]
-  | Slist0sep s sep ->
-      HVbox
-        [: `S LR "LIST0"; `symbol s [: :]; `S LR "SEP";
-           `symbol sep k :]
-  | Slist1 s -> HVbox [: `S LR "LIST1"; `symbol s k :]
-  | Slist1sep s sep ->
-      HVbox
-        [: `S LR "LIST1"; `symbol  s [: :]; `S LR "SEP";
-           `symbol  sep k :]
-  | Sopt s -> HVbox [: `S LR "OPT"; `symbol  s k :]
-  | Sself -> HVbox [: `S LR "SELF"; k :]
-  | Snext -> HVbox [: `S LR "NEXT"; k :]
-  | Stoken tok -> token tok k
-  | Srules
-      [([(Some <:patt< a >>, Snterm <:expr< a_list >>)], Some <:expr< a >>);
-       ([(Some <:patt< a >>,
-          ((Slist0 _ | Slist1 _ | Slist0sep _ _ | Slist1sep _ _) as s))],
-          Some <:expr< Qast.List a >>)]
-    when not no_slist.val
-    ->
-      match s with
-      [ Slist0 s -> HVbox [: `S LR "SLIST0"; `simple_symbol s k :]
-      | Slist1 s -> HVbox [: `S LR "SLIST1"; `simple_symbol s k :]
-      | Slist0sep s sep ->
-          HVbox
-            [: `S LR "SLIST0"; `simple_symbol s [: :]; `S LR "SEP";
-               `symbol sep k :]
-      | Slist1sep s sep ->
-          HVbox
-            [: `S LR "SLIST1"; `simple_symbol s [: :]; `S LR "SEP";
-               `simple_symbol sep k :]
-      | _ -> assert False ]
-  | Srules
-      [([(Some <:patt< a >>, Snterm <:expr< a_opt >>)], Some <:expr< a >>);
-       ([(Some <:patt< a >>, Sopt s)], Some <:expr< Qast.Option a >>)]
-    when not no_slist.val
-    ->
-      let s =
-        match s with
-        [ Srules
-            [([(Some <:patt< x >>, Stoken ("", str))],
-              Some <:expr< Qast.Str x >>)] ->
-            Stoken ("", str)
-        | s -> s ]
-      in
-      HVbox [: `S LR "SOPT"; `simple_symbol s k :]
-  | Srules rl ->
-      let rl = simplify_rules rl in
-      HVbox [: `HVbox [: :]; rule_list  rl k :] ]
-and simple_symbol s k =
-  match s with
-  [ Snterml _ _ -> HVbox [: `S LO "("; `symbol s [: `S RO ")"; k :] :]
-  | s -> symbol s k ]
-and psymbol (p, s) k =
-  match p with
-  [ None -> symbol s k
-  | Some p -> HVbox [: `patt p "" [: `S LR "=" :]; `symbol  s k :] ]
-and psymbol_list sl k =
-  listws psymbol (S RO ";") sl k
-and rule  b (sl, a) dg k =
-  match a with
-  [ None -> HVbox [: b; `HOVbox [: psymbol_list sl k :] :]
-  | Some a ->
-      HVbox
-        [: b;
-           `HOVbox
-              [: `HOVbox
-                   [: `HVbox [: :];
-                      psymbol_list  sl [: `S LR "->" :] :];
-                 `action expr a dg k :] :] ]
-and rule_list ll k =
-  listwbws rule [: `S LR "[" :] (S LR "|") ll ""
-    [: `S LR "]"; k :]
-;
-
-value label =
-  fun
-  [ Some s -> [: `S LR ("\"" ^ s ^ "\"") :]
-  | None -> [: :] ]
-;
-
-value intloc loc = ((Loc.start_off loc), (Loc.stop_off loc));
-
-value intloc2 (bp, ep) = (bp.Lexing.pos_cnum, ep.Lexing.pos_cnum);
-
-
-value assoc =
-  fun
-  [ Some Gramext.NonA -> [: `S LR "NONA" :]
-  | Some Gramext.LeftA -> [: `S LR "LEFTA" :]
-  | Some Gramext.RightA -> [: `S LR "RIGHTA" :]
-  | None -> [: :] ]
-;
-
-value level b (lab, ass, rl) _ k =
-  let s =
-    if rl = [] then [: `S LR "[ ]"; k :]
-    else [: `Vbox [: `HVbox [: :]; rule_list rl k :] :]
-  in
-  match (lab, ass) with
-  [ (None, None) -> HVbox [: b; s :]
-  | _ ->
-      Vbox
-        [: `HVbox [: b; label lab; assoc ass :];
-           `HVbox [: `HVbox [: :]; s :] :] ]
-;
-
-value level_list ll k =
-  Vbox
-    [: `HVbox [: :];
-       listwbws level [: `S LR "[" :] (S LR "|") ll ""
-         [: `S LR "]"; k :] :]
-;
-
-value entry (e, pos, ll) k =
-  BEbox
-    [: `LocInfo (intloc(MLast.loc_of_expr e))
-          (HVbox [: `expr e "" [: `S RO ":" :]; position pos :]);
-       `level_list  ll [: :];
-       `HVbox [: `S RO ";"; k :] :]
-;
-
-value entry_list el k =
-  Vbox [: `HVbox [: :]; list entry el k :]
-;
-
-value extend_body (globals, e) k =
-  let s = entry_list e k in
-  match globals with
-  [ [] -> s
-  | sl ->
-      HVbox
-        [: `HVbox [: :];
-           `HOVbox
-             [: `S LR "GLOBAL"; `S RO ":";
-                list (fun e k -> HVbox [: `expr e "" k :]) sl
-                  [: `S RO ";" :] :];
-           `s :] ]
-;
-
-value extend e _ k =
-  match e with
-  [ <:expr< Grammar.extend $e$ >> ->
-      try
-        let ex = unextend_body e in
-        BEbox
-          [: `S LR "EXTEND"; `extend_body ex [: :];
-             `HVbox [: `S LR "END"; k :] :]
-      with
-      [ Not_found ->
-          HVbox
-            [: `S LR "Grammar.extend";
-               `HOVbox
-                  [: `S LO "(";
-                     `expr e "" [: `HVbox [: `S RO ")"; k :] :] :] :] ]
-  | _ -> expr e "" k ]
-;
-
-value get_gextend =
-  fun
-  [ <:expr< let $list:gl$ in $e$ >> ->
-      try
-        let (gmod, gl) = get_globals gl in
-        let el = ungextend_body e in
-        Some (gmod, gl, el)
-      with
-      [ Not_found -> None ]
-  | _ -> None ]
-;
-
-value gextend e _ k =
-  match get_gextend e with
-  [ Some (gmod, gl, el) ->
-      BEbox
-        [: `HVbox [: `S LR "GEXTEND"; `S LR gmod :];
-           `extend_body (gl, el) [: :];
-           `HVbox [: `S LR "END"; k :] :]
-  | None -> expr e "" k ]
-;
-
-value is_gextend e = get_gextend e <> None;
-
-(* Printer extensions *)
-
-let lev =
-  try find_pr_level "expr1" pr_expr.pr_levels with
-  [ Failure _ -> find_pr_level "top" pr_expr.pr_levels ]
-in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< let $list:_$ in $_$ >> as e when is_gextend e ->
-      fun _ next _ k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "apply" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Grammar.extend $_$ >> as e ->
-      fun _ next _ k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "simple" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Grammar.extend $_$ >> as e ->
-      fun _ _ _ k -> [: `extend e "" k :]
-  | <:expr< let $list:_$ in $_$ >> as e when is_gextend e ->
-      fun _ _ _ k -> [: `gextend e "" k :] ];
-
-Pcaml.add_option "-no_slist" (Arg.Set no_slist)
-  "Don't reconstruct SLIST and SOPT";
diff --git a/camlp4/unmaintained/etc/pr_extfun.ml b/camlp4/unmaintained/etc/pr_extfun.ml
deleted file mode 100644 (file)
index 4479bb4..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-(* camlp4r q_MLast.cmo ./pa_extfun.cmo *)
-
-
-open Pcaml;
-open Spretty;
-
-value _loc = Loc.mk "FIXME pr_extfun.ml";
-
-value expr e dg k = pr_expr.pr_fun "top" e dg k;
-value patt e dg k = pr_patt.pr_fun "top" e dg k;
-
-value rec un_extfun rpel =
-  fun
-  [ <:expr< [ ($_$, $_$, fun [ $list:pel$ ]) :: $el$ ] >> ->
-      let (p, wo, e) =
-        match pel with
-        [ [(p, wo, <:expr< Some $e$ >>);
-           (<:patt< _ >>, None, <:expr< None >>)] ->
-            (p, wo, e)
-        | [(p, wo, <:expr< Some $e$ >>)] -> (p, wo, e)
-        | _ -> raise Not_found ]
-      in
-      let rpel =
-        match rpel with
-        [ [(p1, wo1, e1) :: pel] ->
-            if wo1 = wo && e1 = e then
-              let p =
-                match (p1, p) with
-                [ (<:patt< ($x1$ as $x2$) >>, <:patt< ($y1$ as $y2$) >>) ->
-                    if x2 = y2 then <:patt< ($x1$ | $y1$ as $x2$) >>
-                    else <:patt< $p1$ | $p$ >>
-                | _ -> <:patt< $p1$ | $p$ >> ]
-              in
-              [(p, wo, e) :: pel]
-            else [(p, wo, e) :: rpel]
-        | [] -> [(p, wo, e)] ]
-      in
-      un_extfun rpel el
-  | <:expr< [] >> -> List.rev rpel
-  | _ -> raise Not_found ]
-;
-
-value rec listwbws elem b sep el k =
-  match el with
-  [ [] -> [: b; k :]
-  | [x] -> [: `elem b x k :]
-  | [x :: l] -> [: `elem b x [: :]; listwbws elem [: `sep :] sep l k :] ]
-;
-
-value rec match_assoc_list pwel k =
-  match pwel with
-  [ [pwe] -> match_assoc [: `S LR "[" :] pwe [: `S LR "]"; k :]
-  | pel ->
-      Vbox
-        [: `HVbox [: :];
-           listwbws match_assoc [: `S LR "[" :] (S LR "|") pel
-             [: `S LR "]"; k :] :] ]
-and match_assoc b (p, w, e) k =
-  let s =
-    let (p, k) =
-      match p with
-      [ <:patt< ($p$ as $p2$) >> -> (p, [: `S LR "as"; `patt p2 "" [: :] :])
-      | _ -> (p, [: :]) ]
-    in
-    match w with
-    [ Some e1 ->
-        [: `HVbox
-              [: `HVbox [: :]; `patt p "" k;
-                 `HVbox [: `S LR "when"; `expr e1 "" [: `S LR "->" :] :] :] :]
-    | _ -> [: `patt p "" [: k; `S LR "->" :] :] ]
-  in
-  HVbox [: b; `HVbox [: `HVbox s; `expr e "" k :] :]
-;
-
-let lev = find_pr_level "top" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Extfun.extend $e$ $list$ >> as ge ->
-      fun _ next dg k ->
-        try
-          let pel = un_extfun [] list in
-          [: `HVbox [: :];
-             `BEbox [: `S LR "extfun"; `expr e "" [: :]; `S LR "with" :];
-             `match_assoc_list pel k :]
-        with
-        [ Not_found -> [: `next ge dg k :] ] ];
-
-let lev = find_pr_level "apply" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Extfun.extend $_$ $_$ >> as ge ->
-      fun _ next dg k -> [: `next ge dg k :] ];
diff --git a/camlp4/unmaintained/etc/pr_null.ml b/camlp4/unmaintained/etc/pr_null.ml
deleted file mode 100644 (file)
index 22f3cb7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-(* camlp4r *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-Pcaml.print_interf.val := fun _ -> ();
-Pcaml.print_implem.val := fun _ -> ();
diff --git a/camlp4/unmaintained/etc/pr_op.ml b/camlp4/unmaintained/etc/pr_op.ml
deleted file mode 100644 (file)
index 9b2aebc..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-(* camlp4r q_MLast.cmo ./pa_extfun.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Pcaml;
-open Spretty;
-
-value expr e dg k = pr_expr.pr_fun "top" e dg k;
-value patt e dg k = pr_patt.pr_fun "top" e dg k;
-
-value spatt p dg k =
-  match p with
-  [ <:patt< $lid:s$ >> ->
-      if String.length s >= 2 && s.[1] == ''' then
-        HVbox [: `S LR (" " ^ s); k :]
-      else patt p dg k
-  | _ -> patt p dg k ]
-;
-
-(* Streams *)
-
-value stream e _ k =
-  let rec get =
-    fun
-    [ <:expr< Stream.iapp $x$ $y$ >> -> [(False, x) :: get y]
-    | <:expr< Stream.icons $x$ $y$ >> -> [(True, x) :: get y]
-    | <:expr< Stream.ising $x$ >> -> [(True, x)]
-    | <:expr< Stream.lapp (fun _ -> $x$) $y$ >> -> [(False, x) :: get y]
-    | <:expr< Stream.lcons (fun _ -> $x$) $y$ >> -> [(True, x) :: get y]
-    | <:expr< Stream.lsing (fun _ -> $x$) >> -> [(True, x)]
-    | <:expr< Stream.sempty >> -> []
-    | <:expr< Stream.slazy (fun _ -> $x$) >> -> [(False, x)]
-    | <:expr< Stream.slazy $x$ >> -> [(False, <:expr< $x$ () >>)]
-    | e -> [(False, e)] ]
-  in
-  let elem e dg k =
-    match e with
-    [ (True, e) -> [: `HOVbox [: `S LO "'"; `expr e dg k :] :]
-    | (False, e) -> [: `expr e dg k :] ]
-  in
-  let rec glop e k =
-    match e with
-    [ [] -> k
-    | [e] -> [: elem e "" k :]
-    | [e :: el] -> [: elem e ";" [: `S RO ";" :]; glop el k :] ]
-  in
-  HOVbox [: `S LR "[<"; glop (get e) [: `S LR ">]"; k :] :]
-;
-
-(* Parsers *)
-
-value parser_cases b spel dg k =
-  let rec parser_cases b spel dg k =
-    match spel with
-    [ [] -> [: `HVbox [: b; k :] :]
-    | [(sp, epo, e)] -> [: `parser_case b sp epo e dg k :]
-    | [(sp, epo, e) :: spel] ->
-        [: `parser_case b sp epo e "|" [: :];
-           parser_cases [: `S LR "|" :] spel dg k :] ]
-  and parser_case b sp epo e dg k =
-    let epo =
-      match epo with
-      [ Some p -> [: `patt p "" [: `S LR "->" :] :]
-      | _ -> [: `S LR "->" :] ]
-    in
-    HVbox
-      [: b;
-         `HOVbox
-            [: `HOVbox
-                 [: `S LR "[<";
-                    stream_patt [: :] sp [: `S LR ">]"; epo :] :];
-               `expr e dg k :] :]
-  and stream_patt b sp k =
-    match sp with
-    [ [] -> [: `HVbox [: b; k :] :]
-    | [(spc, None)] -> [: `stream_patt_comp b spc "" k :]
-    | [(spc, Some e)] ->
-        [: `HVbox
-              [: `stream_patt_comp b spc "" [: :];
-                 `HVbox [: `S LR "??"; `expr e "" k :] :] :]
-    | [(spc, None) :: spcl] ->
-        [: `stream_patt_comp b spc ";" [: `S RO ";" :];
-           stream_patt [: :] spcl k :]
-    | [(spc, Some e) :: spcl] ->
-        [: `HVbox
-              [: `stream_patt_comp b spc "" [: :];
-                 `HVbox [: `S LR "??"; `expr e ";" [: `S RO ";" :] :] :];
-           stream_patt [: :] spcl k :] ]
-  and stream_patt_comp b spc dg k =
-    match spc with
-    [ SPCterm (p, w) ->
-        HVbox [: b; `S LO "'"; `spatt p "" (when_opt w k) :]
-    | SPCnterm p e ->
-        HVbox [: b; `HVbox [: `patt p "" [: `S LR "=" :]; `expr e dg k :] :]
-    | SPCsterm p -> HVbox [: b; `patt p "" k :] ]
-  and when_opt wo k =
-    match wo with
-    [ Some e -> [: `S LR "when"; `expr e "" k :]
-    | _ -> k ]
-  in
-  parser_cases b spel dg k
-;
-
-value parser_body e dg k =
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  match Parserify.parser_of_expr e with
-  [ [] ->
-      let spe = ([], None, <:expr< raise Stream.Failure >>) in
-      HVbox
-        [: `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           parser_cases [: :] [spe] dg k :]
-  | spel ->
-      BEVbox
-        [: `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           parser_cases [: :] spel dg k :] ]
-;
-
-value pmatch e dg k =
-  let (me, e) =
-    match e with
-    [ <:expr< let (__strm : Stream.t _) = $me$ in $e$ >> -> (me, e)
-    | _ -> failwith "Pr_op.pmatch" ]
-  in
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  let spel = Parser_of_expr.parser_of_expr e in
-  Vbox
-    [: `HVbox [: :];
-       `HVbox
-          [: `S LR "match"; `expr me "" [: `S LR "with" :]; `S LR "parser";
-             match bp with
-             [ Some p -> [: `patt p "" [: :] :]
-             | _ -> [: :] ] :];
-       `BEbox [: `HVbox [: :]; parser_cases [: :] spel dg k :] :]
-;
-
-(* Printer extensions *)
-
-pr_expr_fun_args.val :=
-  extfun pr_expr_fun_args.val with
-  [ <:expr< fun __strm -> $_$ >> as ge -> ([], ge)
-  | <:expr< fun [(__strm : $_$) -> $_$] >> as ge -> ([], ge) ];
-
-let lev = find_pr_level "expr1" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< let (__strm : Stream.t _) = $_$ in $_$ >> as e ->
-      fun curr next dg k ->
-        if not (List.mem dg ["|"; ";"]) then [: `pmatch e dg k :]
-        else [: `S LO "("; `pmatch e "" [: `S RO ")"; k :] :]
-  | <:expr< fun __strm -> $x$ >> ->
-      fun curr next dg k ->
-        if not (List.mem dg ["|"; ";"]) then [: `parser_body x dg k :]
-        else [: `S LO "("; `parser_body x "" [: `S RO ")"; k :] :]
-  | <:expr< fun [ (__strm : $_$) -> $x$ ] >> ->
-      fun curr next dg k ->
-        if not (List.mem dg ["|"; ";"]) then [: `parser_body x dg k :]
-        else [: `S LO "("; `parser_body x "" [: `S RO ")"; k :] :] ];
-
-let lev = find_pr_level "apply" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.iapp $_$ $_$ >> | <:expr< Stream.icons $_$ $_$ >> |
-    <:expr< Stream.ising $_$ >> | <:expr< Stream.lapp (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lcons (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lsing (fun _ -> $_$) >> | <:expr< Stream.sempty >> |
-    <:expr< Stream.slazy $_$ >> as e ->
-      fun curr next dg k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "dot" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.sempty >> as e ->
-      fun curr next dg k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "simple" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.iapp $_$ $_$ >> | <:expr< Stream.icons $_$ $_$ >> |
-    <:expr< Stream.ising $_$ >> | <:expr< Stream.lapp (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lcons (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lsing (fun _ -> $_$) >> | <:expr< Stream.sempty >> |
-    <:expr< Stream.slazy $_$ >> as e ->
-      fun curr next dg k ->
-        [: `stream e "" k :] ];
diff --git a/camlp4/unmaintained/etc/pr_op_main.ml b/camlp4/unmaintained/etc/pr_op_main.ml
deleted file mode 100644 (file)
index 3ea53ba..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-(* camlp4r q_MLast.cmo ./pa_extfun.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Pcaml;
-open Spretty;
-
-value _loc = Loc.mk "FIXME pr_op_main.ml";
-
-value expr e dg k = pr_expr.pr_fun "top" e dg k;
-value patt e dg k = pr_patt.pr_fun "top" e dg k;
-
-value spatt p dg k =
-  match p with
-  [ <:patt< $lid:s$ >> ->
-      if String.length s >= 2 && s.[1] == ''' then
-        HVbox [: `S LR (" " ^ s); k :]
-      else patt p dg k
-  | _ -> patt p dg k ]
-;
-
-(* Streams *)
-
-value stream e _ k =
-  let rec get =
-    fun
-    [ <:expr< Stream.iapp $x$ $y$ >> -> [(False, x) :: get y]
-    | <:expr< Stream.icons $x$ $y$ >> -> [(True, x) :: get y]
-    | <:expr< Stream.ising $x$ >> -> [(True, x)]
-    | <:expr< Stream.lapp (fun _ -> $x$) $y$ >> -> [(False, x) :: get y]
-    | <:expr< Stream.lcons (fun _ -> $x$) $y$ >> -> [(True, x) :: get y]
-    | <:expr< Stream.lsing (fun _ -> $x$) >> -> [(True, x)]
-    | <:expr< Stream.sempty >> -> []
-    | <:expr< Stream.slazy (fun _ -> $x$) >> -> [(False, x)]
-    | <:expr< Stream.slazy $x$ >> -> [(False, <:expr< $x$ () >>)]
-    | e -> [(False, e)] ]
-  in
-  let elem e dg k =
-    match e with
-    [ (True, e) -> [: `HOVbox [: `S LO "'"; `expr e dg k :] :]
-    | (False, e) -> [: `expr e dg k :] ]
-  in
-  let rec glop e k =
-    match e with
-    [ [] -> k
-    | [e] -> [: elem e "" k :]
-    | [e :: el] -> [: elem e ";" [: `S RO ";" :]; glop el k :] ]
-  in
-  HOVbox [: `S LR "[<"; glop (get e) [: `S LR ">]"; k :] :]
-;
-
-(* Parsers *)
-
-open Parserify;
-
-value parser_cases b spel dg k =
-  let rec parser_cases b spel dg k =
-    match spel with
-    [ [] -> [: `HVbox [: b; k :] :]
-    | [(sp, epo, e)] -> [: `parser_case b sp epo e dg k :]
-    | [(sp, epo, e) :: spel] ->
-        [: `parser_case b sp epo e "|" [: :];
-           parser_cases [: `S LR "|" :] spel dg k :] ]
-  and parser_case b sp epo e dg k =
-    let epo =
-      match epo with
-      [ Some p -> [: `patt p "" [: `S LR "->" :] :]
-      | _ -> [: `S LR "->" :] ]
-    in
-    HVbox
-      [: b;
-         `HOVbox
-            [: `HOVbox
-                 [: `S LR "[<";
-                    stream_patt [: :] sp [: `S LR ">]"; epo :] :];
-               `expr e dg k :] :]
-  and stream_patt b sp k =
-    match sp with
-    [ [] -> [: `HVbox [: b; k :] :]
-    | [(spc, None)] -> [: `stream_patt_comp b spc "" k :]
-    | [(spc, Some e)] ->
-        [: `HVbox
-              [: `stream_patt_comp b spc "" [: :];
-                 `HVbox [: `S LR "??"; `expr e "" k :] :] :]
-    | [(spc, None) :: spcl] ->
-        [: `stream_patt_comp b spc ";" [: `S RO ";" :];
-           stream_patt [: :] spcl k :]
-    | [(spc, Some e) :: spcl] ->
-        [: `HVbox
-              [: `stream_patt_comp b spc "" [: :];
-                 `HVbox [: `S LR "??"; `expr e ";" [: `S RO ";" :] :] :];
-           stream_patt [: :] spcl k :] ]
-  and stream_patt_comp b spc dg k =
-    match spc with
-    [ SPCterm (p, w) ->
-        HVbox [: b; `S LO "'"; `spatt p "" (when_opt w k) :]
-    | SPCnterm p e ->
-        HVbox [: b; `HVbox [: `patt p "" [: `S LR "=" :]; `expr e dg k :] :]
-    | SPCsterm p -> HVbox [: b; `patt p "" k :] ]
-  and when_opt wo k =
-    match wo with
-    [ Some e -> [: `S LR "when"; `expr e "" k :]
-    | _ -> k ]
-  in
-  parser_cases b spel dg k
-;
-
-value parser_body e dg k =
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  match parser_of_expr e with
-  [ [] ->
-      let spe = ([], None, <:expr< raise Stream.Failure >>) in
-      HVbox
-        [: `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           parser_cases [: :] [spe] dg k :]
-  | spel ->
-      BEVbox
-        [: `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           parser_cases [: :] spel dg k :] ]
-;
-
-value pmatch e dg k =
-  let (me, e) =
-    match e with
-    [ <:expr< let (__strm : Stream.t _) = $me$ in $e$ >> -> (me, e)
-    | _ -> failwith "Pr_op.pmatch" ]
-  in
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  let spel = parser_of_expr e in
-  Vbox
-    [: `HVbox [: :];
-       `HVbox
-          [: `S LR "match"; `expr me "" [: `S LR "with" :]; `S LR "parser";
-             match bp with
-             [ Some p -> [: `patt p "" [: :] :]
-             | _ -> [: :] ] :];
-       `BEbox [: `HVbox [: :]; parser_cases [: :] spel dg k :] :]
-;
-
-(* Printer extensions *)
-
-pr_expr_fun_args.val :=
-  extfun pr_expr_fun_args.val with
-  [ <:expr< fun __strm -> $_$ >> as ge -> ([], ge)
-  | <:expr< fun [(__strm : $_$) -> $_$] >> as ge -> ([], ge) ];
-
-let lev = find_pr_level "expr1" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< let (__strm : Stream.t _) = $_$ in $_$ >> as e ->
-      fun _ _ dg k ->
-        if not (List.mem dg ["|"; ";"]) then [: `pmatch e dg k :]
-        else [: `S LO "("; `pmatch e "" [: `S RO ")"; k :] :]
-  | <:expr< fun __strm -> $x$ >> ->
-      fun _ _ dg k ->
-        if not (List.mem dg ["|"; ";"]) then [: `parser_body x dg k :]
-        else [: `S LO "("; `parser_body x "" [: `S RO ")"; k :] :]
-  | <:expr< fun [ (__strm : $_$) -> $x$ ] >> ->
-      fun _ _ dg k ->
-        if not (List.mem dg ["|"; ";"]) then [: `parser_body x dg k :]
-        else [: `S LO "("; `parser_body x "" [: `S RO ")"; k :] :] ];
-
-let lev = find_pr_level "apply" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.iapp $_$ $_$ >> | <:expr< Stream.icons $_$ $_$ >> |
-    <:expr< Stream.ising $_$ >> | <:expr< Stream.lapp (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lcons (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lsing (fun _ -> $_$) >> | <:expr< Stream.sempty >> |
-    <:expr< Stream.slazy $_$ >> as e ->
-      fun _ next _ k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "dot" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.sempty >> as e ->
-      fun _ next _ k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "simple" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.iapp $_$ $_$ >> | <:expr< Stream.icons $_$ $_$ >> |
-    <:expr< Stream.ising $_$ >> | <:expr< Stream.lapp (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lcons (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lsing (fun _ -> $_$) >> | <:expr< Stream.sempty >> |
-    <:expr< Stream.slazy $_$ >> as e ->
-      fun _ _ _ k ->
-        [: `stream e "" k :] ];
diff --git a/camlp4/unmaintained/etc/pr_rp.ml b/camlp4/unmaintained/etc/pr_rp.ml
deleted file mode 100644 (file)
index 0604b46..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-(* camlp4r q_MLast.cmo ./pa_extfun.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Pcaml;
-open Spretty;
-
-value _loc = (Token.nowhere, Token.nowhere);
-
-value expr e dg k = pr_expr.pr_fun "top" e dg k;
-value patt e dg k = pr_patt.pr_fun "top" e dg k;
-
-(* Streams *)
-
-value stream e dg k =
-  let rec get =
-    fun
-    [ <:expr< Stream.iapp $x$ $y$ >> -> [(False, x) :: get y]
-    | <:expr< Stream.icons $x$ $y$ >> -> [(True, x) :: get y]
-    | <:expr< Stream.ising $x$ >> -> [(True, x)]
-    | <:expr< Stream.lapp (fun _ -> $x$) $y$ >> -> [(False, x) :: get y]
-    | <:expr< Stream.lcons (fun _ -> $x$) $y$ >> -> [(True, x) :: get y]
-    | <:expr< Stream.lsing (fun _ -> $x$) >> -> [(True, x)]
-    | <:expr< Stream.sempty >> -> []
-    | <:expr< Stream.slazy (fun _ -> $x$) >> -> [(False, x)]
-    | <:expr< Stream.slazy $x$ >> -> [(False, <:expr< $x$ () >>)]
-    | e -> [(False, e)] ]
-  in
-  let elem e k =
-    match e with
-    [ (True, e) -> [: `HOVbox [: `S LO "`"; `expr e "" k :] :]
-    | (False, e) -> [: `expr e "" k :] ]
-  in
-  let rec glop e k =
-    match e with
-    [ [] -> k
-    | [e] -> [: elem e k :]
-    | [e :: el] -> [: elem e [: `S RO ";" :]; glop el k :] ]
-  in
-  HOVbox [: `S LR "[:"; glop (get e) [: `S LR ":]"; k :] :]
-;
-
-(* Parsers *)
-
-value parser_cases b spel k =
-  let rec parser_cases b spel k =
-    match spel with
-    [ [] -> [: `HVbox [: b; k :] :]
-    | [(sp, epo, e)] -> [: `parser_case b sp epo e k :]
-    | [(sp, epo, e) :: spel] ->
-        [: `parser_case b sp epo e [: :];
-           parser_cases [: `S LR "|" :] spel k :] ]
-  and parser_case b sp epo e k =
-    let epo =
-      match epo with
-      [ Some p -> [: `patt p "" [: `S LR "->" :] :]
-      | _ -> [: `S LR "->" :] ]
-    in
-    HVbox
-      [: b;
-         `HOVbox
-            [: `HOVbox
-                  [: `S LR "[:";
-                     stream_patt [: :] sp [: `S LR ":]"; epo :] :];
-               `expr e "" k :] :]
-  and stream_patt b sp k =
-    match sp with
-    [ [] -> [: `HVbox [: b; k :] :]
-    | [(spc, None)] -> [: `stream_patt_comp b spc k :]
-    | [(spc, Some e)] ->
-        [: `HVbox
-              [: `stream_patt_comp b spc [: :];
-                 `HVbox [: `S LR "?"; `expr e "" k :] :] :]
-    | [(spc, None) :: spcl] ->
-        [: `stream_patt_comp b spc [: `S RO ";" :];
-           stream_patt [: :] spcl k :]
-    | [(spc, Some e) :: spcl] ->
-        [: `HVbox
-              [: `stream_patt_comp b spc [: :];
-                 `HVbox [: `S LR "?"; `expr e "" [: `S RO ";" :] :] :];
-           stream_patt [: :] spcl k :] ]
-  and stream_patt_comp b spc k =
-    match spc with
-    [ SPCterm (p, w) ->
-        HVbox [: b; `S LO "`"; `patt p "" [: :]; `HVbox [: when_opt w k :] :]
-    | SPCnterm p e ->
-        HVbox [: b; `HVbox [: `patt p "" [: `S LR "=" :]; `expr e "" k :] :]
-    | SPCsterm p -> HVbox [: b; `patt p "" k :] ]
-  and when_opt wo k =
-    match wo with
-    [ Some e -> [: `S LR "when"; `expr e "" k :]
-    | _ -> k ]
-  in
-  parser_cases b spel k
-;
-
-value parser_body e dg k =
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  match Parserify.parser_of_expr e with
-  [ [] ->
-      HVbox
-        [: `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           `HVbox [: `S LR "[]"; k :] :]
-  | [spe] ->
-      HVbox
-        [: `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           parser_cases [: :] [spe] k :]
-  | spel ->
-      Vbox
-        [: `HVbox [: :];
-           `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           parser_cases [: `S LR "[" :] spel [: `S LR "]"; k :] :] ]
-;
-
-value pmatch e dg k =
-  let (me, e) =
-    match e with
-    [ <:expr< let (__strm : Stream.t _) = $me$ in $e$ >> -> (me, e)
-    | <:expr< match $_$ __strm with [ $list:_$ ] >> -> (<:expr< __strm >>, e)
-    | _ -> failwith "Pr_rp.pmatch" ]
-  in
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  let spel = Parserify.parser_of_expr e in
-  Vbox
-    [: `HVbox [: :];
-       `HVbox
-          [: `S LR "match"; `expr me "" [: `S LR "with" :]; `S LR "parser";
-             match bp with
-             [ Some p -> [: `patt p "" [: :] :]
-             | _ -> [: :] ] :];
-       parser_cases [: `S LR "[" :] spel [: `S LR "]"; k :] :]
-;
-
-(* Printer extensions *)
-
-pr_expr_fun_args.val :=
-  extfun pr_expr_fun_args.val with
-  [ <:expr< fun __strm -> $_$ >> as ge -> ([], ge)
-  | <:expr< fun [(__strm : $_$) -> $_$] >> as ge -> ([], ge) ];
-
-let lev = find_pr_level "top" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< let (__strm : Stream.t _) = $_$ in $_$ >> as e ->
-      fun curr next _ k -> [: `pmatch e "" k :]
-  | <:expr< match $_$ __strm with [ $list:_$ ] >> as e ->
-      fun curr next _ k -> [: `pmatch e "" k :]
-  | <:expr< fun __strm -> $x$ >> ->
-      fun curr next _ k -> [: `parser_body x "" k :]
-  | <:expr< fun (__strm : $_$) -> $x$ >> ->
-      fun curr next _ k -> [: `parser_body x "" k :] ];
-
-let lev = find_pr_level "apply" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.iapp $_$ $_$ >> | <:expr< Stream.icons $_$ $_$ >> |
-    <:expr< Stream.ising $_$ >> | <:expr< Stream.lapp (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lcons (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lsing (fun _ -> $_$) >> | <:expr< Stream.sempty >> |
-    <:expr< Stream.slazy $_$ >> as e ->
-      fun curr next _ k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "dot" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.sempty >> as e ->
-      fun curr next _ k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "simple" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.iapp $_$ $_$ >> | <:expr< Stream.icons $_$ $_$ >> |
-    <:expr< Stream.ising $_$ >> | <:expr< Stream.lapp (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lcons (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lsing (fun _ -> $_$) >> | <:expr< Stream.sempty >> |
-    <:expr< Stream.slazy $_$ >> as e ->
-      fun curr next _ k -> [: `stream e "" k :] ];
diff --git a/camlp4/unmaintained/etc/pr_rp_main.ml b/camlp4/unmaintained/etc/pr_rp_main.ml
deleted file mode 100644 (file)
index 534d407..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-(* camlp4r q_MLast.cmo ./pa_extfun.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Pcaml;
-open Spretty;
-
-value _loc = Loc.mk "FIXME pr_rp_main.ml";
-
-value expr e dg k = pr_expr.pr_fun "top" e dg k;
-value patt e dg k = pr_patt.pr_fun "top" e dg k;
-
-(* Streams *)
-
-value stream e _ k =
-  let rec get =
-    fun
-    [ <:expr< Stream.iapp $x$ $y$ >> -> [(False, x) :: get y]
-    | <:expr< Stream.icons $x$ $y$ >> -> [(True, x) :: get y]
-    | <:expr< Stream.ising $x$ >> -> [(True, x)]
-    | <:expr< Stream.lapp (fun _ -> $x$) $y$ >> -> [(False, x) :: get y]
-    | <:expr< Stream.lcons (fun _ -> $x$) $y$ >> -> [(True, x) :: get y]
-    | <:expr< Stream.lsing (fun _ -> $x$) >> -> [(True, x)]
-    | <:expr< Stream.sempty >> -> []
-    | <:expr< Stream.slazy (fun _ -> $x$) >> -> [(False, x)]
-    | <:expr< Stream.slazy $x$ >> -> [(False, <:expr< $x$ () >>)]
-    | e -> [(False, e)] ]
-  in
-  let elem e k =
-    match e with
-    [ (True, e) -> [: `HOVbox [: `S LO "`"; `expr e "" k :] :]
-    | (False, e) -> [: `expr e "" k :] ]
-  in
-  let rec glop e k =
-    match e with
-    [ [] -> k
-    | [e] -> [: elem e k :]
-    | [e :: el] -> [: elem e [: `S RO ";" :]; glop el k :] ]
-  in
-  HOVbox [: `S LR "[:"; glop (get e) [: `S LR ":]"; k :] :]
-;
-
-(* Parsers *)
-
-open Parserify;
-
-value parser_cases b spel k =
-  let rec parser_cases b spel k =
-    match spel with
-    [ [] -> [: `HVbox [: b; k :] :]
-    | [(sp, epo, e)] -> [: `parser_case b sp epo e k :]
-    | [(sp, epo, e) :: spel] ->
-        [: `parser_case b sp epo e [: :];
-           parser_cases [: `S LR "|" :] spel k :] ]
-  and parser_case b sp epo e k =
-    let epo =
-      match epo with
-      [ Some p -> [: `patt p "" [: `S LR "->" :] :]
-      | _ -> [: `S LR "->" :] ]
-    in
-    HVbox
-      [: b;
-         `HOVbox
-            [: `HOVbox
-                  [: `S LR "[:";
-                     stream_patt [: :] sp [: `S LR ":]"; epo :] :];
-               `expr e "" k :] :]
-  and stream_patt b sp k =
-    match sp with
-    [ [] -> [: `HVbox [: b; k :] :]
-    | [(spc, None)] -> [: `stream_patt_comp b spc k :]
-    | [(spc, Some e)] ->
-        [: `HVbox
-              [: `stream_patt_comp b spc [: :];
-                 `HVbox [: `S LR "?"; `expr e "" k :] :] :]
-    | [(spc, None) :: spcl] ->
-        [: `stream_patt_comp b spc [: `S RO ";" :];
-           stream_patt [: :] spcl k :]
-    | [(spc, Some e) :: spcl] ->
-        [: `HVbox
-              [: `stream_patt_comp b spc [: :];
-                 `HVbox [: `S LR "?"; `expr e "" [: `S RO ";" :] :] :];
-           stream_patt [: :] spcl k :] ]
-  and stream_patt_comp b spc k =
-    match spc with
-    [ SPCterm (p, w) ->
-        HVbox [: b; `S LO "`"; `patt p "" [: :]; `HVbox [: when_opt w k :] :]
-    | SPCnterm p e ->
-        HVbox [: b; `HVbox [: `patt p "" [: `S LR "=" :]; `expr e "" k :] :]
-    | SPCsterm p -> HVbox [: b; `patt p "" k :] ]
-  and when_opt wo k =
-    match wo with
-    [ Some e -> [: `S LR "when"; `expr e "" k :]
-    | _ -> k ]
-  in
-  parser_cases b spel k
-;
-
-value parser_body e _ k =
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  match parser_of_expr e with
-  [ [] ->
-      HVbox
-        [: `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           `HVbox [: `S LR "[]"; k :] :]
-  | [spe] ->
-      HVbox
-        [: `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           parser_cases [: :] [spe] k :]
-  | spel ->
-      Vbox
-        [: `HVbox [: :];
-           `HVbox
-              [: `S LR "parser";
-                 match bp with
-                 [ Some p -> [: `patt p "" [: :] :]
-                 | _ -> [: :] ] :];
-           parser_cases [: `S LR "[" :] spel [: `S LR "]"; k :] :] ]
-;
-
-value pmatch e _ k =
-  let (me, e) =
-    match e with
-    [ <:expr< let (__strm : Stream.t _) = $me$ in $e$ >> -> (me, e)
-    | _ -> failwith "Pr_rp.pmatch" ]
-  in
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  let spel = parser_of_expr e in
-  Vbox
-    [: `HVbox [: :];
-       `HVbox
-          [: `S LR "match"; `expr me "" [: `S LR "with" :]; `S LR "parser";
-             match bp with
-             [ Some p -> [: `patt p "" [: :] :]
-             | _ -> [: :] ] :];
-       parser_cases [: `S LR "[" :] spel [: `S LR "]"; k :] :]
-;
-
-(* Printer extensions *)
-
-pr_expr_fun_args.val :=
-  extfun pr_expr_fun_args.val with
-  [ <:expr< fun __strm -> $_$ >> as ge -> ([], ge)
-  | <:expr< fun [(__strm : $_$) -> $_$] >> as ge -> ([], ge) ];
-
-let lev = find_pr_level "top" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< let (__strm : Stream.t _) = $_$ in $_$ >> as e ->
-      fun _ _ _ k -> [: `pmatch e "" k :]
-  | <:expr< fun __strm -> $x$ >> ->
-      fun _ _ _ k -> [: `parser_body x "" k :]
-  | <:expr< fun (__strm : $_$) -> $x$ >> ->
-      fun _ _ _ k -> [: `parser_body x "" k :] ];
-
-let lev = find_pr_level "apply" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.iapp $_$ $_$ >> | <:expr< Stream.icons $_$ $_$ >> |
-    <:expr< Stream.ising $_$ >> | <:expr< Stream.lapp (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lcons (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lsing (fun _ -> $_$) >> | <:expr< Stream.sempty >> |
-    <:expr< Stream.slazy $_$ >> as e ->
-      fun _ next _ k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "dot" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.sempty >> as e ->
-      fun _ next _ k -> [: `next e "" k :] ];
-
-let lev = find_pr_level "simple" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< Stream.iapp $_$ $_$ >> | <:expr< Stream.icons $_$ $_$ >> |
-    <:expr< Stream.ising $_$ >> | <:expr< Stream.lapp (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lcons (fun _ -> $_$) $_$ >> |
-    <:expr< Stream.lsing (fun _ -> $_$) >> | <:expr< Stream.sempty >> |
-    <:expr< Stream.slazy $_$ >> as e ->
-      fun _ _ _ k -> [: `stream e "" k :] ];
diff --git a/camlp4/unmaintained/etc/q_phony.ml b/camlp4/unmaintained/etc/q_phony.ml
deleted file mode 100644 (file)
index e490808..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-(* camlp4r pa_extend.cmo q_MLast.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 2001 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Pcaml;
-
-value t = ref "";
-
-Quotation.add ""
-  (Quotation.ExAst
-     (fun c s ->
-        let _loc = c.Quotation.loc in
-        let t =
-          if t.val = "" then "<<" ^ s ^ ">>"
-          else "<:" ^ t.val ^ "<" ^ s ^ ">>"
-        in
-        <:expr< $uid:t$ >>,
-      fun c s ->
-        let _loc = c.Quotation.loc in
-        let t =
-          if t.val = "" then "<<" ^ s ^ ">>"
-          else "<:" ^ t.val ^ "<" ^ s ^ ">>"
-        in
-        <:patt< $uid:t$ >>))
-;
-
-Quotation.default.val := "";
-Quotation.translate.val := fun s -> do { t.val := s; "" };
diff --git a/camlp4/unmaintained/extfold/README b/camlp4/unmaintained/extfold/README
deleted file mode 100644 (file)
index 2a09ff0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This is an application of or an extension for Camlp4. Although it is
-currently distributed with OCaml/Camlp4, it may or may not be
-actively maintained.
-
-It probably won't be part of future OCaml/Camlp4 distributions but be
-accessible from the Camlp4 hump. If you are interested in developing
-this package further and/or actively maintain it, please let us know
-(caml@inria.fr)
-
-This package is distributed under the same license as the Objective
-Caml Library (that is, LGPL with a special exception allowing both
-static and dynamic link).
-
--- Michel Mauny
-   Nicolas Pouillard
diff --git a/camlp4/unmaintained/extfold/pa_extfold.ml b/camlp4/unmaintained/extfold/pa_extfold.ml
deleted file mode 100644 (file)
index aa8e922..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-(* camlp4r pa_extend.cmo q_MLast.cmo *)
-
-
-open Pcaml;
-open Pa_extend;
-
-value sfold _loc n foldfun f e s =
-  let styp = STquo _loc (new_type_var ()) in
-  let e = <:expr< Extfold.$lid:foldfun$ $f$ $e$ >> in
-  let t = STapp _loc (STapp _loc (STtyp <:ctyp< Extfold.t _ >>) s.styp) styp in
-  {used = s.used; text = TXmeta _loc n [s.text] e t; styp = styp}
-;
-
-value sfoldsep _loc n foldfun f e s sep =
-  let styp = STquo _loc (new_type_var ()) in
-  let e = <:expr< Extfold.$lid:foldfun$ $f$ $e$ >> in
-  let t =
-    STapp _loc (STapp _loc (STtyp <:ctyp< Extfold.tsep _ >>) s.styp) styp
-  in
-  {used = s.used @ sep.used; text = TXmeta _loc n [s.text; sep.text] e t;
-   styp = styp}
-;
-
-EXTEND
-  GLOBAL: symbol;
-  symbol: LEVEL "top"
-    [ [ UIDENT "FOLD0"; f = simple_expr; e = simple_expr; s = SELF ->
-          sfold _loc "FOLD0" "sfold0" f e s
-      | UIDENT "FOLD1"; f = simple_expr; e = simple_expr; s = SELF ->
-          sfold _loc "FOLD1" "sfold1" f e s
-      | UIDENT "FOLD0"; f = simple_expr; e = simple_expr; s = SELF;
-        UIDENT "SEP"; sep = symbol ->
-          sfoldsep _loc "FOLD0 SEP" "sfold0sep" f e s sep
-      | UIDENT "FOLD1"; f = simple_expr; e = simple_expr; s = SELF;
-        UIDENT "SEP"; sep = symbol ->
-          sfoldsep _loc "FOLD1 SEP" "sfold1sep" f e s sep ] ]
-  ;
-  simple_expr:
-    [ [ i = LIDENT -> <:expr< $lid:i$ >>
-      | "("; e = expr; ")" -> e ] ]
-  ;
-END;
diff --git a/camlp4/unmaintained/format/.depend b/camlp4/unmaintained/format/.depend
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/camlp4/unmaintained/format/Makefile b/camlp4/unmaintained/format/Makefile
deleted file mode 100644 (file)
index c388720..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#########################################################################
-#                                                                       #
-#                            Objective Caml                             #
-#                                                                       #
-#                                Camlp4                                 #
-#                                                                       #
-#   Copyright 2004 Institut National de Recherche en Informatique et    #
-#   en Automatique.  All rights reserved.  This file is distributed     #
-#   under the terms of the Q Public License version 1.0.                #
-#                                                                       #
-#########################################################################
-#
-# Makefile for pa_format
-# M.Mauny
-#
-
-include ../../config/Makefile.cnf
-
-OCAMLTOP=../../..
-CAMLP4=../../camlp4/camlp4$(EXE)
-
-OCAMLC=$(OCAMLTOP)/ocamlc$(EXE)
-OCAMLOPT=$(OCAMLTOP)/ocamlopt$(EXE)
-
-P4INCLUDES= -nolib -I ../../lib -I ../../meta -I ../../etc
-OCAMLINCLUDES= -nostdlib -I $(OCAMLTOP)/stdlib -I ../../lib -I ../../camlp4
-OCAMLCFLAGS=-warn-error A $(OCAMLINCLUDES)
-
-SRC=pa_format.ml
-OBJS=$(SRC:.ml=.cmo)
-OBJSX=$(SRC:.ml=.cmx)
-
-all: $(OBJS)
-
-opt: $(OBJSX)
-
-depend:
-       cp .depend .depend.bak
-       > .depend
-       for file in $(SRC); do \
-         $(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $$file` pr_depend.cmo $$i | \
-         sed -e 's| \.\./\.\./\.\.| $$(OCAMLTOP)|g' >> .depend; \
-       done
-
-clean:
-       rm -f *.cm* *.$(O) *.bak .*.bak
-
-
-.SUFFIXES: .cmx .cmo .cmi .ml .mli
-
-.mli.cmi:
-       $(OCAMLC) $(OCAMLCFLAGS) -c $<
-
-
-.ml.cmo:
-       $(OCAMLC) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-.ml.cmx:
-       $(OCAMLOPT) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-include .depend
diff --git a/camlp4/unmaintained/format/README b/camlp4/unmaintained/format/README
deleted file mode 100644 (file)
index 809d42f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This is an application of or an extension for Camlp4. Although it is
-currently distributed with OCaml/Camlp4, it may or may not be
-actively maintained.
-
-It probably won't be part of future OCaml/Camlp4 distributions but be
-accessible from the Camlp4 hump. If you are interested in developing
-this package further and/or actively maintain it, please let us know
-(caml@inria.fr)
-
-This package is distributed under the same license as the Objective
-Caml Library (that is, LGPL with a special exception allowing both
-static and dynamic link).
-
--- Michel Mauny
-
diff --git a/camlp4/unmaintained/format/pa_format.ml b/camlp4/unmaintained/format/pa_format.ml
deleted file mode 100644 (file)
index 640a750..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-(* pa_r.cmo pa_extend.cmo q_MLast.cmo pr_dump.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                               Camlp4                                *)
-(*                                                                     *)
-(*    Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file                 *)
-(*   ../../../LICENSE.                                                 *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-open Pcaml;
-
-EXTEND
-  GLOBAL: expr;
-  expr: LEVEL "top"
-    [ [ n = box_type; d = SELF; "begin";
-        el = LIST0 [ e = box_expr; ";" -> e ]; "end" ->
-          let el = [<:expr< Format.$lid:"open_" ^ n$ $d$ >> :: el] in
-          let el = el @ [<:expr< Format.close_box () >>] in
-          <:expr< do { $list:el$ } >>
-      | "hbox"; "begin"; el = LIST0 [ e = box_expr; ";" -> e ]; "end" ->
-          let el = [<:expr< Format.open_hbox () >> :: el] in
-          let el = el @ [<:expr< Format.close_box () >>] in
-          <:expr< do { $list:el$ } >>
-      | "nobox"; "begin"; el = LIST0 [ e = box_expr; ";" -> e ]; "end" ->
-          match el with
-          [ [e] -> e
-          | _ -> <:expr< do { $list:el$ } >> ] ] ]
-  ;
-  box_type:
-    [ [ n = "hovbox" -> n
-      | n = "hvbox" -> n
-      | n = "vbox" -> n
-      | n = "box" -> n ] ]
-  ;
-  box_expr:
-    [ [ s = STRING -> <:expr< Format.print_string $str:s$ >>
-      | UIDENT "STRING"; e = expr -> <:expr< Format.print_string $e$ >>
-      | UIDENT "INT"; e = expr -> <:expr< Format.print_int $e$ >>
-      | "/-" -> <:expr< Format.print_space () >>
-      | "//" -> <:expr< Format.print_cut () >>
-      | "!/" -> <:expr< Format.force_newline () >>
-      | "?/" -> <:expr< Format.print_if_newline () >>
-      | e = expr -> e ] ]
-  ;
-END;
diff --git a/camlp4/unmaintained/lefteval/.depend b/camlp4/unmaintained/lefteval/.depend
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/camlp4/unmaintained/lefteval/Makefile b/camlp4/unmaintained/lefteval/Makefile
deleted file mode 100644 (file)
index 7e5cdd0..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#########################################################################
-#                                                                       #
-#                            Objective Caml                             #
-#                                                                       #
-#                                Camlp4                                 #
-#                                                                       #
-#   Copyright 2004 Institut National de Recherche en Informatique et    #
-#   en Automatique.  All rights reserved.  This file is distributed     #
-#   under the terms of the Q Public License version 1.0.                #
-#                                                                       #
-#########################################################################
-#
-# Makefile for pa_lefteval
-# M.Mauny
-#
-
-include ../../config/Makefile.cnf
-
-OCAMLTOP=../../..
-CAMLP4=../../camlp4/camlp4$(EXE)
-
-OCAMLC=$(OCAMLTOP)/ocamlc$(EXE)
-OCAMLOPT=$(OCAMLTOP)/ocamlopt$(EXE)
-
-P4INCLUDES= -nolib -I ../../meta -I ../../etc
-OCAMLINCLUDES= -nostdlib -I $(OCAMLTOP)/stdlib -I ../../camlp4
-OCAMLCFLAGS=-warn-error A $(OCAMLINCLUDES)
-
-SRC=pa_lefteval.ml
-OBJS=$(SRC:.ml=.cmo)
-OBJSX=$(SRC:.ml=.cmx)
-
-all: $(OBJS)
-
-opt: $(OBJSX)
-
-depend:
-       cp .depend .depend.bak
-       > .depend
-       for file in $(SRC); do \
-         $(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $$file` pr_depend.cmo $$i | \
-         sed -e 's| \.\./\.\./\.\.| $$(OCAMLTOP)|g' >> .depend; \
-       done
-
-clean:
-       rm -f *.cm* *.$(O) *.bak .*.bak
-
-
-.SUFFIXES: .cmx .cmo .cmi .ml .mli
-
-.mli.cmi:
-       $(OCAMLC) $(OCAMLCFLAGS) -c $<
-
-
-.ml.cmo:
-       $(OCAMLC) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-.ml.cmx:
-       $(OCAMLOPT) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-include .depend
diff --git a/camlp4/unmaintained/lefteval/README b/camlp4/unmaintained/lefteval/README
deleted file mode 100644 (file)
index 809d42f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This is an application of or an extension for Camlp4. Although it is
-currently distributed with OCaml/Camlp4, it may or may not be
-actively maintained.
-
-It probably won't be part of future OCaml/Camlp4 distributions but be
-accessible from the Camlp4 hump. If you are interested in developing
-this package further and/or actively maintain it, please let us know
-(caml@inria.fr)
-
-This package is distributed under the same license as the Objective
-Caml Library (that is, LGPL with a special exception allowing both
-static and dynamic link).
-
--- Michel Mauny
-
diff --git a/camlp4/unmaintained/lefteval/pa_lefteval.ml b/camlp4/unmaintained/lefteval/pa_lefteval.ml
deleted file mode 100644 (file)
index 56ad297..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-(* pa_r.cmo q_MLast.cmo pr_dump.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                               Camlp4                                *)
-(*                                                                     *)
-(*    Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file                 *)
-(*   ../../../LICENSE.                                                 *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-value not_impl name x =
-  let desc =
-    if Obj.is_block (Obj.repr x) then
-      "tag = " ^ string_of_int (Obj.tag (Obj.repr x))
-    else "int_val = " ^ string_of_int (Obj.magic x)
-  in
-  failwith ("pa_lefteval: not impl: " ^ name ^ "; " ^ desc ^ ">")
-;
-
-value rec expr_fa al =
-  fun
-  [ <:expr< $f$ $a$ >> -> expr_fa [a :: al] f
-  | f -> (f, al) ]
-;
-
-(* generating let..in before functions calls which evaluates
-   several (more than one) of their arguments *)
-
-value no_side_effects_ht =
-  let ht = Hashtbl.create 73 in
-  do {
-    List.iter (fun s -> Hashtbl.add ht s True)
-      ["<"; "="; "@"; "^"; "+"; "-"; "ref"];
-    ht
-  }
-;
-
-value no_side_effects =
-  fun
-  [ <:expr< $uid:_$ >> -> True
-  | <:expr< $uid:_$ . $uid:_$ >> -> True
-  | <:expr< $lid:s$ >> ->
-      try Hashtbl.find no_side_effects_ht s with [ Not_found -> False ]
-  | _ -> False ]
-;
-
-value rec may_side_effect =
-  fun
-  [ <:expr< $lid:_$ >> | <:expr< $uid:_$ >> | <:expr< $str:_$ >> |
-    <:expr< $chr:_$ >> | <:expr< $int:_$ >> | <:expr< $flo:_$ >> |
-    <:expr< $_$ . $_$ >> | <:expr< fun [ $list:_$ ] >> ->
-      False
-  | <:expr< ($list:el$) >> -> List.exists may_side_effect el
-  | <:expr< $_$ $_$ >> as e ->
-      let (f, el) = expr_fa [] e in
-      not (no_side_effects f) || List.exists may_side_effect el
-  | _ -> True ]
-;
-
-value rec may_be_side_effect_victim =
-  fun
-  [ <:expr< $lid:_$ . $_$ >> -> True
-  | <:expr< $uid:_$ . $e$ >> -> may_be_side_effect_victim e
-  | _ -> False ]
-;
-
-value rec may_depend_on_order el =
-  loop False False el where rec loop
-    side_effect_found side_effect_victim_found =
-    fun
-    [ [e :: el] ->
-        if may_side_effect e then
-          if side_effect_found || side_effect_victim_found then True
-          else loop True True el
-        else if may_be_side_effect_victim e then
-          if side_effect_found then True else loop False True el
-        else loop side_effect_found side_effect_victim_found el
-    | [] -> False ]
-;
-
-value gen_let_in loc expr el =
-  let (pel, el) =
-    loop 0 (List.rev el) where rec loop n =
-      fun
-      [ [e :: el] ->
-          if may_side_effect e || may_be_side_effect_victim e then
-            if n = 0 then
-              let (pel, el) = loop 1 el in
-              (pel, [expr e :: el])
-            else
-              let id = "xxx" ^ string_of_int n in
-              let (pel, el) = loop (n + 1) el in
-              ([(<:patt< $lid:id$ >>, expr e) :: pel],
-               [<:expr< $lid:id$ >> :: el])
-          else
-            let (pel, el) = loop n el in
-            (pel, [expr e :: el])
-      | [] -> ([], []) ]
-  in
-  match List.rev el with
-  [ [e :: el] -> (pel, e, el)
-  | _ -> assert False ]
-;
-
-value left_eval_apply loc expr e1 e2 =
-  let (f, el) = expr_fa [] <:expr< $e1$ $e2$ >> in
-  if not (may_depend_on_order [f :: el]) then <:expr< $expr e1$ $expr e2$ >>
-  else
-    let (pel, e, el) = gen_let_in loc expr [f :: el] in
-    let e = List.fold_left (fun e e1 -> <:expr< $e$ $e1$ >>) e el in
-    List.fold_left (fun e (p1, e1) -> <:expr< let $p1$ = $e1$ in $e$ >>) e pel
-;
-
-value left_eval_tuple loc expr el =
-  if not (may_depend_on_order el) then <:expr< ($list:List.map expr el$) >>
-  else
-    let (pel, e, el) = gen_let_in loc expr el in
-    List.fold_left (fun e (p1, e1) -> <:expr< let $p1$ = $e1$ in $e$ >>)
-      <:expr< ($list:[e :: el]$) >> pel
-;
-
-value left_eval_record loc expr lel =
-  let el = List.map snd lel in
-  if not (may_depend_on_order el) then
-    let lel = List.map (fun (p, e) -> (p, expr e)) lel in
-    <:expr< { $list:lel$ } >>
-  else
-    let (pel, e, el) = gen_let_in loc expr el in
-    let e =
-      let lel = List.combine (List.map fst lel) [e :: el] in
-      <:expr< { $list:lel$ } >>
-    in
-    List.fold_left (fun e (p1, e1) -> <:expr< let $p1$ = $e1$ in $e$ >>) e pel
-;
-
-value left_eval_assign loc expr e1 e2 = <:expr< $e1$ := $expr e2$ >>;
-
-(* scanning the input tree, calling "left_eval_*" functions if necessary *)
-
-value map_option f =
-  fun
-  [ Some x -> Some (f x)
-  | None -> None ]
-;
-
-value class_infos f ci =
-  {MLast.ciLoc = ci.MLast.ciLoc; MLast.ciVir = ci.MLast.ciVir;
-   MLast.ciPrm = ci.MLast.ciPrm; MLast.ciNam = ci.MLast.ciNam;
-   MLast.ciExp = f ci.MLast.ciExp}
-;
-
-value rec expr x =
-  let loc = MLast.loc_of_expr x in
-  match x with
-  [ <:expr< fun [ $list:pwel$ ] >> ->
-      <:expr< fun [ $list:List.map match_assoc pwel$ ] >>
-  | <:expr< match $e$ with [ $list:pwel$ ] >> ->
-      <:expr< match $expr e$ with [ $list:List.map match_assoc pwel$ ] >>
-  | <:expr< try $e$ with [ $list:pwel$ ] >> ->
-      <:expr< try $expr e$ with [ $list:List.map match_assoc pwel$ ] >>
-  | <:expr< let $opt:rf$ $list:pel$ in $e$ >> ->
-      <:expr< let $opt:rf$ $list:List.map let_binding pel$ in $expr e$ >>
-  | <:expr< let module $s$ = $me$ in $e$ >> ->
-      <:expr< let module $s$ = $module_expr me$ in $expr e$ >>
-  | <:expr< if $e1$ then $e2$ else $e3$ >> ->
-      <:expr< if $expr e1$ then $expr e2$ else $expr e3$ >>
-  | <:expr< while $e$ do { $list:el$ } >> ->
-      <:expr< while $expr e$ do { $list:List.map expr el$ } >>
-  | <:expr< do { $list:el$ } >> -> <:expr< do { $list:List.map expr el$ } >>
-  | <:expr< $e$ # $s$ >> -> <:expr< $expr e$ # $s$ >>
-  | <:expr< ($e$ : $t$) >> -> <:expr< ($expr e$ : $t$) >>
-  | <:expr< $e1$ || $e2$ >> -> <:expr< $expr e1$ || $expr e2$ >>
-  | <:expr< $e1$ && $e2$ >> -> <:expr< $expr e1$ && $expr e2$ >>
-  | <:expr< $e1$ $e2$ >> -> left_eval_apply loc expr e1 e2
-  | <:expr< ($list:el$) >> -> left_eval_tuple loc expr el
-  | <:expr< { $list:lel$ } >> -> left_eval_record loc expr lel
-  | <:expr< $e1$ := $e2$ >> -> left_eval_assign loc expr e1 e2
-  | <:expr< $_$ . $_$ >> | <:expr< $uid:_$ >> | <:expr< $lid:_$ >> |
-    <:expr< $str:_$ >> | <:expr< $chr:_$ >> | <:expr< $int:_$ >> |
-    <:expr< $flo:_$ >> | <:expr< new $list:_$ >> ->
-      x
-  | x -> not_impl "expr" x ]
-and let_binding (p, e) = (p, expr e)
-and match_assoc (p, eo, e) = (p, map_option expr eo, expr e)
-and module_expr x =
-  let loc = MLast.loc_of_module_expr x in
-  match x with
-  [ <:module_expr< functor ($s$ : $mt$) -> $me$ >> ->
-      <:module_expr< functor ($s$ : $mt$) -> $module_expr me$ >>
-  | <:module_expr< ($me$ : $mt$) >> ->
-      <:module_expr< ($module_expr me$ : $mt$) >>
-  | <:module_expr< struct $list:sil$ end >> ->
-      <:module_expr< struct $list:List.map str_item sil$ end >>
-  | <:module_expr< $_$ . $_$ >> | <:module_expr< $_$ $_$ >> |
-    <:module_expr< $uid:_$ >> ->
-      x ]
-and str_item x =
-  let loc = MLast.loc_of_str_item x in
-  match x with
-  [ <:str_item< module $s$ = $me$ >> ->
-      <:str_item< module $s$ = $module_expr me$ >>
-  | <:str_item< value $opt:rf$ $list:pel$ >> ->
-      <:str_item< value $opt:rf$ $list:List.map let_binding pel$ >>
-  | <:str_item< declare $list:sil$ end >> ->
-      <:str_item< declare $list:List.map str_item sil$ end >>
-  | <:str_item< class $list:ce$ >> ->
-      <:str_item< class $list:List.map (class_infos class_expr) ce$ >>
-  | <:str_item< $exp:e$ >> -> <:str_item< $exp:expr e$ >>
-  | <:str_item< open $_$ >> | <:str_item< type $list:_$ >> |
-    <:str_item< exception $_$ of $list:_$ = $_$ >> |
-    <:str_item< module type $_$ = $_$ >> | <:str_item< # $_$ $opt:_$ >> ->
-      x
-  | x -> not_impl "str_item" x ]
-and class_expr x =
-  let loc = MLast.loc_of_class_expr x in
-  match x with
-  [ <:class_expr< object $opt:p$ $list:csil$ end >> ->
-      <:class_expr< object $opt:p$ $list:List.map class_str_item csil$ end >>
-  | x -> not_impl "class_expr" x ]
-and class_str_item x =
-  let loc = MLast.loc_of_class_str_item x in
-  match x with
-  [ <:class_str_item< value $opt:mf$ $s$ = $e$ >> ->
-      <:class_str_item< value $opt:mf$ $s$ = $expr e$ >>
-  | <:class_str_item< method $s$ = $e$ >> ->
-      <:class_str_item< method $s$ = $expr e$ >>
-  | x -> not_impl "class_str_item" x ]
-;
-
-value parse_implem = Pcaml.parse_implem.val;
-value parse_implem_with_left_eval strm =
-  let (r, b) = parse_implem strm in
-  (List.map (fun (si, loc) -> (str_item si, loc)) r, b)
-;
-Pcaml.parse_implem.val := parse_implem_with_left_eval;
diff --git a/camlp4/unmaintained/lib/.cvsignore b/camlp4/unmaintained/lib/.cvsignore
deleted file mode 100644 (file)
index c77a681..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-*.cm[oiax]
-*.cmxa
-*.lib
diff --git a/camlp4/unmaintained/lib/.depend b/camlp4/unmaintained/lib/.depend
deleted file mode 100644 (file)
index a779396..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-debug.cmo: debug.cmi 
-debug.cmx: debug.cmi 
-extfun.cmo: extfun.cmi 
-extfun.cmx: extfun.cmi 
-fstream.cmo: fstream.cmi 
-fstream.cmx: fstream.cmi 
-grammar.cmo: token.cmi plexer.cmi loc.cmi 
-grammar.cmx: token.cmx plexer.cmi loc.cmx 
-loc.cmo: loc.cmi 
-loc.cmx: loc.cmi 
-token.cmo: loc.cmi token.cmi 
-token.cmx: loc.cmx token.cmi 
-plexer.cmi: token.cmi loc.cmi 
-token.cmi: loc.cmi 
diff --git a/camlp4/unmaintained/lib/Makefile b/camlp4/unmaintained/lib/Makefile
deleted file mode 100644 (file)
index 3d5be9b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-include ../config/Makefile.cnf
-
-INCLUDES=-I $(OTOP)/parsing -I $(OTOP)/utils
-LIBRARIES=gramlib.cma
-OBJS=$(OTOP)/utils/misc.cmo $(OTOP)/parsing/linenum.cmo                \
-     $(OTOP)/utils/warnings.cmo $(OTOP)/parsing/location.cmo   \
-     $(OTOP)/utils/config.cmo debug.cmo loc.cmo                        \
-     token.cmo lexer_token.cmo lexer_error.cmo                 \
-     plexer.cmo grammar.cmo extfun.cmo                         \
-     fstream.cmo
-CLEANFILES=plexer.ml
-
-include ../config/Makefile.base
-
-debug.cmo: debug.cmi
-debug.cmo: debug.ml
-       $(OCAMLC) -pp '$(CAMLP4BOOT)' -rectypes $(OCAMLCFLAGS) $< -c -o $@
-
-plexer.cmo: plexer.ml plexer.cmi
-       $(OCAMLC) $(OCAMLCFLAGS) $< -c -o $@
-
-plexer.cmx: plexer.ml plexer.cmi
-       $(OCAMLOPT) $(OCAMLCFLAGS) $< -c -o $@
-
-$(LIBRARIES): $(OBJS)
-       $(OCAMLC) -linkall $(OBJS) -a -o $(LIBRARIES)
-
-$(LIBRARIESX): $(OBJSX)
-       $(OCAMLOPT) -linkall $(OBJSX) -a -o $(LIBRARIESX)
-
-$(LIBRARIESP): $(OBJSP)
-       $(OCAMLOPT) -linkall $(OBJSP) -a -o $(LIBRARIESP)
-
-install-local:
-       -$(MKDIR) "$(LIBDIR)/camlp4"
-       cp $(LIBRARIES) *.mli "$(LIBDIR)/camlp4/."
-       cp *.cmi "$(LIBDIR)/camlp4/."
-       test -f $(LIBRARIESX) && $(MAKE) installopt LIBDIR="$(LIBDIR)" || true
-
-installopt:
-       for f in $(LIBRARIESX) $(LIBRARIESP) *.cmx ; do \
-               test -f $$f && cp $$f "$(LIBDIR)/camlp4/." || true ; \
-       done
-       # Special treatment for this one: some versions of make don't like $(A) in $(TARGET:.cma=.$(A)) 
-       target="`echo $(LIBRARIES) | sed -e 's/\.cma$$/.$(A)/'`" ; \
-          if test -f $$target ; then \
-             cp $$target "$(LIBDIR)/camlp4/." && ( cd "$(LIBDIR)/camlp4/." && $(RANLIB) $$target ) \
-         fi
-
-include .depend
diff --git a/camlp4/unmaintained/lib/extfun.ml b/camlp4/unmaintained/lib/extfun.ml
deleted file mode 100644 (file)
index 4f4cbbd..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-(* camlp4r *)
-
-(* Copyright 2001 INRIA *)
-
-(* Extensible Functions *)
-
-type t 'a 'b = list (matching 'a 'b)
-and matching 'a 'b = { patt : patt; has_when : bool; expr : expr 'a 'b }
-and patt =
-  [ Eapp of list patt
-  | Eacc of list patt
-  | Econ of string
-  | Estr of string
-  | Eint of string
-  | Etup of list patt
-  | Evar of unit ]
-and expr 'a 'b = 'a -> option 'b
-;
-
-exception Failure;
-
-value empty = [];
-
-(*** Apply ***)
-
-value rec apply_matchings a =
-  fun
-  [ [m :: ml] ->
-      match m.expr a with
-      [ None -> apply_matchings a ml
-      | x -> x ]
-  | [] -> None ]
-;
-
-value apply ef a =
-  match apply_matchings a ef with
-  [ Some x -> x
-  | None -> raise Failure ]
-;
-
-(*** Trace ***)
-
-value rec list_iter_sep f s =
-  fun
-  [ [] -> ()
-  | [x] -> f x
-  | [x :: l] -> do { f x; s (); list_iter_sep f s l } ]
-;
-
-value rec print_patt =
-  fun
-  [ Eapp pl -> list_iter_sep print_patt2 (fun () -> print_string " ") pl
-  | p -> print_patt2 p ]
-and print_patt2 =
-  fun
-  [ Eacc pl -> list_iter_sep print_patt1 (fun () -> print_string ".") pl
-  | p -> print_patt1 p ]
-and print_patt1 =
-  fun
-  [ Econ s -> print_string s
-  | Estr s -> do { print_string "\""; print_string s; print_string "\"" }
-  | Eint s -> print_string s
-  | Evar () -> print_string "_"
-  | Etup pl ->
-      do {
-        print_string "(";
-        list_iter_sep print_patt (fun () -> print_string ", ") pl;
-        print_string ")"
-      }
-  | Eapp _ | Eacc _ as p ->
-      do { print_string "("; print_patt p; print_string ")" } ]
-;
-
-value print ef =
-  List.iter
-    (fun m ->
-       do {
-         print_patt m.patt;
-         if m.has_when then print_string " when ..." else ();
-         print_newline ()
-       })
-    ef
-;
-
-(*** Extension ***)
-
-value insert_matching matchings (patt, has_when, expr) =
-  let m1 = {patt = patt; has_when = has_when; expr = expr} in
-  let rec loop =
-    fun
-    [ [m :: ml] as gml ->
-        if m1.has_when && not m.has_when then [m1 :: gml] else
-        if not m1.has_when && m.has_when then [m :: loop ml] else
-        (* either both or none have a when clause *)
-        if compare m1.patt m.patt = 0 then 
-          if not m1.has_when then [m1 :: ml] else [m1 :: gml]
-        else [m :: loop ml]
-    | [] -> [m1] ]
-  in
-  loop matchings
-;
-
-(* available extension function *)
-
-value extend ef matchings_def =
-  List.fold_left insert_matching ef matchings_def
-;
diff --git a/camlp4/unmaintained/lib/extfun.mli b/camlp4/unmaintained/lib/extfun.mli
deleted file mode 100644 (file)
index 6d71fc1..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-(* camlp4r *)
-
-
-(** Extensible functions.
-
-   This module implements pattern matching extensible functions.
-   To extend, use syntax [pa_extfun.cmo]:
-
-      [extfun e with [ pattern_matching ]] *)
-
-type t 'a 'b = 'x;
-   (** The type of the extensible functions of type ['a -> 'b] *)
-value empty : t 'a 'b;
-   (** Empty extensible function *)
-value apply : t 'a 'b -> 'a -> 'b;
-   (** Apply an extensible function *)
-exception Failure;
-   (** Match failure while applying an extensible function *)
-value print : t 'a 'b -> unit;
-   (** Print patterns in the order they are recorded *)
-
-(**/**)
-
-type patt =
-  [ Eapp of list patt
-  | Eacc of list patt
-  | Econ of string
-  | Estr of string
-  | Eint of string
-  | Etup of list patt
-  | Evar of unit ]
-and expr 'a 'b = 'a -> option 'b
-;
-
-value extend : t 'a 'b -> list (patt * bool * expr 'a 'b) -> t 'a 'b;
diff --git a/camlp4/unmaintained/lib/fstream.ml b/camlp4/unmaintained/lib/fstream.ml
deleted file mode 100644 (file)
index 8c3171a..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-(* camlp4r *)
-
-(* Copyright 2001 INRIA *)
-
-type t 'a = { count : int; data : Lazy.t (data 'a) }
-and data 'a =
-  [ Nil
-  | Cons of 'a and t 'a
-  | App of t 'a and t 'a ]
-;
-
-value from f =
-  loop 0 where rec loop i =
-    {count = 0;
-     data =
-       lazy
-         (match f i with
-          [ Some x -> Cons x (loop (i + 1))
-          | None -> Nil ])}
-;
-
-value rec next s =
-  let count = s.count + 1 in
-  match Lazy.force s.data with
-  [ Nil -> None
-  | Cons a s -> Some (a, {count = count; data = s.data})
-  | App s1 s2 ->
-      match next s1 with
-      [ Some (a, s1) -> Some (a, {count = count; data = lazy (App s1 s2)})
-      | None ->
-          match next s2 with
-          [ Some (a, s2) -> Some (a, {count = count; data = s2.data})
-          | None -> None ] ] ]
-;
-
-value empty s =
-  match next s with
-  [ Some _ -> None
-  | None -> Some ((), s) ]
-;
-
-value nil = {count = 0; data = lazy Nil};
-value cons a s = Cons a s;
-value app s1 s2 = App s1 s2;
-value flazy f = {count = 0; data = Lazy.lazy_from_fun f};
-
-value of_list l =
-  List.fold_right (fun x s -> flazy (fun () -> cons x s)) l nil
-;
-
-value of_string s =
-  from (fun c -> if c < String.length s then Some s.[c] else None)
-;
-
-value of_channel ic =
-  from (fun _ -> try Some (input_char ic) with [ End_of_file -> None ])
-;
-
-value iter f =
-  do_rec where rec do_rec strm =
-    match next strm with
-    [ Some (a, strm) ->
-        let _ = f a in
-        do_rec strm
-    | None -> () ]
-;
-
-value count s = s.count;
-
-value count_unfrozen s =
-  loop 0 s where rec loop cnt s =
-    if Lazy.lazy_is_val s.data then
-      match Lazy.force s.data with
-      [ Cons _ s -> loop (cnt + 1) s
-      | _ -> cnt ]
-    else cnt
-;
diff --git a/camlp4/unmaintained/lib/fstream.mli b/camlp4/unmaintained/lib/fstream.mli
deleted file mode 100644 (file)
index 723389a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-(* camlp4r *)
-
-
-(* Module [Fstream]: functional streams *)
-
-(* This module implement functional streams.
-   To be used with syntax [pa_fstream.cmo]. The syntax is:
--     stream: [fstream [: ... :]]
--     parser: [parser [ [: ... :] -> ... | ... ]]
-
-   Functional parsers are of type: [Fstream.t 'a -> option ('a * Fstream.t 'a)]
-
-   They have limited backtrack, i.e if a rule fails, the next rule is tested
-   with the initial stream; limited because when in case of a rule with two
-   consecutive symbols [a] and [b], if [b] fails, the rule fails: there is
-   no try with the next rule of [a].
-*)
-
-type t 'a = 'x;
-    (* The type of 'a functional streams *)
-value from : (int -> option 'a) -> t 'a;
-    (* [Fstream.from f] returns a stream built from the function [f].
-       To create a new stream element, the function [f] is called with
-       the current stream count. The user function [f] must return either
-       [Some <value>] for a value or [None] to specify the end of the
-       stream. *)
-
-value of_list : list 'a -> t 'a;
-    (* Return the stream holding the elements of the list in the same
-       order. *)
-value of_string : string -> t char;
-    (* Return the stream of the characters of the string parameter. *)
-value of_channel : in_channel -> t char;
-    (* Return the stream of the characters read from the input channel. *)
-
-value iter : ('a -> unit) -> t 'a -> unit;
-    (* [Fstream.iter f s] scans the whole stream s, applying function [f]
-       in turn to each stream element encountered. *)
-
-value next : t 'a -> option ('a * t 'a);
-    (* Return [Some (a, s)] where [a] is the first element of the stream
-       and [s] the remaining stream, or [None] if the stream is empty. *)
-value empty : t 'a -> option (unit * t 'a);
-    (* Return [Some ((), s)] if the stream is empty where [s] is itself,
-       else [None] *)
-value count : t 'a -> int;
-    (* Return the current count of the stream elements, i.e. the number
-       of the stream elements discarded. *)
-value count_unfrozen : t 'a -> int;
-    (* Return the number of unfrozen elements in the beginning of the
-       stream; useful to determine the position of a parsing error (longuest
-       path). *)
-
-(*--*)
-
-value nil : t 'a;
-type data 'a = 'x;
-value cons : 'a -> t 'a -> data 'a;
-value app : t 'a -> t 'a -> data 'a;
-value flazy : (unit -> data 'a) -> t 'a;
diff --git a/camlp4/unmaintained/ocamllex/Makefile b/camlp4/unmaintained/ocamllex/Makefile
deleted file mode 100644 (file)
index b232023..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#########################################################################
-#                                                                       #
-#                            Objective Caml                             #
-#                                                                       #
-#                                Camlp4                                 #
-#                                                                       #
-#   Copyright 2004 Institut National de Recherche en Informatique et    #
-#   en Automatique.  All rights reserved.  This file is distributed     #
-#   under the terms of the Q Public License version 1.0.                #
-#                                                                       #
-#########################################################################
-#
-# Makefile for pa_ocamllex
-# M.Mauny
-#
-
-include ../../config/Makefile.cnf
-
-OCAMLTOP=../../..
-
-CAMLP4=../../camlp4/camlp4$(EXE)
-
-OCAMLC=$(OCAMLTOP)/ocamlc$(EXE)
-OCAMLOPT=$(OCAMLTOP)/ocamlopt$(EXE)
-
-P4INCLUDES= -nolib -I ../../etc -I ../../meta
-OCAMLINCLUDES= -nostdlib -I $(OCAMLTOP)/stdlib -I ../../camlp4 -I ../../lib -I $(OCAMLTOP)/lex
-OCAMLCFLAGS=-warn-error A $(OCAMLINCLUDES)
-
-SRC=pa_ocamllex.ml
-OBJS=pa_ocamllex.cmo
-OBJSX=$(OBJS:.cmo=.cmx)
-
-all: $(OBJS) pa_ocamllex.cma
-
-opt: $(OBJSX) pa_ocamllex.cmxa
-
-pa_ocamllex.cma: pa_ocamllex.cmo
-       $(OCAMLC) $(OCAMLCFLAGS) cset.cmo syntax.cmo table.cmo lexgen.cmo compact.cmo pa_ocamllex.cmo -a -o pa_ocamllex.cma
-
-pa_ocamllex.cmxa: pa_ocamllex.cmo
-       $(OCAMLOPT) $(OCAMLCFLAGS) cset.cmx syntax.cmx table.cmx lexgen.cmx compact.cmx pa_ocamllex.cmx -a -o pa_ocamllex.cmxa
-
-clean:
-       rm -f *.cm* *.$(O) *.$(A) *.bak .*.bak
-
-depend:
-
-.SUFFIXES: .cmx .cmo .cmi .ml .mli
-
-.mli.cmi:
-       $(OCAMLC) $(OCAMLCFLAGS) -c $<
-
-
-.ml.cmo:
-       $(OCAMLC) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-.ml.cmx:
-       $(OCAMLOPT) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
diff --git a/camlp4/unmaintained/ocamllex/README b/camlp4/unmaintained/ocamllex/README
deleted file mode 100644 (file)
index 809d42f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This is an application of or an extension for Camlp4. Although it is
-currently distributed with OCaml/Camlp4, it may or may not be
-actively maintained.
-
-It probably won't be part of future OCaml/Camlp4 distributions but be
-accessible from the Camlp4 hump. If you are interested in developing
-this package further and/or actively maintain it, please let us know
-(caml@inria.fr)
-
-This package is distributed under the same license as the Objective
-Caml Library (that is, LGPL with a special exception allowing both
-static and dynamic link).
-
--- Michel Mauny
-
diff --git a/camlp4/unmaintained/ocamllex/pa_ocamllex.ml b/camlp4/unmaintained/ocamllex/pa_ocamllex.ml
deleted file mode 100644 (file)
index e1d4a8e..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-(* pa_o.cmo q_MLast.cmo pa_extend.cmo pr_dump.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                               Camlp4                                *)
-(*                                                                     *)
-(*     Alain Frisch, projet Cristal, INRIA Rocquencourt                *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file                 *)
-(*   ../../../LICENSE.                                                 *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-open Syntax
-open Lexgen
-open Compact
-
-(* Adapted from output.ml *)
-(**************************)
-
-(* Output the DFA tables and its entry points *)
-
-(* To output an array of short ints, encoded as a string *)
-
-let output_byte buf b =
-  Buffer.add_char buf '\\';
-  Buffer.add_char buf (Char.chr(48 + b / 100));
-  Buffer.add_char buf (Char.chr(48 + (b / 10) mod 10));
-  Buffer.add_char buf (Char.chr(48 + b mod 10))
-
-let loc = (Lexing.dummy_pos,Lexing.dummy_pos)
-
-let output_array v =
-  let b = Buffer.create (Array.length v * 3) in
-  for i = 0 to Array.length v - 1 do
-    output_byte b (v.(i) land 0xFF);
-    output_byte b ((v.(i) asr 8) land 0xFF);
-    if i land 7 = 7 then Buffer.add_string b "\\\n    "
-  done;
-  let s = Buffer.contents b in
-  <:expr< $str:s$ >>
-
-let output_byte_array v =
-  let b = Buffer.create (Array.length v * 2) in
-  for i = 0 to Array.length v - 1 do
-    output_byte b (v.(i) land 0xFF);
-    if i land 15 = 15 then Buffer.add_string b "\\\n    "
-  done;
-  let s = Buffer.contents b in
-  <:expr< $str:s$ >>
-
-
-
-(* Output the tables *)
-
-let output_tables tbl =
-  <:str_item< value lex_tables = {
-    Lexing.lex_base = $output_array tbl.tbl_base$;
-    Lexing.lex_backtrk = $output_array tbl.tbl_backtrk$;
-    Lexing.lex_default = $output_array tbl.tbl_default$;
-    Lexing.lex_trans = $output_array tbl.tbl_trans$;
-    Lexing.lex_check = $output_array tbl.tbl_check$;
-    Lexing.lex_base_code = $output_array tbl.tbl_base_code$;
-    Lexing.lex_backtrk_code = $output_array tbl.tbl_backtrk_code$;
-    Lexing.lex_default_code = $output_array tbl.tbl_default_code$;
-    Lexing.lex_trans_code = $output_array tbl.tbl_trans_code$;
-    Lexing.lex_check_code = $output_array tbl.tbl_check_code$;
-    Lexing.lex_code = $output_byte_array tbl.tbl_code$
-  } >>
-
-(* Output the entries *)
-
-let rec make_alias n = function
-  | [] -> []
-  | h::t -> 
-      (h, "__ocaml_lex_arg_" ^ (string_of_int n)) :: (make_alias (succ n) t)
-
-let abstraction =
-  List.fold_right (fun (p,a) e -> <:expr< fun ($p$ as $lid:a$) -> $e$ >>)
-
-
-let application =
-  List.fold_left (fun f (_,a) -> <:expr< $f$ $lid:a$ >>)
-
-let int i = <:expr< $int:string_of_int i$ >>
-
-let output_memory_actions acts = 
-  let aux = function
-    | Copy (tgt, src) -> 
-       <:expr< lexbuf.Lexing.lex_mem.($int tgt$) := 
-      lexbuf.Lexing.lex_mem.($int src$) >>
-    | Set tgt ->
-        <:expr< lexbuf.Lexing.lex_mem.($int tgt$) := 
-      lexbuf.Lexing.lex_curr_pos >>
-  in
-  <:expr< do { $list:List.map aux acts$ } >>
-
-let output_base_mem = function
-  | Mem i -> <:expr< lexbuf.Lexing.lex_mem.($int i$) >>
-  | Start -> <:expr< lexbuf.Lexing.lex_start_pos >>
-  | End   -> <:expr< lexbuf.Lexing.lex_curr_pos >>
-
-let output_tag_access = function
-  | Sum (a,0) -> output_base_mem a
-  | Sum (a,i) -> <:expr< $output_base_mem a$ + $int i$ >>
-
-let rec output_env e = function
-  | [] -> e
-  | (x, Ident_string (o,nstart,nend)) :: rem ->
-      <:expr< 
-         let $lid:x$ = 
-           Lexing.$lid:if o then "sub_lexeme_opt" else "sub_lexeme"$
-           lexbuf $output_tag_access nstart$ $output_tag_access nend$
-          in $output_env e rem$
-      >>
-  | (x, Ident_char (o,nstart)) :: rem ->
-      <:expr< 
-         let $lid:x$ = 
-           Lexing.$lid: if o then "sub_lexeme_char_opt" else "sub_lexeme_char"$
-           lexbuf $output_tag_access nstart$
-          in $output_env e rem$
-      >>
-
-let output_entry e =
-  let init_num, init_moves = e.auto_initial_state in
-  let args = make_alias 0 (e.auto_args @ [ <:patt< lexbuf >> ]) in
-  let f = "__ocaml_lex_rec_" ^ e.auto_name ^ "_rec" in
-  let call_f = application <:expr< $lid:f$ >> args in
-  let body_wrapper = 
-    <:expr< 
-      do {
-       lexbuf.Lexing.lex_mem := Array.create $int e.auto_mem_size$ (-1) ;
-       $output_memory_actions init_moves$;
-        $call_f$ $int init_num$
-      } >> in
-  let cases = 
-    List.map
-      (fun (num, env, (loc,e)) ->
-         <:patt< $int:string_of_int num$ >>, 
-        None, 
-        output_env <:expr< $e$ >> env
-            (* Note: the <:expr<...>> above is there to set the location *)
-      ) e.auto_actions @
-    [ <:patt< __ocaml_lex_n >>,
-      None,
-      <:expr< do 
-        { lexbuf.Lexing.refill_buff lexbuf; $call_f$ __ocaml_lex_n  }>> ]
-  in
-  let engine = 
-    if e.auto_mem_size = 0 
-    then <:expr< Lexing.engine >>
-    else <:expr< Lexing.new_engine >> in
-  let body = 
-    <:expr< fun state ->
-      match $engine$ lex_tables state lexbuf with [ $list:cases$ ] >> in
-  [
-    <:patt< $lid:e.auto_name$ >>, (abstraction args body_wrapper);
-    <:patt< $lid:f$ >>, (abstraction args body) 
-  ]
-
-(* Main output function *)
-
-exception Table_overflow
-
-let output_lexdef tables entry_points =
-  Printf.eprintf 
-    "pa_ocamllex: lexer found; %d states, %d transitions, table size %d bytes\n"
-    (Array.length tables.tbl_base)
-    (Array.length tables.tbl_trans)
-    (2 * (Array.length tables.tbl_base + Array.length tables.tbl_backtrk +
-          Array.length tables.tbl_default + Array.length tables.tbl_trans +
-          Array.length tables.tbl_check));
-  let size_groups =
-    (2 * (Array.length tables.tbl_base_code +
-          Array.length tables.tbl_backtrk_code +
-          Array.length tables.tbl_default_code +
-          Array.length tables.tbl_trans_code +
-          Array.length tables.tbl_check_code) +
-    Array.length tables.tbl_code) in
-  if  size_groups > 0 then
-    Printf.eprintf "pa_ocamllex: %d additional bytes used for bindings\n" 
-      size_groups ;
-  flush stderr;
-  if Array.length tables.tbl_trans > 0x8000 then raise Table_overflow;
-
-  let entries = List.map output_entry entry_points in
-  [output_tables tables; <:str_item< value rec $list:List.flatten entries$ >> ]
-
-
-(* Adapted from parser.mly and main.ml *)
-(***************************************)
-
-(* Auxiliaries for the parser. *)
-
-let char s = Char.code (Token.eval_char s)
-
-let named_regexps =
-  (Hashtbl.create 13 : (string, regular_expression) Hashtbl.t)
-
-let regexp_for_string s =
-  let rec re_string n =
-    if n >= String.length s then Epsilon
-    else if succ n = String.length s then
-      Characters (Cset.singleton (Char.code s.[n]))
-    else
-      Sequence
-        (Characters(Cset.singleton (Char.code s.[n])),
-         re_string (succ n))
-  in re_string 0
-
-let char_class c1 c2 = Cset.interval c1 c2
-
-let all_chars = Cset.all_chars
-
-let rec remove_as = function
-  | Bind (e,_) -> remove_as e
-  | Epsilon|Eof|Characters _ as e -> e
-  | Sequence (e1, e2) -> Sequence (remove_as e1, remove_as e2)
-  | Alternative (e1, e2) -> Alternative (remove_as e1, remove_as e2)
-  | Repetition e -> Repetition (remove_as e)
-
-let () =
-  Hashtbl.add named_regexps "eof" (Characters Cset.eof)
-
-(* The parser *)
-
-let let_regexp = Grammar.Entry.create Pcaml.gram "pa_ocamllex let"
-let header = Grammar.Entry.create Pcaml.gram "pa_ocamllex header"
-let lexer_def = Grammar.Entry.create Pcaml.gram "pa_ocaml lexerdef"
-
-EXTEND
- GLOBAL: Pcaml.str_item let_regexp header lexer_def;
-
- let_regexp: [
-   [ x = LIDENT; "="; r = regexp ->
-       if Hashtbl.mem named_regexps x then
-         Printf.eprintf 
-           "pa_ocamllex (warning): multiple definition of named regexp '%s'\n"
-           x;
-       Hashtbl.add named_regexps x r;
-   ]
- ];
-
- lexer_def: [
-   [ def = LIST0 definition SEP "and" ->
-       (try
-          let (entries, transitions) = make_dfa def in
-          let tables = compact_tables transitions in
-          let output = output_lexdef tables entries in
-          <:str_item< declare $list: output$ end >> 
-        with 
-         |Table_overflow ->
-             failwith "Transition table overflow in lexer, automaton is too big"
-         | Lexgen.Memory_overflow ->
-              failwith "Position memory overflow in lexer, too many as variables")
-   ]
- ];
-
-
- Pcaml.str_item: [
-   [ "pa_ocamllex"; LIDENT "rule"; d = lexer_def -> d
-   | "pa_ocamllex"; "let"; let_regexp -> 
-       <:str_item< declare $list: []$ end >>
-   ]
- ];
- definition: [
-   [ x=LIDENT; pl = LIST0 Pcaml.patt LEVEL "simple"; "=";
-     short=[ LIDENT "parse" -> false | LIDENT "shortest" -> true ];
-     OPT "|"; l = LIST0 [ r=regexp; a=action -> (r,a) ] SEP "|" ->
-     { name=x ; shortest=short ; args=pl ; clauses = l } ]
- ];
-
- action: [
-   [ "{"; e = OPT Pcaml.expr; "}" -> 
-       let e = match e with
-         | Some e -> e
-         | None -> <:expr< () >>
-       in
-       (loc,e)
-   ]
- ];
-
- header:  [
-   [ "{"; e = LIST0 [ si = Pcaml.str_item; OPT ";;" -> si ]; "}" -> 
-       [<:str_item< declare $list:e$ end>>, loc] ]
-   | [ -> [] ]
- ];
-
- regexp: [
-   [ r = regexp; "as"; i = LIDENT -> Bind (r,i) ]
- | [ r1 = regexp; "|"; r2 = regexp -> Alternative(r1,r2) ]
- | [ r1 = regexp; r2 = regexp -> Sequence(r1,r2) ]
- | [ r = regexp; "*" -> Repetition r
-   | r = regexp; "+" -> Sequence(Repetition (remove_as r), r)
-   | r = regexp; "?" -> Alternative(Epsilon, r)
-   | "("; r = regexp; ")" -> r
-   | "_" -> Characters all_chars
-   | c = CHAR -> Characters (Cset.singleton (char c))
-   | s = STRING -> regexp_for_string (Token.eval_string loc s)
-   | "["; cc = ch_class; "]" ->  Characters cc
-   | x = LIDENT ->
-       try  Hashtbl.find named_regexps x
-       with Not_found ->
-         failwith 
-           ("pa_ocamllex (error): reference to unbound regexp name `"^x^"'")
-   ]
- ];
-
- ch_class: [
-   [ "^"; cc = ch_class -> Cset.complement cc]
- | [ c1 = CHAR; "-"; c2 = CHAR -> Cset.interval (char c1) (char c2)
-   | c = CHAR -> Cset.singleton (char c)
-   | cc1 = ch_class; cc2 = ch_class -> Cset.union cc1 cc2
-   ]
- ];
-END
-
-(* We have to be careful about "rule"; in standalone mode,
-   it is used as a keyword (otherwise, there is a conflict
-   with named regexp); in normal mode, it is used as LIDENT
-   (we do not want to reserve such an useful identifier).
-
-   Plexer does not like identifiers used as keyword _and_
-   as LIDENT ...
-*)
-
-let standalone =
-  let already = ref false in
-  fun () ->
-    if not (!already) then
-    begin
-      already := true;
-      Printf.eprintf "pa_ocamllex: stand-alone mode\n";
-
-      DELETE_RULE Pcaml.str_item: "pa_ocamllex"; LIDENT "rule";lexer_def END;
-      DELETE_RULE Pcaml.str_item: "pa_ocamllex"; "let"; let_regexp END;
-      let ocamllex = Grammar.Entry.create Pcaml.gram "pa_ocamllex" in
-      EXTEND GLOBAL: ocamllex let_regexp header lexer_def;
-      ocamllex: [
-        [ h = header;
-          l  = [LIST0 ["let"; let_regexp]; "rule"; d = lexer_def -> (d,loc)];
-          t = header; EOI -> h @ (l :: t) ,false
-        ]
-      ];
-      END;
-      Pcaml.parse_implem := Grammar.Entry.parse ocamllex
-    end
-
-let () =
-  Pcaml.add_option "-ocamllex" (Arg.Unit standalone)
-    "Activate (standalone) ocamllex emulation mode."
-
diff --git a/camlp4/unmaintained/ocpp/.cvsignore b/camlp4/unmaintained/ocpp/.cvsignore
deleted file mode 100644 (file)
index baef26c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-*.cm[oia]
-ocpp
-crc.ml
diff --git a/camlp4/unmaintained/ocpp/.depend b/camlp4/unmaintained/ocpp/.depend
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/camlp4/unmaintained/ocpp/Makefile b/camlp4/unmaintained/ocpp/Makefile
deleted file mode 100644 (file)
index b92fa3c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-include ../config/Makefile.cnf
-
-EXECUTABLES=ocpp
-OBJS=ocpp.cmo
-INCLUDES=-I ../camlp4 -I ../lib -I ../odyl -I $(OTOP)/otherlibs/dynlink
-OCPPM=../lib/debug.cmo ../lib/loc.cmo ../lib/stdpp.cmo ../camlp4/quotation.cmo
-
-include ../config/Makefile.base
-
-ocpp$(EXE): $(OBJS)
-       $(OCAMLC) $(LINKFLAGS) $(OCPPM) ../odyl/odyl.cma $(OBJS) ../odyl/odyl.cmo -linkall -o $@
-
-ocpp.opt: $(OBJSX)
-       $(OCAMLOPT) $(LINKFLAGS) $(OCPPM:.cmo=.cmx) ../odyl/odyl.cmxa $(OBJSX) ../odyl/odyl.cmx -linkall -o $@
-
-install-local:
-       -$(MKDIR) "$(LIBDIR)/camlp4" "$(BINDIR)"
-       cp $(OBJS) "$(LIBDIR)/camlp4/."
-       cp ocpp$(EXE) "$(BINDIR)/."
-       if test -f ocpp.opt ; then \
-         cp ocpp.opt "$(LIBDIR)/camlp4/." ; \
-       fi
diff --git a/camlp4/unmaintained/ocpp/ocpp.ml b/camlp4/unmaintained/ocpp/ocpp.ml
deleted file mode 100644 (file)
index eb2ccdf..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-(* camlp4r *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-
-value buff = ref (String.create 80);
-value store len x =
-  do {
-    if len >= String.length buff.val then
-      buff.val := buff.val ^ String.create (String.length buff.val)
-    else ();
-    buff.val.[len] := x;
-    succ len
-  }
-;
-value get_buff len = String.sub buff.val 0 len;
-
-value rec copy_strip_locate cs =
-  match cs with parser
-  [ [: `'$' :] -> maybe_locate cs
-  | [: `c :] -> do { print_char c; copy_strip_locate cs }
-  | [: :] -> () ]
-and maybe_locate cs =
-  match cs with parser
-  [ [: `'1'..'9' :] -> locate cs
-  | [: :] -> do { print_char '$'; copy_strip_locate cs } ]
-and locate cs =
-  match cs with parser
-  [ [: `'0'..'9' :] -> locate cs
-  | [: `':' :] -> inside_locate cs
-  | [: :] -> raise (Stream.Error "colon char expected") ]
-and inside_locate cs =
-  match cs with parser
-  [ [: `'$' :] -> copy_strip_locate cs
-  | [: `'\\'; `c :] -> do { print_char c; inside_locate cs }
-  | [: `c :] -> do { print_char c; inside_locate cs }
-  | [: :] -> raise (Stream.Error "end of file in locate directive") ]
-;
-
-value file = ref "";
-
-value quot name loc str =
-  let loc = Loc.move `stop (String.length str) loc in
-  let exp =
-    try
-      match Quotation.find name with
-      [ Quotation.ExStr f -> f
-      | _ -> raise Not_found ]
-    with
-    [ Not_found -> Stdpp.raise_with_loc loc Not_found ]
-  in
-  let new_str =
-    try exp True { Quotation.loc = Loc.mk file.val ; loc_name_opt = None } str with
-    [ Loc.Exc_located loc exc -> Stdpp.raise_with_loc loc exc
-    | exc -> Stdpp.raise_with_loc loc exc ]
-  in
-  let cs = Stream.of_string new_str in copy_strip_locate cs
-;
-
-value rec ident len =
-  parser
-  [ [: `('A'..'Z' | 'a'..'z' | '0'..'9' | '_' | ''' as c); s :] ->
-      ident (store len c) s
-  | [: :] -> get_buff len ]
-;
-
-value loc_of_ep ep =
-  Loc.set_all `start 1 0 ep (Loc.mk file.val);
-
-value rec copy cs =
-  match cs with parser
-  [ [: `'<' :] -> maybe_quot cs
-  | [: `'"' :] -> do { print_char '"'; inside_string cs }
-  | [: `c :] -> do { print_char c; copy cs }
-  | [: :] -> () ]
-and maybe_quot cs =
-  match cs with parser
-  [ [: `'<' :] ep -> inside_quot "" (loc_of_ep ep) 0 cs
-  | [: `':'; i = ident 0; `'<' ?? "less char expected" :] ep ->
-      inside_quot i (loc_of_ep ep) 0 cs
-  | [: :] -> do { print_char '<'; copy cs } ]
-and inside_quot name loc len cs =
-  match cs with parser
-  [ [: `'>' :] -> maybe_end_quot name loc len cs
-  | [: `c :] -> inside_quot name loc (store len c) cs
-  | [: :] -> raise (Stream.Error "end of file in quotation") ]
-and maybe_end_quot name loc len cs =
-  match cs with parser
-  [ [: `'>' :] -> do { quot name loc (get_buff len); copy cs }
-  | [: :] -> inside_quot name loc (store len '>') cs ]
-and inside_string cs =
-  match cs with parser
-  [ [: `'"' :] -> do { print_char '"'; copy cs }
-  | [: `c :] -> do { print_char c; inside_string cs }
-  | [: :] -> raise (Stream.Error "end of file in string") ]
-;
-
-value copy_quot cs = do { copy cs; flush stdout; };
-
-Arg.parse [] (fun x -> file.val := x) "ocpp <objects> <file>";
-
-value main () =
-  try
-    if file.val <> "" then
-      copy_quot (Stream.of_channel (open_in_bin file.val))
-    else ()
-  with exc ->
-    do {
-      Format.printf "@.";
-      raise
-        (match exc with
-         [ Loc.Exc_located loc exc ->
-           do { Format.eprintf "%a@." Loc.print loc; exc }
-         | exc -> exc ])
-    }
-;
-
-Odyl_main.name.val := "ocpp";
-Odyl_main.go.val := main;
diff --git a/camlp4/unmaintained/odyl/.cvsignore b/camlp4/unmaintained/odyl/.cvsignore
deleted file mode 100644 (file)
index 8ae0ebb..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-*.cm[oia]
-odyl
-*.lib
-odyl_config.ml
diff --git a/camlp4/unmaintained/odyl/.depend b/camlp4/unmaintained/odyl/.depend
deleted file mode 100644 (file)
index a262944..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-odyl.cmo: odyl_main.cmi odyl_config.cmo 
-odyl.cmx: odyl_main.cmx odyl_config.cmx 
-odyl_main.cmo: odyl_config.cmo odyl_main.cmi 
-odyl_main.cmx: odyl_config.cmx odyl_main.cmi 
diff --git a/camlp4/unmaintained/odyl/Makefile b/camlp4/unmaintained/odyl/Makefile
deleted file mode 100644 (file)
index f4f5d87..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-include ../config/Makefile.cnf
-
-EXECUTABLES=odyl
-INCLUDES=-I $(OTOP)/otherlibs/dynlink
-OBJS=odyl_config.cmo odyl_main.cmo
-OBJSX=odyl.cmx odyl.cmxa
-CLEANFILES=odyl_config.ml
-
-include ../config/Makefile.base
-
-odyl$(EXE): odyl.cma odyl.cmo
-       $(OCAMLC) odyl.cma odyl.cmo -o $@
-
-odyl.opt: odyl.cmxa odyl.cmx
-       $(OCAMLOPT) odyl.cmxa odyl.cmx -o $@
-
-odyl.cma: $(OBJS)
-       $(OCAMLC) $(LINKFLAGS) dynlink.cma $(OBJS) -a -o $@
-
-odyl.cmxa: $(OBJSX)
-       $(OCAMLOPT) $(LINKFLAGS) $(OBJSX) -a -o $@
-
-odyl.p.cmxa: $(OBJSP)
-       $(OCAMLOPT) $(LINKFLAGS) $(OBJSP) -a -o $@
-
-odyl_main.cmx: odyl_main.ml
-       $(CAMLP4BOOT) -nolib -DOPT -o odyl_main.ppo odyl_main.ml
-       $(OCAMLOPT) -c -impl odyl_main.ppo
-       rm -f odyl_main.ppo
-
-odyl_main.p.cmx: odyl_main.ml
-       $(CAMLP4BOOT) -nolib -DOPT -o odyl_main.ppo odyl_main.ml
-       $(OCAMLOPT) -p -c -o $@ -impl odyl_main.ppo
-       rm -f odyl_main.ppo
-
-odyl_config.ml:
-       (echo '(* camlp4r *)'; \
-        echo 'value standard_library ='; \
-        echo '  try Sys.getenv "CAMLP4LIB" with [ Not_found -> '; \
-        echo '  try Sys.getenv "OCAMLLIB" ^ "/camlp4" with [ Not_found -> '; \
-        echo '  try Sys.getenv "CAMLLIB" ^ "/camlp4" with [ Not_found -> '; \
-         echo '  "$(LIBDIR)/camlp4"]]];') \
-        | sed -e 's|\\|/|g' > odyl_config.ml
-
-install-local:
-       -$(MKDIR) "$(LIBDIR)/camlp4" "$(BINDIR)"
-       cp odyl.cmo odyl.cma odyl_main.cmi $(LIBDIR)/camlp4/.
-       for f in odyl.$(A) odyl.p.$(A)  ; do \
-          if test -f $$f ; then \
-               cp $$f "$(LIBDIR)/camlp4/."  && ( cd "$(LIBDIR)/camlp4/." && $(RANLIB) $$f ) ; \
-          fi ; \
-       done
-       for f in odyl.cmx odyl.o odyl.p.cmx odyl.p.o odyl.cmxa odyl.p.cmxa ; do \
-           if test -f $$f ; then \
-              cp $$f "$(LIBDIR)/camlp4/." ; \
-           fi ; \
-       done
-
-include .depend
diff --git a/camlp4/unmaintained/odyl/odyl.ml b/camlp4/unmaintained/odyl/odyl.ml
deleted file mode 100644 (file)
index 23b7136..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-(* camlp4r *)
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 2001 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-value apply_load () =
-  let i = ref 1 in
-  let stop = ref False in
-  while not stop.val && i.val < Array.length Sys.argv do {
-    let s = Sys.argv.(i.val) in
-    if s = "-I" && i.val + 1 < Array.length Sys.argv then do {
-      Odyl_main.directory Sys.argv.(i.val + 1);
-      i.val := i.val + 2
-    }
-    else if s = "-nolib" then do { Odyl_main.nolib.val := True; incr i }
-    else if s = "-where" then do {
-      print_string Odyl_config.standard_library;
-      print_newline ();
-      flush stdout;
-      exit 0
-    }
-    else if s = "-version" then do {
-      print_string Sys.ocaml_version;
-      print_newline ();
-      flush stdout;
-      exit 0
-    }
-    else if s = "--" then do { incr i; stop.val := True; () }
-    else if String.length s > 0 && s.[0] == '-' then stop.val := True
-    else if Filename.check_suffix s ".cmo" || Filename.check_suffix s ".cma"
-    then do { Odyl_main.loadfile s; incr i }
-    else stop.val := True
-  }
-;
-
-value main () =
-  try do { apply_load () ; Odyl_main.go.val () } with
-  [ Odyl_main.Error fname str ->
-      do {
-        flush stdout;
-        Printf.eprintf "Error while loading \"%s\": " fname;
-        Printf.eprintf "%s.\n" str;
-        flush stderr;
-        exit 2
-      } ]
-;
-
-Printexc.catch main ();
diff --git a/camlp4/unmaintained/odyl/odyl_main.mli b/camlp4/unmaintained/odyl/odyl_main.mli
deleted file mode 100644 (file)
index 122c933..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-(* camlp4r *)
-
-
-exception Error of string and string;
-
-value nolib : ref bool;
-value initialized : ref bool;
-value path : ref (list string);
-value loadfile : string -> unit;
-value directory : string -> unit;
-
-value go : ref (unit -> unit);
-value name : ref string;
diff --git a/camlp4/unmaintained/olabl/.depend b/camlp4/unmaintained/olabl/.depend
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/camlp4/unmaintained/olabl/Makefile b/camlp4/unmaintained/olabl/Makefile
deleted file mode 100644 (file)
index f928d45..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#########################################################################
-#                                                                       #
-#                            Objective Caml                             #
-#                                                                       #
-#                                Camlp4                                 #
-#                                                                       #
-#   Copyright 2004 Institut National de Recherche en Informatique et    #
-#   en Automatique.  All rights reserved.  This file is distributed     #
-#   under the terms of the Q Public License version 1.0.                #
-#                                                                       #
-#########################################################################
-#
-# Makefile for pa_lefteval
-# M.Mauny
-#
-
-include ../../config/Makefile.cnf
-
-OCAMLTOP=../../..
-CAMLP4=../../camlp4/camlp4$(EXE)
-
-OCAMLC=$(OCAMLTOP)/ocamlc$(EXE)
-OCAMLOPT=$(OCAMLTOP)/ocamlopt$(EXE)
-
-P4INCLUDES= -nolib -I ../../meta -I ../../lib -I ../../etc
-OCAMLINCLUDES= -nostdlib -I $(OCAMLTOP)/stdlib -I ../../lib -I ../../camlp4
-OCAMLCFLAGS=-warn-error A $(OCAMLINCLUDES)
-
-SRC=pa_olabl.ml
-OBJS=$(SRC:.ml=.cmo)
-OBJSX=$(SRC:.ml=.cmx)
-
-all: $(OBJS)
-
-opt: $(OBJSX)
-
-depend:
-       cp .depend .depend.bak
-       > .depend
-       for file in $(SRC); do \
-         $(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $$file` pr_depend.cmo $$i | \
-         sed -e 's| \.\./\.\./\.\.| $$(OCAMLTOP)|g' >> .depend; \
-       done
-
-clean:
-       rm -f *.cm* *.$(O) *.bak .*.bak
-
-
-.SUFFIXES: .cmx .cmo .cmi .ml .mli
-
-.mli.cmi:
-       $(OCAMLC) $(OCAMLCFLAGS) -c $<
-
-
-.ml.cmo:
-       $(OCAMLC) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-.ml.cmx:
-       $(OCAMLOPT) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-include .depend
diff --git a/camlp4/unmaintained/olabl/README b/camlp4/unmaintained/olabl/README
deleted file mode 100644 (file)
index 809d42f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This is an application of or an extension for Camlp4. Although it is
-currently distributed with OCaml/Camlp4, it may or may not be
-actively maintained.
-
-It probably won't be part of future OCaml/Camlp4 distributions but be
-accessible from the Camlp4 hump. If you are interested in developing
-this package further and/or actively maintain it, please let us know
-(caml@inria.fr)
-
-This package is distributed under the same license as the Objective
-Caml Library (that is, LGPL with a special exception allowing both
-static and dynamic link).
-
--- Michel Mauny
-
diff --git a/camlp4/unmaintained/olabl/pa_olabl.ml b/camlp4/unmaintained/olabl/pa_olabl.ml
deleted file mode 100644 (file)
index 285902a..0000000
+++ /dev/null
@@ -1,2022 +0,0 @@
-(* pa_r.cmo pa_rp.cmo pa_extend.cmo q_MLast.cmo pr_dump.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                               Camlp4                                *)
-(*                                                                     *)
-(*    Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file                 *)
-(*   ../../../LICENSE.                                                 *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-module Plexer =
-  struct
-    open Stdpp;
-    open Token;
-    value buff = ref (String.create 80);
-    value store len x =
-      do {
-        if len >= String.length buff.val then
-          buff.val := buff.val ^ String.create (String.length buff.val)
-        else ();
-        buff.val.[len] := x;
-        succ len
-      }
-    ;
-    value mstore len s =
-      add_rec len 0 where rec add_rec len i =
-        if i == String.length s then len
-        else add_rec (store len s.[i]) (succ i)
-    ;
-    value get_buff len = String.sub buff.val 0 len;
-    value rec ident len =
-      parser
-      [ [: `('A'..'Z' | 'a'..'z' | '\192'..'\214' | '\216'..'\246' |
-             '\248'..'\255' | '0'..'9' | '_' | ''' as
-             c)
-            ;
-           s :] ->
-          ident (store len c) s
-      | [: :] -> len ]
-    and ident2 len =
-      parser
-      [ [: `('!' | '?' | '~' | '=' | '@' | '^' | '&' | '+' | '-' | '*' | '/' |
-             '%' | '.' | ':' | '<' | '>' | '|' as
-             c)
-            ;
-           s :] ->
-          ident2 (store len c) s
-      | [: :] -> len ]
-    and ident3 len =
-      parser
-      [ [: `('0'..'9' | 'A'..'Z' | 'a'..'z' | '\192'..'\214' |
-             '\216'..'\246' | '\248'..'\255' | '_' | '!' | '%' | '&' | '*' |
-             '+' | '-' | '.' | '/' | ':' | '<' | '=' | '>' | '?' | '@' | '^' |
-             '|' | '~' | ''' | '$' as
-             c)
-            ;
-           s :] ->
-          ident3 (store len c) s
-      | [: :] -> len ]
-    and ident4 len =
-      parser
-      [ [: `('!' | '?' | '~' | '=' | '@' | '^' | '&' | '+' | '-' | '*' | '/' |
-             '%' | '.' | '<' | '>' | '|' as
-             c)
-            ;
-           s :] ->
-          ident4 (store len c) s
-      | [: :] -> len ]
-    and base_number len =
-      parser
-      [ [: `'o' | 'O'; s :] -> octal_digits (store len 'o') s
-      | [: `'x' | 'X'; s :] -> hexa_digits (store len 'x') s
-      | [: `'b' | 'B'; s :] -> binary_digits (store len 'b') s
-      | [: a = number len :] -> a ]
-    and octal_digits len =
-      parser
-      [ [: `('0'..'7' as d); s :] -> octal_digits (store len d) s
-      | [: :] -> ("INT", get_buff len) ]
-    and hexa_digits len =
-      parser
-      [ [: `('0'..'9' | 'a'..'f' | 'A'..'F' as d); s :] ->
-          hexa_digits (store len d) s
-      | [: :] -> ("INT", get_buff len) ]
-    and binary_digits len =
-      parser
-      [ [: `('0'..'1' as d); s :] -> binary_digits (store len d) s
-      | [: :] -> ("INT", get_buff len) ]
-    and number len =
-      parser
-      [ [: `('0'..'9' as c); s :] -> number (store len c) s
-      | [: `'.'; s :] -> decimal_part (store len '.') s
-      | [: `'e' | 'E'; s :] -> exponent_part (store len 'E') s
-      | [: :] -> ("INT", get_buff len) ]
-    and decimal_part len =
-      parser
-      [ [: `('0'..'9' as c); s :] -> decimal_part (store len c) s
-      | [: `'e' | 'E'; s :] -> exponent_part (store len 'E') s
-      | [: :] -> ("FLOAT", get_buff len) ]
-    and exponent_part len =
-      parser
-      [ [: `('+' | '-' as c); s :] -> end_exponent_part (store len c) s
-      | [: a = end_exponent_part len :] -> a ]
-    and end_exponent_part len =
-      parser
-      [ [: `('0'..'9' as c); s :] -> end_exponent_part (store len c) s
-      | [: :] -> ("FLOAT", get_buff len) ]
-    ;
-    value valch x = Char.code x - Char.code '0';
-    value rec backslash s i =
-      if i = String.length s then raise Not_found
-      else
-        match s.[i] with
-        [ 'n' -> ('\n', i + 1)
-        | 'r' -> ('\r', i + 1)
-        | 't' -> ('\t', i + 1)
-        | 'b' -> ('\b', i + 1)
-        | '\\' -> ('\\', i + 1)
-        | '0'..'9' as c -> backslash1 (valch c) s (i + 1)
-        | _ -> raise Not_found ]
-    and backslash1 cod s i =
-      if i = String.length s then (Char.chr cod, i)
-      else
-        match s.[i] with
-        [ '0'..'9' as c -> backslash2 (10 * cod + valch c) s (i + 1)
-        | _ -> (Char.chr cod, i) ]
-    and backslash2 cod s i =
-      if i = String.length s then (Char.chr cod, i)
-      else
-        match s.[i] with
-        [ '0'..'9' as c -> (Char.chr (10 * cod + valch c), i + 1)
-        | _ -> (Char.chr cod, i) ]
-    ;
-    value rec skip_indent s i =
-      if i = String.length s then i
-      else
-        match s.[i] with
-        [ ' ' | '\t' -> skip_indent s (i + 1)
-        | _ -> i ]
-    ;
-    value skip_opt_linefeed s i =
-      if i = String.length s then i else if s.[i] = '\010' then i + 1 else i
-    ;
-    value char_of_char_token s =
-      if String.length s = 1 then s.[0]
-      else if String.length s = 0 then failwith "invalid char token"
-      else if s.[0] = '\\' then
-        if String.length s = 2 && s.[1] = ''' then '''
-        else
-          try
-            let (c, i) = backslash s 1 in
-            if i = String.length s then c else raise Not_found
-          with
-          [ Not_found -> failwith "invalid char token" ]
-      else failwith "invalid char token"
-    ;
-    value string_of_string_token s =
-      loop 0 0 where rec loop len i =
-        if i = String.length s then get_buff len
-        else
-          let (len, i) =
-            if s.[i] = '\\' then
-              let i = i + 1 in
-              if i = String.length s then failwith "invalid string token"
-              else if s.[i] = '"' then (store len '"', i + 1)
-              else
-                match s.[i] with
-                [ '\010' -> (len, skip_indent s (i + 1))
-                | '\013' -> (len, skip_indent s (skip_opt_linefeed s (i + 1)))
-                | c ->
-                    try
-                      let (c, i) = backslash s i in
-                      (store len c, i)
-                    with
-                    [ Not_found -> (store (store len '\\') c, i + 1) ] ]
-            else (store len s.[i], i + 1)
-          in
-          loop len i
-    ;
-    value rec skip_spaces =
-      parser
-      [ [: `' ' | '\n' | '\r' | '\t' | '\026' | '\012'; s :] -> skip_spaces s
-      | [: :] -> () ]
-    ;
-    value error_on_unknown_keywords = ref False;
-    value next_token_fun find_id_kwd find_spe_kwd fname lnum bolpos =
-      let make_pos p =
-        {Lexing.pos_fname = fname.val; Lexing.pos_lnum = lnum.val;
-         Lexing.pos_bol = bolpos.val; Lexing.pos_cnum = p} in
-      let mkloc (bp, ep) = (make_pos bp, make_pos ep) in
-
-      let err loc msg = raise_with_loc loc (Token.Error msg) in
-      let keyword_or_error (bp,ep) s =
-        try ("", find_spe_kwd s) with
-        [ Not_found ->
-            if error_on_unknown_keywords.val then
-              err (mkloc (bp, ep)) ("illegal token: " ^ s)
-            else ("", s) ]
-      in
-      let rec next_token =
-        parser bp
-        [ [: `('A'..'Z' | 'À'..'Ö' | 'Ø'..'Þ' as c); s :] ->
-            let id = get_buff (ident (store 0 c) s) in
-            try ("", find_id_kwd id) with [ Not_found -> ("UIDENT", id) ]
-        | [: `('a'..'z' | 'ß'..'ö' | 'ø'..'ÿ' | '_' as c); s :] ->
-            let id = get_buff (ident (store 0 c) s) in
-            let is_label =
-              match Stream.peek s with
-              [ Some ':' ->
-                  match Stream.npeek 2 s with
-                  [ [_; ':' | '=' | '>'] -> False
-                  | _ -> True ]
-              | _ -> False ]
-            in
-            if is_label then do { Stream.junk s; ("LABEL", id) }
-            else try ("", find_id_kwd id) with [ Not_found -> ("LIDENT", id) ]
-        | [: `('1'..'9' as c); s :] -> number (store 0 c) s
-        | [: `'0'; s :] -> base_number (store 0 '0') s
-        | [: `'''; s :] ep ->
-            match Stream.npeek 2 s with
-            [ [_; '''] | ['\\'; _] -> ("CHAR", char bp 0 s)
-            | _ -> keyword_or_error (bp, ep) "'" ]
-        | [: `'"'; s :] -> ("STRING", string bp 0 s)
-        | [: `'$'; s :] -> locate_or_antiquot bp 0 s
-        | [: `('!' | '~' | '=' | '@' | '^' | '&' | '+' | '-' | '*' | '/' |
-               '%' as
-               c)
-              ;
-             s :] ->
-            let id = get_buff (ident2 (store 0 c) s) in
-            keyword_or_error (bp, Stream.count s) id
-        | [: `('?' as c); s :] ->
-            let id = get_buff (ident4 (store 0 c) s) in
-            keyword_or_error (bp, Stream.count s) id
-        | [: `'<'; s :] -> less bp s
-        | [: `(':' as c1);
-             (is_label, len) =
-               parser
-               [ [: `(']' | ':' | '=' | '>' as c2) :] ->
-                   (False, store (store 0 c1) c2)
-               | [: `('a'..'z' | 'ß'..'ö' | 'ø'..'ÿ' | '_' as c); s :] ->
-                   (True, ident (store 0 c) s)
-               | [: :] -> (False, store 0 c1) ] :] ep ->
-            let id = get_buff len in
-            if is_label then ("ELABEL", id) else keyword_or_error (bp, ep) id
-        | [: `('>' | '|' as c1);
-             len =
-               parser
-               [ [: `(']' | '}' as c2) :] -> store (store 0 c1) c2
-               | [: a = ident2 (store 0 c1) :] -> a ] :] ep ->
-            let id = get_buff len in
-            keyword_or_error (bp, ep) id
-        | [: `('[' | '{' as c1); s :] ->
-            let len =
-              match Stream.npeek 2 s with
-              [ ['<'; '<' | ':'] -> store 0 c1
-              | _ ->
-                  match s with parser
-                  [ [: `('|' | '<' | ':' as c2) :] -> store (store 0 c1) c2
-                  | [: :] -> store 0 c1 ] ]
-            in
-            let ep = Stream.count s in
-            let id = get_buff len in
-            keyword_or_error (bp, ep) id
-        | [: `'.'; id = parser [ [: `'.' :] -> ".." | [: :] -> "." ] :] ep ->
-            keyword_or_error (bp, ep) id
-        | [: `';'; id = parser [ [: `';' :] -> ";;" | [: :] -> ";" ] :] ep ->
-            keyword_or_error (bp, ep) id
-        | [: `'\\'; s :] -> ("LIDENT", get_buff (ident3 0 s))
-        | [: `c :] ep -> keyword_or_error (bp, ep) (String.make 1 c) ]
-      and less bp =
-        parser
-        [ [: `'<'; s :] -> ("QUOTATION", ":" ^ get_buff (quotation bp 0 s))
-        | [: `':'; i = parser [: len = ident 0 :] -> get_buff len;
-             `'<' ? "character '<' expected"; s :] ->
-            ("QUOTATION", i ^ ":" ^ get_buff (quotation bp 0 s))
-        | [: s :] ep ->
-            let id = get_buff (ident2 (store 0 '<') s) in
-            keyword_or_error (bp, ep) id ]
-      and string bp len =
-        parser
-        [ [: `'"' :] -> get_buff len
-        | [: `'\\'; `c; s :] -> string bp (store (store len '\\') c) s
-        | [: `c; s :] -> string bp (store len c) s
-        | [: :] ep -> err (mkloc (bp, ep)) "string not terminated" ]
-      and char bp len =
-        parser
-        [ [: `'''; s :] ->
-            if len = 0 then char bp (store len ''') s else get_buff len
-        | [: `'\\'; `c; s :] -> char bp (store (store len '\\') c) s
-        | [: `c; s :] -> char bp (store len c) s
-        | [: :] ep -> err (mkloc(bp,ep)) "char not terminated" ]
-      and locate_or_antiquot bp len =
-        parser
-        [ [: `'$' :] -> ("ANTIQUOT", ":" ^ get_buff len)
-        | [: `('a'..'z' | 'A'..'Z' as c); s :] -> antiquot bp (store len c) s
-        | [: `('0'..'9' as c); s :] -> maybe_locate bp (store len c) s
-        | [: `':'; s :] ->
-            let k = get_buff len in
-            ("ANTIQUOT", k ^ ":" ^ locate_or_antiquot_rest bp 0 s)
-        | [: `'\\'; `c; s :] ->
-            ("ANTIQUOT", ":" ^ locate_or_antiquot_rest bp (store len c) s)
-        | [: `c; s :] ->
-            ("ANTIQUOT", ":" ^ locate_or_antiquot_rest bp (store len c) s)
-        | [: :] ep -> err (mkloc(bp,ep)) "antiquotation not terminated" ]
-      and maybe_locate bp len =
-        parser
-        [ [: `'$' :] -> ("ANTIQUOT", ":" ^ get_buff len)
-        | [: `('0'..'9' as c); s :] -> maybe_locate bp (store len c) s
-        | [: `':'; s :] ->
-            ("LOCATE", get_buff len ^ ":" ^ locate_or_antiquot_rest bp 0 s)
-        | [: `'\\'; `c; s :] ->
-            ("ANTIQUOT", ":" ^ locate_or_antiquot_rest bp (store len c) s)
-        | [: `c; s :] ->
-            ("ANTIQUOT", ":" ^ locate_or_antiquot_rest bp (store len c) s)
-        | [: :] ep -> err (mkloc(bp,ep)) "antiquotation not terminated" ]
-      and antiquot bp len =
-        parser
-        [ [: `'$' :] -> ("ANTIQUOT", ":" ^ get_buff len)
-        | [: `('a'..'z' | 'A'..'Z' | '0'..'9' as c); s :] ->
-            antiquot bp (store len c) s
-        | [: `':'; s :] ->
-            let k = get_buff len in
-            ("ANTIQUOT", k ^ ":" ^ locate_or_antiquot_rest bp 0 s)
-        | [: `'\\'; `c; s :] ->
-            ("ANTIQUOT", ":" ^ locate_or_antiquot_rest bp (store len c) s)
-        | [: `c; s :] ->
-            ("ANTIQUOT", ":" ^ locate_or_antiquot_rest bp (store len c) s)
-        | [: :] ep -> err (mkloc(bp,ep)) "antiquotation not terminated" ]
-      and locate_or_antiquot_rest bp len =
-        parser
-        [ [: `'$' :] -> get_buff len
-        | [: `'\\'; `c; s :] -> locate_or_antiquot_rest bp (store len c) s
-        | [: `c; s :] -> locate_or_antiquot_rest bp (store len c) s
-        | [: :] ep -> err (mkloc(bp,ep)) "antiquotation not terminated" ]
-      and quotation bp len =
-        parser
-        [ [: `'>'; s :] -> maybe_end_quotation bp len s
-        | [: `'<'; s :] ->
-            quotation bp (maybe_nested_quotation bp (store len '<') __strm) s
-        | [: `'\\';
-             len =
-               parser
-               [ [: `('>' | '<' | '\\' as c) :] -> store len c
-               | [: :] -> store len '\\' ];
-             s :] ->
-            quotation bp len s
-        | [: `c; s :] -> quotation bp (store len c) s
-        | [: :] ep -> err (mkloc(bp,ep)) "quotation not terminated" ]
-      and maybe_nested_quotation bp len =
-        parser
-        [ [: `'<'; s :] -> mstore (quotation bp (store len '<') s) ">>"
-        | [: `':'; len = ident (store len ':');
-             a =
-               parser
-               [ [: `'<'; s :] -> mstore (quotation bp (store len '<') s) ">>"
-               | [: :] -> len ] :] ->
-            a
-        | [: :] -> len ]
-      and maybe_end_quotation bp len =
-        parser
-        [ [: `'>' :] -> len
-        | [: a = quotation bp (store len '>') :] -> a ]
-      in
-      let rec next_token_loc =
-        parser bp
-        [ [: `' ' | '\n' | '\r' | '\t' | '\026' | '\012'; s :] ->
-            next_token_loc s
-        | [: `'('; s :] -> maybe_comment bp s
-        | [: `'#'; _ = spaces_tabs; a = linenum bp :] -> a
-        | [: tok = next_token :] ep -> (tok, mkloc(bp, ep))
-        | [: _ = Stream.empty :] -> (("EOI", ""), mkloc(bp, succ bp)) ]
-      and maybe_comment bp =
-        parser
-        [ [: `'*'; s :] -> do { comment bp s; next_token_loc s }
-        | [: :] ep ->
-            let tok = keyword_or_error (bp, ep) "(" in
-            (tok, mkloc(bp, ep)) ]
-      and comment bp =
-        parser
-        [ [: `'('; s :] -> maybe_nested_comment bp s
-        | [: `'*'; s :] -> maybe_end_comment bp s
-        | [: `c; s :] -> comment bp s
-        | [: :] ep -> err (mkloc(bp,ep)) "comment not terminated" ]
-      and maybe_nested_comment bp =
-        parser
-        [ [: `'*'; s :] -> do { comment bp s; comment bp s }
-        | [: a = comment bp :] -> a ]
-      and maybe_end_comment bp =
-        parser [ [: `')' :] -> () | [: a = comment bp :] -> a ]
-      and linenum bp =
-        parser
-        [ [: `'0'..'9'; _ = digits; _ = spaces_tabs; `'"'; _ = any_to_nl;
-             s :] ->
-            next_token_loc s
-        | [: :] -> (keyword_or_error (bp, bp + 1) "#", mkloc(bp, bp + 1)) ]
-      and spaces_tabs =
-        parser [ [: `' ' | '\t'; s :] -> spaces_tabs s | [: :] -> () ]
-      and digits = parser [ [: `'0'..'9'; s :] -> digits s | [: :] -> () ]
-      and any_to_nl =
-        parser
-        [ [: `'\r' | '\n' :] -> ()
-        | [: `_; s :] -> any_to_nl s
-        | [: :] -> () ]
-      in
-      fun cstrm ->
-        try next_token_loc cstrm with
-        [ Stream.Error str ->
-            err (mkloc(Stream.count cstrm, Stream.count cstrm + 1)) str ]
-    ;
-    value locerr () = invalid_arg "Lexer: location function";
-    value loct_create () = ref (Array.create 1024 None);
-    value loct_func loct i =
-      match
-        if i < 0 || i >= Array.length loct.val then None
-        else Array.unsafe_get loct.val i
-      with
-      [ Some loc -> loc
-      | _ -> locerr () ]
-    ;
-    value loct_add loct i loc =
-      do {
-        if i >= Array.length loct.val then do {
-          let new_tmax = Array.length loct.val * 2 in
-          let new_loct = Array.create new_tmax None in
-          Array.blit loct.val 0 new_loct 0 (Array.length loct.val);
-          loct.val := new_loct
-        }
-        else ();
-        loct.val.(i) := Some loc
-      }
-    ;
-    value func kwd_table =
-      let bolpos = ref 0 in
-      let lnum = ref 0 in
-      let fname = ref "" in
-      let find = Hashtbl.find kwd_table in
-      let lex cstrm =
-        let next_token_loc = next_token_fun find find fname lnum bolpos in
-        let loct = loct_create () in
-        let ts =
-          Stream.from
-            (fun i ->
-               let (tok, loc) = next_token_loc cstrm in
-               do { loct_add loct i loc; Some tok })
-        in
-        let locf = loct_func loct in
-        (ts, locf)
-      in
-      lex
-    ;
-    value rec check_keyword_stream =
-      parser [: _ = check; _ = Stream.empty :] -> True
-    and check =
-      parser
-      [ [: `'A'..'Z' | 'a'..'z' | 'À'..'Ö' | 'Ø'..'ö' | 'ø'..'ÿ'; s :] ->
-          check_ident s
-      | [: `'!' | '?' | '~' | '=' | '@' | '^' | '&' | '+' | '-' | '*' | '/' |
-            '%' | '.'
-            ;
-           s :] ->
-          check_ident2 s
-      | [: `'<'; s :] ->
-          match Stream.npeek 1 s with
-          [ [':' | '<'] -> ()
-          | _ -> check_ident2 s ]
-      | [: `':';
-           _ =
-             parser
-             [ [: `']' | ':' | '=' | '>' :] -> ()
-             | [: :] -> () ] :] ep ->
-          ()
-      | [: `'>' | '|';
-           _ =
-             parser
-             [ [: `']' | '}' :] -> ()
-             | [: a = check_ident2 :] -> a ] :] ->
-          ()
-      | [: `'[' | '{'; s :] ->
-          match Stream.npeek 2 s with
-          [ ['<'; '<' | ':'] -> ()
-          | _ ->
-              match s with parser
-              [ [: :] ->
-                  match Stream.peek __strm with
-                  [ Some ('|' | '<' | ':') -> Stream.junk __strm
-                  | _ -> () ] ] ]
-      | [: `';'; _ = parser [ [: `';' :] -> () | [: :] -> () ] :] -> ()
-      | [: `_ :] -> () ]
-    and check_ident =
-      parser
-      [ [: `'A'..'Z' | 'a'..'z' | 'À'..'Ö' | 'Ø'..'ö' | 'ø'..'ÿ' | '0'..'9' |
-            '_' | '''
-            ;
-           s :] ->
-          check_ident s
-      | [: :] -> () ]
-    and check_ident2 =
-      parser
-      [ [: `'!' | '?' | '~' | '=' | '@' | '^' | '&' | '+' | '-' | '*' | '/' |
-            '%' | '.' | ':' | '<' | '>' | '|'
-            ;
-           s :] ->
-          check_ident2 s
-      | [: :] -> () ]
-    ;
-    value check_keyword s =
-      try check_keyword_stream (Stream.of_string s) with _ -> False
-    ;
-    value using_token kwd_table (p_con, p_prm) =
-      match p_con with
-      [ "" ->
-          try
-            let _ = Hashtbl.find kwd_table p_prm in
-            ()
-          with
-          [ Not_found ->
-              if check_keyword p_prm then Hashtbl.add kwd_table p_prm p_prm
-              else
-                raise
-                  (Token.Error
-                     ("the token \"" ^ p_prm ^
-                        "\" does not respect Plexer rules")) ]
-      | "LIDENT" | "UIDENT" | "INT" | "FLOAT" | "CHAR" | "STRING" |
-        "QUOTATION" | "ANTIQUOT" | "LOCATE" | "LABEL" | "ELABEL" | "EOI" ->
-          ()
-      | _ ->
-          raise
-            (Token.Error
-               ("the constructor \"" ^ p_con ^
-                  "\" is not recognized by Llexer")) ]
-    ;
-    value removing_token kwd_table (p_con, p_prm) =
-      if p_con = "" then Hashtbl.remove kwd_table p_prm else ()
-    ;
-    value text =
-      fun
-      [ ("", t) -> "'" ^ t ^ "'"
-      | ("LIDENT", "") -> "lowercase identifier"
-      | ("LIDENT", t) -> "'" ^ t ^ "'"
-      | ("UIDENT", "") -> "uppercase identifier"
-      | ("UIDENT", t) -> "'" ^ t ^ "'"
-      | ("INT", "") -> "integer"
-      | ("INT", s) -> "'" ^ s ^ "'"
-      | ("FLOAT", "") -> "float"
-      | ("STRING", "") -> "string"
-      | ("CHAR", "") -> "char"
-      | ("QUOTATION", "") -> "quotation"
-      | ("ANTIQUOT", k) -> "antiquot \"" ^ k ^ "\""
-      | ("LOCATE", "") -> "locate"
-      | ("LABEL", "") -> "label"
-      | ("ELABEL", "") -> "elabel"
-      | ("EOI", "") -> "end of input"
-      | (con, "") -> con
-      | (con, prm) -> con ^ " \"" ^ prm ^ "\"" ]
-    ;
-    value eq_before_colon p e =
-      loop 0 where rec loop i =
-        if i == String.length e then
-          failwith "Internal error in Plexer: incorrect ANTIQUOT"
-        else if i == String.length p then e.[i] == ':'
-        else if p.[i] == e.[i] then loop (i + 1)
-        else False
-    ;
-    value after_colon e =
-      try
-        let i = String.index e ':' in
-        String.sub e (i + 1) (String.length e - i - 1)
-      with
-      [ Not_found -> "" ]
-    ;
-    value gmake () =
-      let kwd_table = Hashtbl.create 301 in
-      {tok_func = func kwd_table; tok_using = using_token kwd_table;
-       tok_removing = removing_token kwd_table;
-       tok_match = Token.default_match; tok_text = text; tok_comm = None}
-    ;
-  end
-;
-
-open Stdpp;
-open Pcaml;
-
-Pcaml.no_constructors_arity.val := True;
-
-do {
-  Grammar.Unsafe.gram_reinit gram (Plexer.gmake ());
-  Grammar.Unsafe.clear_entry interf;
-  Grammar.Unsafe.clear_entry implem;
-  Grammar.Unsafe.clear_entry top_phrase;
-  Grammar.Unsafe.clear_entry use_file;
-  Grammar.Unsafe.clear_entry module_type;
-  Grammar.Unsafe.clear_entry module_expr;
-  Grammar.Unsafe.clear_entry sig_item;
-  Grammar.Unsafe.clear_entry str_item;
-  Grammar.Unsafe.clear_entry expr;
-  Grammar.Unsafe.clear_entry patt;
-  Grammar.Unsafe.clear_entry ctyp;
-  Grammar.Unsafe.clear_entry let_binding;
-  Grammar.Unsafe.clear_entry class_type;
-  Grammar.Unsafe.clear_entry class_expr;
-  Grammar.Unsafe.clear_entry class_sig_item;
-  Grammar.Unsafe.clear_entry class_str_item
-};
-
-Pcaml.parse_interf.val := Grammar.Entry.parse interf;
-Pcaml.parse_implem.val := Grammar.Entry.parse implem;
-
-value o2b =
-  fun
-  [ Some _ -> True
-  | None -> False ]
-;
-
-value mkumin loc f arg =
-  match arg with
-  [ <:expr< $int:n$ >> when int_of_string n > 0 ->
-      let n = "-" ^ n in
-      <:expr< $int:n$ >>
-  | <:expr< $flo:n$ >> when float_of_string n > 0.0 ->
-      let n = "-" ^ n in
-      <:expr< $flo:n$ >>
-  | _ ->
-      let f = "~" ^ f in
-      <:expr< $lid:f$ $arg$ >> ]
-;
-
-external loc_of_node : 'a -> Loc.t = "%field0";
-
-value mklistexp loc last =
-  loop True where rec loop top =
-    fun
-    [ [] ->
-        match last with
-        [ Some e -> e
-        | None -> <:expr< [] >> ]
-    | [e1 :: el] ->
-        let loc = if top then loc else (fst (loc_of_node e1), snd loc) in
-        <:expr< [$e1$ :: $loop False el$] >> ]
-;
-
-value mklistpat loc last =
-  loop True where rec loop top =
-    fun
-    [ [] ->
-        match last with
-        [ Some p -> p
-        | None -> <:patt< [] >> ]
-    | [p1 :: pl] ->
-        let loc = if top then loc else (fst (loc_of_node p1), snd loc) in
-        <:patt< [$p1$ :: $loop False pl$] >> ]
-;
-
-value neg s = string_of_int (- int_of_string s);
-
-value is_operator =
-  let ht = Hashtbl.create 73 in
-  let ct = Hashtbl.create 73 in
-  do {
-    List.iter (fun x -> Hashtbl.add ht x True)
-      ["asr"; "land"; "lor"; "lsl"; "lsr"; "lxor"; "mod"; "or"];
-    List.iter (fun x -> Hashtbl.add ct x True)
-      ['!'; '&'; '*'; '+'; '-'; '/'; ':'; '<'; '='; '>'; '@'; '^'; '|'; '~';
-       '?'; '%'; '.'];
-    fun x ->
-      try Hashtbl.find ht x with
-      [ Not_found -> try Hashtbl.find ct x.[0] with _ -> False ]
-  }
-;
-
-(*
-value p_operator strm =
-  match Stream.peek strm with
-  [ Some (Token.Tterm "(") ->
-      match Stream.npeek 3 strm with
-      [ [_; Token.Tterm x; Token.Tterm ")"] when is_operator x ->
-          do { Stream.junk strm; Stream.junk strm; Stream.junk strm; x }
-      | _ -> raise Stream.Failure ]
-  | _ -> raise Stream.Failure ]
-;
-
-value operator = Grammar.Entry.of_parser gram "operator" p_operator;
-*)
-
-value operator =
-  Grammar.Entry.of_parser gram "operator"
-    (parser [: `("", x) when is_operator x :] -> x)
-;
-
-value symbolchar =
-  let list =
-    ['!'; '$'; '%'; '&'; '*'; '+'; '-'; '.'; '/'; ':'; '<'; '='; '>'; '?';
-     '@'; '^'; '|'; '~']
-  in
-  let rec loop s i =
-    if i == String.length s then True
-    else if List.mem s.[i] list then loop s (i + 1)
-    else False
-  in
-  loop
-;
-
-value prefixop =
-  let list = ['!'; '?'; '~'] in
-  let excl = ["!="] in
-  Grammar.Entry.of_parser gram "prefixop"
-    (parser
-       [: `("", x)
-           when
-             not (List.mem x excl) && String.length x >= 2 &&
-             List.mem x.[0] list && symbolchar x 1 :] ->
-         x)
-;
-
-value infixop0 =
-  let list = ['='; '<'; '>'; '|'; '&'; '$'] in
-  let excl = ["<-"; "||"; "&&"] in
-  Grammar.Entry.of_parser gram "infixop0"
-    (parser
-       [: `("", x)
-           when
-             not (List.mem x excl) && String.length x >= 2 &&
-             List.mem x.[0] list && symbolchar x 1 :] ->
-         x)
-;
-
-value infixop1 =
-  let list = ['@'; '^'] in
-  Grammar.Entry.of_parser gram "infixop1"
-    (parser
-       [: `("", x)
-           when
-             String.length x >= 2 && List.mem x.[0] list &&
-             symbolchar x 1 :] ->
-         x)
-;
-
-value infixop2 =
-  let list = ['+'; '-'] in
-  Grammar.Entry.of_parser gram "infixop2"
-    (parser
-       [: `("", x)
-           when
-             x <> "->" && String.length x >= 2 && List.mem x.[0] list &&
-             symbolchar x 1 :] ->
-         x)
-;
-
-value infixop3 =
-  let list = ['*'; '/'; '%'] in
-  Grammar.Entry.of_parser gram "infixop3"
-    (parser
-       [: `("", x)
-           when
-             String.length x >= 2 && List.mem x.[0] list &&
-             symbolchar x 1 :] ->
-         x)
-;
-
-value infixop4 =
-  Grammar.Entry.of_parser gram "infixop4"
-    (parser
-       [: `("", x)
-           when
-             String.length x >= 3 && x.[0] == '*' && x.[1] == '*' &&
-             symbolchar x 2 :] ->
-         x)
-;
-
-value test_constr_decl =
-  Grammar.Entry.of_parser gram "test_constr_decl"
-    (fun strm ->
-       match Stream.npeek 1 strm with
-       [ [("UIDENT", _)] ->
-           match Stream.npeek 2 strm with
-           [ [_; ("", ".")] -> raise Stream.Failure
-           | [_; ("", "(")] -> raise Stream.Failure
-           | [_ :: _] -> ()
-           | _ -> raise Stream.Failure ]
-       | [("", "|")] -> ()
-       | _ -> raise Stream.Failure ])
-;
-
-value stream_peek_nth n strm =
-  loop n (Stream.npeek n strm) where rec loop n =
-    fun
-    [ [] -> None
-    | [x] -> if n == 1 then Some x else None
-    | [_ :: l] -> loop (n - 1) l ]
-;
-
-value test_label_eq =
-  let rec test lev strm =
-    match stream_peek_nth lev strm with
-    [ Some (("UIDENT", _) | ("LIDENT", _) | ("", ".")) -> test (lev + 1) strm
-    | Some ("", "=") -> ()
-    | _ -> raise Stream.Failure ]
-  in
-  Grammar.Entry.of_parser gram "test_label_eq" (test 1)
-;
-
-value constr_arity = ref [("Some", 1); ("Match_Failure", 1)];
-
-value rec constr_expr_arity =
-  fun
-  [ <:expr< $uid:c$ >> ->
-      try List.assoc c constr_arity.val with [ Not_found -> 0 ]
-  | <:expr< $uid:_$.$e$ >> -> constr_expr_arity e
-  | _ -> 1 ]
-;
-
-value rec constr_patt_arity =
-  fun
-  [ <:patt< $uid:c$ >> ->
-      try List.assoc c constr_arity.val with [ Not_found -> 0 ]
-  | <:patt< $uid:_$.$p$ >> -> constr_patt_arity p
-  | _ -> 1 ]
-;
-
-value rec get_seq =
-  fun
-  [ <:expr< do { $list:el$ } >> -> el
-  | e -> [e] ]
-;
-
-value choose_tvar tpl =
-  let rec find_alpha v =
-    let s = String.make 1 v in
-    if List.mem_assoc s tpl then
-      if v = 'z' then None else find_alpha (Char.chr (Char.code v + 1))
-    else Some (String.make 1 v)
-  in
-  let rec make_n n =
-    let v = "a" ^ string_of_int n in
-    if List.mem_assoc v tpl then make_n (succ n) else v
-  in
-  match find_alpha 'a' with
-  [ Some x -> x
-  | None -> make_n 1 ]
-;
-
-value rec patt_lid =
-  fun
-  [ <:patt< $lid:i$ $p$ >> -> Some (i, [p])
-  | <:patt< $p1$ $p2$ >> ->
-      match patt_lid p1 with
-      [ Some (i, pl) -> Some (i, [p2 :: pl])
-      | None -> None ]
-  | _ -> None ]
-;
-
-value type_parameter = Grammar.Entry.create gram "type_parameter";
-value fun_def = Grammar.Entry.create gram "fun_def";
-value fun_binding = Grammar.Entry.create gram "fun_binding";
-
-EXTEND
-  GLOBAL: interf implem top_phrase use_file sig_item str_item ctyp patt expr
-    module_type module_expr let_binding type_parameter fun_def fun_binding;
-  (* Main entry points *)
-  interf:
-    [ [ st = LIST0 [ s = sig_item; OPT ";;" -> (s, loc) ]; EOI ->
-          (st, False) ] ]
-  ;
-  implem:
-    [ [ st = LIST0 [ s = str_item; OPT ";;" -> (s, loc) ]; EOI ->
-          (st, False) ] ]
-  ;
-  top_phrase:
-    [ [ ph = phrase; ";;" -> Some ph
-      | EOI -> None ] ]
-  ;
-  use_file:
-    [ [ l = LIST0 [ ph = phrase; OPT ";;" -> ph ]; EOI -> (l, False) ] ]
-  ;
-  phrase:
-    [ [ sti = str_item -> sti
-      | "#"; n = LIDENT; dp = dir_param -> MLast.StDir loc n dp ] ]
-  ;
-  dir_param:
-    [ [ -> None
-      | e = expr -> Some e ] ]
-  ;
-  (* Module expressions *)
-  module_expr:
-    [ [ "functor"; "("; i = UIDENT; ":"; t = module_type; ")"; "->";
-        me = SELF ->
-          <:module_expr< functor ( $i$ : $t$ ) -> $me$ >>
-      | "struct"; st = LIST0 [ s = str_item; OPT ";;" -> s ]; "end" ->
-          <:module_expr< struct $list:st$ end >> ]
-    | [ me1 = SELF; me2 = SELF -> <:module_expr< $me1$ $me2$ >> ]
-    | [ i = mod_expr_ident -> i
-      | "("; me = SELF; ":"; mt = module_type; ")" ->
-          <:module_expr< ( $me$ : $mt$ ) >>
-      | "("; me = SELF; ")" -> <:module_expr< $me$ >> ] ]
-  ;
-  mod_expr_ident:
-    [ LEFTA
-      [ m1 = SELF; "."; m2 = SELF -> <:module_expr< $m1$ . $m2$ >> ]
-    | [ m = UIDENT -> <:module_expr< $uid:m$ >> ] ]
-  ;
-  str_item:
-    [ "top"
-      [ "exception"; (_, c, tl) = constructor_declaration ->
-          <:str_item< exception $c$ of $list:tl$ >>
-      | "external"; i = LIDENT; ":"; t = ctyp; "="; pd = LIST1 STRING ->
-          <:str_item< external $i$ : $t$ = $list:pd$ >>
-      | "external"; i = LABEL; t = ctyp; "="; pd = LIST1 STRING ->
-          <:str_item< external $i$ : $t$ = $list:pd$ >>
-      | "external"; "("; i = operator; ")"; ":"; t = ctyp; "=";
-        pd = LIST1 STRING ->
-          <:str_item< external $i$ : $t$ = $list:pd$ >>
-      | "module"; i = UIDENT; mb = module_binding ->
-          <:str_item< module $i$ = $mb$ >>
-      | "module"; "type"; i = UIDENT; "="; mt = module_type ->
-          <:str_item< module type $i$ = $mt$ >>
-      | "open"; i = mod_ident -> <:str_item< open $i$ >>
-      | "type"; tdl = LIST1 type_declaration SEP "and" ->
-          <:str_item< type $list:tdl$ >>
-      | "let"; r = OPT "rec"; l = LIST1 let_binding SEP "and"; "in";
-        x = expr ->
-          let e = <:expr< let $opt:o2b r$ $list:l$ in $x$ >> in
-          <:str_item< $exp:e$ >>
-      | "let"; r = OPT "rec"; l = LIST1 let_binding SEP "and" ->
-          match l with
-          [ [(<:patt< _ >>, e)] -> <:str_item< $exp:e$ >>
-          | _ -> <:str_item< value $opt:o2b r$ $list:l$ >> ]
-      | "let"; "module"; m = UIDENT; mb = module_binding; "in"; e = expr ->
-          <:str_item< let module $m$ = $mb$ in $e$ >>
-      | e = expr -> <:str_item< $exp:e$ >> ] ]
-  ;
-  module_binding:
-    [ RIGHTA
-      [ "("; m = UIDENT; ":"; mt = module_type; ")"; mb = SELF ->
-          <:module_expr< functor ( $m$ : $mt$ ) -> $mb$ >>
-      | ":"; mt = module_type; "="; me = module_expr ->
-          <:module_expr< ( $me$ : $mt$ ) >>
-      | "="; me = module_expr -> <:module_expr< $me$ >> ] ]
-  ;
-  (* Module types *)
-  module_type:
-    [ [ "functor"; "("; i = UIDENT; ":"; t = SELF; ")"; "->"; mt = SELF ->
-          <:module_type< functor ( $i$ : $t$ ) -> $mt$ >> ]
-    | [ mt = SELF; "with"; wcl = LIST1 with_constr SEP "and" ->
-          <:module_type< $mt$ with $list:wcl$ >> ]
-    | [ "sig"; sg = LIST0 [ s = sig_item; OPT ";;" -> s ]; "end" ->
-          <:module_type< sig $list:sg$ end >>
-      | i = mod_type_ident -> i
-      | "("; mt = SELF; ")" -> <:module_type< $mt$ >> ] ]
-  ;
-  mod_type_ident:
-    [ LEFTA
-      [ m1 = SELF; "."; m2 = SELF -> <:module_type< $m1$ . $m2$ >>
-      | m1 = SELF; "("; m2 = SELF; ")" -> <:module_type< $m1$ $m2$ >> ]
-    | [ m = UIDENT -> <:module_type< $uid:m$ >>
-      | m = LIDENT -> <:module_type< $lid:m$ >> ] ]
-  ;
-  sig_item:
-    [ "top"
-      [ "exception"; (_, c, tl) = constructor_declaration ->
-          <:sig_item< exception $c$ of $list:tl$ >>
-      | "external"; i = LIDENT; ":"; t = ctyp; "="; pd = LIST1 STRING ->
-          <:sig_item< external $i$ : $t$ = $list:pd$ >>
-      | "external"; i = LABEL; t = ctyp; "="; pd = LIST1 STRING ->
-          <:sig_item< external $i$ : $t$ = $list:pd$ >>
-      | "external"; "("; i = operator; ")"; ":"; t = ctyp; "=";
-        pd = LIST1 STRING ->
-          <:sig_item< external $i$ : $t$ = $list:pd$ >>
-      | "include"; mt = module_type -> <:sig_item< include $mt$ >>
-      | "module"; i = UIDENT; mt = module_declaration ->
-          <:sig_item< module $i$ : $mt$ >>
-      | "module"; "type"; i = UIDENT; "="; mt = module_type ->
-          <:sig_item< module type $i$ = $mt$ >>
-      | "open"; i = mod_ident -> <:sig_item< open $i$ >>
-      | "type"; tdl = LIST1 type_declaration SEP "and" ->
-          <:sig_item< type $list:tdl$ >>
-      | "val"; i = LIDENT; ":"; t = ctyp -> <:sig_item< value $i$ : $t$ >>
-      | "val"; i = LABEL; t = ctyp -> <:sig_item< value $i$ : $t$ >>
-      | "val"; "("; i = operator; ")"; ":"; t = ctyp ->
-          <:sig_item< value $i$ : $t$ >> ] ]
-  ;
-  module_declaration:
-    [ RIGHTA
-      [ ":"; mt = module_type -> <:module_type< $mt$ >>
-      | "("; i = UIDENT; ":"; t = module_type; ")"; mt = SELF ->
-          <:module_type< functor ( $i$ : $t$ ) -> $mt$ >> ] ]
-  ;
-  (* "with" constraints (additional type equations over signature
-     components) *)
-  with_constr:
-    [ [ "type"; tp = type_parameters; i = mod_ident; "="; t = ctyp ->
-          MLast.WcTyp loc i tp t
-      | "module"; i = mod_ident; "="; me = module_expr ->
-          MLast.WcMod loc i me ] ]
-  ;
-  (* Core expressions *)
-  expr:
-    [ "top" LEFTA
-      [ e1 = SELF; ";"; e2 = SELF ->
-          <:expr< do { $list:[e1 :: get_seq e2]$ } >>
-      | e1 = SELF; ";" -> e1 ]
-    | "expr1"
-      [ "let"; o = OPT "rec"; l = LIST1 let_binding SEP "and"; "in";
-        x = expr LEVEL "top" ->
-          <:expr< let $opt:o2b o$ $list:l$ in $x$ >>
-      | "let"; "module"; m = UIDENT; mb = module_binding; "in";
-        e = expr LEVEL "top" ->
-          <:expr< let module $m$ = $mb$ in $e$ >>
-      | "function"; OPT "|"; l = LIST1 match_case SEP "|" ->
-          <:expr< fun [ $list:l$ ] >>
-      | "fun"; p = patt LEVEL "simple"; e = fun_def ->
-          <:expr< fun [$p$ -> $e$] >>
-      | "match"; x = SELF; "with"; OPT "|"; l = LIST1 match_case SEP "|" ->
-          <:expr< match $x$ with [ $list:l$ ] >>
-      | "try"; x = SELF; "with"; OPT "|"; l = LIST1 match_case SEP "|" ->
-          <:expr< try $x$ with [ $list:l$ ] >>
-      | "if"; e1 = SELF; "then"; e2 = expr LEVEL "expr1";
-        e3 = [ "else"; e = expr LEVEL "expr1" -> e | -> <:expr< () >> ] ->
-          <:expr< if $e1$ then $e2$ else $e3$ >>
-      | "for"; i = LIDENT; "="; e1 = SELF; df = direction_flag; e2 = SELF;
-        "do"; e = SELF; "done" ->
-          <:expr< for $i$ = $e1$ $to:df$ $e2$ do { $list:get_seq e$ } >>
-      | "while"; e1 = SELF; "do"; e2 = SELF; "done" ->
-          <:expr< while $e1$ do { $list:get_seq e2$ } >> ]
-    | [ e = SELF; ","; el = LIST1 NEXT SEP "," ->
-          <:expr< ( $list:[e :: el]$ ) >> ]
-    | ":=" NONA
-      [ e1 = SELF; ":="; e2 = expr LEVEL "expr1" ->
-          <:expr< $e1$.val := $e2$ >>
-      | e1 = SELF; "<-"; e2 = expr LEVEL "expr1" -> <:expr< $e1$ := $e2$ >> ]
-    | "||" RIGHTA
-      [ e1 = SELF; f = [ op = "or" -> op | op = "||" -> op ]; e2 = SELF ->
-          <:expr< $lid:f$ $e1$ $e2$ >> ]
-    | "&&" RIGHTA
-      [ e1 = SELF; f = [ op = "&" -> op | op = "&&" -> op ]; e2 = SELF ->
-          <:expr< $lid:f$ $e1$ $e2$ >> ]
-    | "<" LEFTA
-      [ e1 = SELF;
-        f =
-          [ op = "<" -> op
-          | op = ">" -> op
-          | op = "<=" -> op
-          | op = ">=" -> op
-          | op = "=" -> op
-          | op = "<>" -> op
-          | op = "==" -> op
-          | op = "!=" -> op
-          | op = infixop0 -> op ];
-        e2 = SELF ->
-          <:expr< $lid:f$ $e1$ $e2$ >> ]
-    | "^" RIGHTA
-      [ e1 = SELF;
-        f = [ op = "^" -> op | op = "@" -> op | op = infixop1 -> op ];
-        e2 = SELF ->
-          <:expr< $lid:f$ $e1$ $e2$ >> ]
-    | RIGHTA
-      [ e1 = SELF; "::"; e2 = SELF -> <:expr< [$e1$ :: $e2$] >> ]
-    | "+" LEFTA
-      [ e1 = SELF;
-        f =
-          [ op = "+" -> op
-          | op = "-" -> op
-          | op = "+." -> op
-          | op = "-." -> op
-          | op = infixop2 -> op ];
-        e2 = SELF ->
-          <:expr< $lid:f$ $e1$ $e2$ >> ]
-    | "*" LEFTA
-      [ e1 = SELF;
-        f =
-          [ op = "*" -> op
-          | op = "/" -> op
-          | op = "*." -> op
-          | op = "/." -> op
-          | op = "land" -> op
-          | op = "lor" -> op
-          | op = "lxor" -> op
-          | op = "mod" -> op
-          | op = infixop3 -> op ];
-        e2 = SELF ->
-          <:expr< $lid:f$ $e1$ $e2$ >> ]
-    | "**" RIGHTA
-      [ e1 = SELF;
-        f =
-          [ op = "**" -> op
-          | op = "asr" -> op
-          | op = "lsl" -> op
-          | op = "lsr" -> op
-          | op = infixop4 -> op ];
-        e2 = SELF ->
-          <:expr< $lid:f$ $e1$ $e2$ >> ]
-    | "unary minus" NONA
-      [ f = [ op = "-" -> op | op = "-." -> op ]; e = SELF ->
-          <:expr< $mkumin loc f e$ >> ]
-    | "apply" LEFTA
-      [ e1 = SELF; e2 = SELF ->
-          match constr_expr_arity e1 with
-          [ 1 -> <:expr< $e1$ $e2$ >>
-          | _ ->
-              match e2 with
-              [ <:expr< ( $list:el$ ) >> ->
-                  List.fold_left (fun e1 e2 -> <:expr< $e1$ $e2$ >>) e1 el
-              | _ -> <:expr< $e1$ $e2$ >> ] ]
-      | "assert"; e = expr LEVEL "simple" ->
-          match e with
-          [ <:expr< False >> -> MLast.ExAsf loc
-          | _ -> MLast.ExAsr loc e ]
-      | "lazy"; e = SELF ->
-          <:expr< lazy ($e$) >> ]
-    | "simple" LEFTA
-      [ e1 = SELF; "."; "("; e2 = SELF; ")" -> <:expr< $e1$ .( $e2$ ) >>
-      | e1 = SELF; "."; "["; e2 = SELF; "]" -> <:expr< $e1$ .[ $e2$ ] >>
-      | e1 = SELF; "."; e2 = SELF -> <:expr< $e1$ . $e2$ >>
-      | "!"; e = SELF -> <:expr< $e$ . val>>
-      | f =
-          [ op = "~-" -> op
-          | op = "~-." -> op
-          | op = "~" -> op
-          | op = prefixop -> op ];
-        e = SELF ->
-          <:expr< $lid:f$ $e$ >>
-      | s = INT -> <:expr< $int:s$ >>
-      | s = FLOAT -> <:expr< $flo:s$ >>
-      | s = STRING -> <:expr< $str:s$ >>
-      | c = CHAR -> <:expr< $chr:c$ >>
-      | i = expr_ident -> i
-      | s = "false" -> <:expr< False >>
-      | s = "true" -> <:expr< True >>
-      | "["; "]" -> <:expr< [] >>
-      | "["; el = expr1_semi_list; "]" -> <:expr< $mklistexp loc None el$ >>
-      | "[|"; "|]" -> <:expr< [| |] >>
-      | "[|"; el = expr1_semi_list; "|]" -> <:expr< [| $list:el$ |] >>
-      | "{"; test_label_eq; lel = lbl_expr_list; "}" ->
-          <:expr< { $list:lel$ } >>
-      | "{"; e = expr LEVEL "simple"; "with"; lel = lbl_expr_list; "}" ->
-          <:expr< { ($e$) with $list:lel$ } >>
-      | "("; ")" -> <:expr< () >>
-      | "("; e = SELF; ":"; t = ctyp; ")" -> <:expr< ($e$ : $t$) >>
-      | "("; e = SELF; ")" -> <:expr< $e$ >>
-      | "("; "-"; ")" -> <:expr< $lid:"-"$ >>
-      | "("; "-."; ")" -> <:expr< $lid:"-."$ >>
-      | "("; op = operator; ")" -> <:expr< $lid:op$ >>
-      | "begin"; e = SELF; "end" -> <:expr< $e$ >>
-      | x = LOCATE ->
-          let x =
-            try
-              let i = String.index x ':' in
-              ({Lexing.pos_fname = "";
-                Lexing.pos_lnum = 0;
-                Lexing.pos_bol = 0;
-                Lexing.pos_cnum = int_of_string (String.sub x 0 i)},
-               String.sub x (i + 1) (String.length x - i - 1))
-            with
-            [ Not_found | Failure _ -> (Token.nowhere, x) ]
-          in
-          Pcaml.handle_expr_locate loc x
-      | x = QUOTATION ->
-          let x =
-            try
-              let i = String.index x ':' in
-              (String.sub x 0 i,
-               String.sub x (i + 1) (String.length x - i - 1))
-            with
-            [ Not_found -> ("", x) ]
-          in
-          Pcaml.handle_expr_quotation loc x ] ]
-  ;
-  let_binding:
-    [ [ p = patt; e = fun_binding ->
-          match patt_lid p with
-          [ Some (i, pl) ->
-              let e =
-                List.fold_left (fun e p -> <:expr< fun $p$ -> $e$ >>) e pl
-              in
-              (<:patt< $lid:i$ >>, e)
-          | None -> (p, e) ] ] ]
-  ;
-  fun_binding:
-    [ RIGHTA
-      [ p = patt LEVEL "simple"; e = SELF -> <:expr< fun $p$ -> $e$ >>
-      | "="; e = expr -> <:expr< $e$ >>
-      | ":"; t = ctyp; "="; e = expr -> <:expr< ($e$ : $t$) >> ] ]
-  ;
-  match_case:
-    [ [ x1 = patt; w = OPT [ "when"; e = expr -> e ]; "->"; x2 = expr ->
-          (x1, w, x2) ] ]
-  ;
-  lbl_expr_list:
-    [ [ le = lbl_expr; ";"; lel = SELF -> [le :: lel]
-      | le = lbl_expr; ";" -> [le]
-      | le = lbl_expr -> [le] ] ]
-  ;
-  lbl_expr:
-    [ [ i = patt_label_ident; "="; e = expr LEVEL "expr1" -> (i, e) ] ]
-  ;
-  expr1_semi_list:
-    [ [ e = expr LEVEL "expr1"; ";"; el = SELF -> [e :: el]
-      | e = expr LEVEL "expr1"; ";" -> [e]
-      | e = expr LEVEL "expr1" -> [e] ] ]
-  ;
-  fun_def:
-    [ RIGHTA
-      [ p = patt LEVEL "simple"; e = SELF -> <:expr< fun $p$ -> $e$ >>
-      | "->"; e = expr -> <:expr< $e$ >> ] ]
-  ;
-  expr_ident:
-    [ RIGHTA
-      [ i = LIDENT -> <:expr< $lid:i$ >>
-      | i = UIDENT -> <:expr< $uid:i$ >>
-      | m = UIDENT; "."; i = SELF ->
-          let rec loop m =
-            fun
-            [ <:expr< $x$ . $y$ >> -> loop <:expr< $m$ . $x$ >> y
-            | e -> <:expr< $m$ . $e$ >> ]
-          in
-          loop <:expr< $uid:m$ >> i
-      | m = UIDENT; "."; "("; i = operator; ")" ->
-          <:expr< $uid:m$ . $lid:i$ >> ] ]
-  ;
-  (* Patterns *)
-  patt:
-    [ LEFTA
-      [ p1 = SELF; "as"; i = LIDENT -> <:patt< ($p1$ as $lid:i$) >> ]
-    | LEFTA
-      [ p1 = SELF; "|"; p2 = SELF -> <:patt< $p1$ | $p2$ >> ]
-    | [ p = SELF; ","; pl = LIST1 NEXT SEP "," ->
-          <:patt< ( $list:[p :: pl]$) >> ]
-    | NONA
-      [ p1 = SELF; ".."; p2 = SELF -> <:patt< $p1$ .. $p2$ >> ]
-    | RIGHTA
-      [ p1 = SELF; "::"; p2 = SELF -> <:patt< [$p1$ :: $p2$] >> ]
-    | LEFTA
-      [ p1 = SELF; p2 = SELF ->
-          match constr_patt_arity p1 with
-          [ 1 -> <:patt< $p1$ $p2$ >>
-          | n ->
-              let p2 =
-                match p2 with
-                [ <:patt< _ >> when n > 1 ->
-                    let pl =
-                      loop n where rec loop n =
-                        if n = 0 then [] else [<:patt< _ >> :: loop (n - 1)]
-                    in
-                    <:patt< ( $list:pl$ ) >>
-                | _ -> p2 ]
-              in
-              match p2 with
-              [ <:patt< ( $list:pl$ ) >> ->
-                  List.fold_left (fun p1 p2 -> <:patt< $p1$ $p2$ >>) p1 pl
-              | _ -> <:patt< $p1$ $p2$ >> ] ] ]
-    | LEFTA
-      [ p1 = SELF; "."; p2 = SELF -> <:patt< $p1$ . $p2$ >> ]
-    | "simple"
-      [ s = LIDENT -> <:patt< $lid:s$ >>
-      | s = UIDENT -> <:patt< $uid:s$ >>
-      | s = INT -> <:patt< $int:s$ >>
-      | "-"; s = INT -> <:patt< $int:neg s$ >>
-      | s = STRING -> <:patt< $str:s$ >>
-      | s = CHAR -> <:patt< $chr:s$ >>
-      | s = "false" -> <:patt< False >>
-      | s = "true" -> <:patt< True >>
-      | "["; "]" -> <:patt< [] >>
-      | "["; pl = patt_semi_list; "]" -> <:patt< $mklistpat loc None pl$ >>
-      | "[|"; "|]" -> <:patt< [| |] >>
-      | "[|"; pl = patt_semi_list; "|]" -> <:patt< [| $list:pl$ |] >>
-      | "{"; lpl = lbl_patt_list; "}" -> <:patt< { $list:lpl$ } >>
-      | "("; ")" -> <:patt< () >>
-      | "("; p = SELF; ":"; t = ctyp; ")" -> <:patt< ($p$ : $t$) >>
-      | "("; p = SELF; ")" -> <:patt< $p$ >>
-      | "("; "-"; ")" -> <:patt< $lid:"-"$ >>
-      | "("; op = operator; ")" -> <:patt< $lid:op$ >>
-      | "_" -> <:patt< _ >>
-      | x = LOCATE ->
-          let x =
-            try
-              let i = String.index x ':' in
-              ({Lexing.pos_fname = "";
-                Lexing.pos_lnum = 0;
-                Lexing.pos_bol = 0;
-                Lexing.pos_cnum =  int_of_string (String.sub x 0 i)},
-               String.sub x (i + 1) (String.length x - i - 1))
-            with
-            [ Not_found | Failure _ -> (Token.nowhere, x) ]
-          in
-          Pcaml.handle_patt_locate loc x
-      | x = QUOTATION ->
-          let x =
-            try
-              let i = String.index x ':' in
-              (String.sub x 0 i,
-               String.sub x (i + 1) (String.length x - i - 1))
-            with
-            [ Not_found -> ("", x) ]
-          in
-          Pcaml.handle_patt_quotation loc x ] ]
-  ;
-  patt_semi_list:
-    [ [ p = patt; ";"; pl = SELF -> [p :: pl]
-      | p = patt; ";" -> [p]
-      | p = patt -> [p] ] ]
-  ;
-  lbl_patt_list:
-    [ [ le = lbl_patt; ";"; lel = SELF -> [le :: lel]
-      | le = lbl_patt; ";" -> [le]
-      | le = lbl_patt -> [le] ] ]
-  ;
-  lbl_patt:
-    [ [ i = patt_label_ident; "="; p = patt -> (i, p) ] ]
-  ;
-  patt_label_ident:
-    [ RIGHTA
-      [ i = UIDENT -> <:patt< $uid:i$ >>
-      | i = LIDENT -> <:patt< $lid:i$ >>
-      | m = UIDENT; "."; i = SELF -> <:patt< $uid:m$ . $i$ >> ] ]
-  ;
-  (* Type declaration *)
-  type_declaration:
-    [ [ tpl = type_parameters; n = type_patt; "="; tk = type_kind;
-        cl = LIST0 constrain ->
-          (n, tpl, tk, cl)
-      | tpl = type_parameters; n = type_patt; cl = LIST0 constrain ->
-          (n, tpl, <:ctyp< '$choose_tvar tpl$ >>, cl) ] ]
-  ;
-  type_patt:
-    [ [ n = LIDENT -> (loc, n) ] ]
-  ;
-  constrain:
-    [ [ "constraint"; t1 = ctyp; "="; t2 = ctyp -> (t1, t2) ] ]
-  ;
-  type_kind:
-    [ [ test_constr_decl; OPT "|";
-        cdl = LIST1 constructor_declaration SEP "|" ->
-          <:ctyp< [ $list:cdl$ ] >>
-      | t = ctyp -> <:ctyp< $t$ >>
-      | t = ctyp; "="; "{"; ldl = label_declarations; "}" ->
-          <:ctyp< $t$ == { $list:ldl$ } >>
-      | t = ctyp; "="; OPT "|"; cdl = LIST1 constructor_declaration SEP "|" ->
-          <:ctyp< $t$ == [ $list:cdl$ ] >>
-      | "{"; ldl = label_declarations; "}" -> <:ctyp< { $list:ldl$ } >> ] ]
-  ;
-  type_parameters:
-    [ [ -> (* empty *) []
-      | tp = type_parameter -> [tp]
-      | "("; tpl = LIST1 type_parameter SEP ","; ")" -> tpl ] ]
-  ;
-  type_parameter:
-    [ [ "'"; i = ident -> (i, (False, False)) ] ]
-  ;
-  constructor_declaration:
-    [ [ ci = UIDENT; "of"; cal = LIST1 ctyp LEVEL "ctyp1" SEP "*" ->
-          (loc, ci, cal)
-      | ci = UIDENT -> (loc, ci, []) ] ]
-  ;
-  label_declarations:
-    [ [ ld = label_declaration; ";"; ldl = SELF -> [ld :: ldl]
-      | ld = label_declaration; ";" -> [ld]
-      | ld = label_declaration -> [ld] ] ]
-  ;
-  label_declaration:
-    [ [ i = LIDENT; ":"; t = ctyp -> (loc, i, False, t)
-      | i = LABEL; t = ctyp -> (loc, i, False, t)
-      | "mutable"; i = LIDENT; ":"; t = ctyp -> (loc, i, True, t)
-      | "mutable"; i = LABEL; t = ctyp -> (loc, i, True, t) ] ]
-  ;
-  (* Core types *)
-  ctyp:
-    [ [ t1 = SELF; "as"; "'"; i = ident -> <:ctyp< $t1$ as '$i$ >> ]
-    | "arrow" RIGHTA
-      [ t1 = SELF; "->"; t2 = SELF -> <:ctyp< $t1$ -> $t2$ >> ]
-    | [ t = SELF; "*"; tl = LIST1 ctyp LEVEL "ctyp1" SEP "*" ->
-          <:ctyp< ( $list:[t :: tl]$ ) >> ]
-    | "ctyp1"
-      [ t1 = SELF; t2 = SELF -> <:ctyp< $t2$ $t1$ >> ]
-    | "ctyp2"
-      [ t1 = SELF; "."; t2 = SELF -> <:ctyp< $t1$ . $t2$ >>
-      | t1 = SELF; "("; t2 = SELF; ")" -> <:ctyp< $t1$ $t2$ >> ]
-    | "simple"
-      [ "'"; i = ident -> <:ctyp< '$i$ >>
-      | "_" -> <:ctyp< _ >>
-      | i = LIDENT -> <:ctyp< $lid:i$ >>
-      | i = UIDENT -> <:ctyp< $uid:i$ >>
-      | "("; t = SELF; ","; tl = LIST1 ctyp SEP ","; ")";
-        i = ctyp LEVEL "ctyp2" ->
-          List.fold_left (fun c a -> <:ctyp< $c$ $a$ >>) i [t :: tl]
-      | "("; t = SELF; ")" -> <:ctyp< $t$ >> ] ]
-  ;
-  (* Identifiers *)
-  ident:
-    [ [ i = LIDENT -> i
-      | i = UIDENT -> i ] ]
-  ;
-  mod_ident:
-    [ RIGHTA
-      [ i = UIDENT -> [i]
-      | i = LIDENT -> [i]
-      | m = UIDENT; "."; i = SELF -> [m :: i] ] ]
-  ;
-  (* Miscellaneous *)
-  direction_flag:
-    [ [ "to" -> True
-      | "downto" -> False ] ]
-  ;
-END;
-
-(* Objects and Classes *)
-
-value rec class_type_of_ctyp loc t =
-  match t with
-  [ <:ctyp< $lid:i$ >> -> <:class_type< $list:[i]$ >>
-  | <:ctyp< $uid:m$.$t$ >> -> <:class_type< $list:[m :: type_id_list t]$ >>
-  | _ -> raise_with_loc loc (Stream.Error "lowercase identifier expected") ]
-and type_id_list =
-  fun
-  [ <:ctyp< $uid:m$.$t$ >> -> [m :: type_id_list t]
-  | <:ctyp< $lid:i$ >> -> [i]
-  | t ->
-      raise_with_loc (loc_of_node t)
-        (Stream.Error "lowercase identifier expected") ]
-;
-
-value class_fun_binding = Grammar.Entry.create gram "class_fun_binding";
-
-EXTEND
-  GLOBAL: str_item sig_item expr ctyp class_sig_item class_str_item class_type
-    class_expr class_fun_binding;
-  str_item:
-    [ [ "class"; cd = LIST1 class_declaration SEP "and" ->
-          <:str_item< class $list:cd$ >>
-      | "class"; "type"; ctd = LIST1 class_type_declaration SEP "and" ->
-          <:str_item< class type $list:ctd$ >> ] ]
-  ;
-  sig_item:
-    [ [ "class"; cd = LIST1 class_description SEP "and" ->
-          <:sig_item< class $list:cd$ >>
-      | "class"; "type"; ctd = LIST1 class_type_declaration SEP "and" ->
-          <:sig_item< class type $list:ctd$ >> ] ]
-  ;
-  (* Class expressions *)
-  class_declaration:
-    [ [ vf = OPT "virtual"; ctp = class_type_parameters; i = LIDENT;
-        cfb = class_fun_binding ->
-          {MLast.ciLoc = loc; MLast.ciVir = o2b vf; MLast.ciPrm = ctp;
-           MLast.ciNam = i; MLast.ciExp = cfb} ] ]
-  ;
-  class_fun_binding:
-    [ [ "="; ce = class_expr -> ce
-      | ":"; ct = class_type; "="; ce = class_expr ->
-          <:class_expr< ($ce$ : $ct$) >>
-      | p = patt LEVEL "simple"; cfb = SELF ->
-          <:class_expr< fun $p$ -> $cfb$ >> ] ]
-  ;
-  class_type_parameters:
-    [ [ -> (loc, [])
-      | "["; tpl = LIST1 type_parameter SEP ","; "]" -> (loc, tpl) ] ]
-  ;
-  class_fun_def:
-    [ [ p = patt LEVEL "simple"; "->"; ce = class_expr ->
-          <:class_expr< fun $p$ -> $ce$ >>
-      | p = patt LEVEL "simple"; cfd = SELF ->
-          <:class_expr< fun $p$ -> $cfd$ >> ] ]
-  ;
-  class_expr:
-    [ "top"
-      [ "fun"; cfd = class_fun_def -> cfd
-      | "let"; rf = OPT "rec"; lb = LIST1 let_binding SEP "and"; "in";
-        ce = SELF ->
-          <:class_expr< let $opt:o2b rf$ $list:lb$ in $ce$ >> ]
-    | "apply" NONA
-      [ ce = SELF; e = expr LEVEL "label" ->
-          <:class_expr< $ce$ $e$ >> ]
-    | "simple"
-      [ "["; ct = ctyp; ","; ctcl = LIST1 ctyp SEP ","; "]";
-        ci = class_longident ->
-          <:class_expr< $list:ci$ [ $list:[ct :: ctcl]$ ] >>
-      | "["; ct = ctyp; "]"; ci = class_longident ->
-          <:class_expr< $list:ci$ [ $ct$ ] >>
-      | ci = class_longident -> <:class_expr< $list:ci$ >>
-      | "object"; cspo = OPT class_self_patt; cf = class_structure; "end" ->
-          <:class_expr< object $opt:cspo$ $list:cf$ end >>
-      | "("; ce = SELF; ":"; ct = class_type; ")" ->
-          <:class_expr< ($ce$ : $ct$) >>
-      | "("; ce = SELF; ")" -> ce ] ]
-  ;
-  class_structure:
-    [ [ cf = LIST0 class_str_item -> cf ] ]
-  ;
-  class_self_patt:
-    [ [ "("; p = patt; ")" -> p
-      | "("; p = patt; ":"; t = ctyp; ")" -> <:patt< ($p$ : $t$) >> ] ]
-  ;
-  class_str_item:
-    [ [ "inherit"; ce = class_expr; pb = OPT [ "as"; i = LIDENT -> i ] ->
-          <:class_str_item< inherit $ce$ $opt:pb$ >>
-      | "val"; (lab, mf, e) = cvalue ->
-          <:class_str_item< value $opt:mf$ $lab$ = $e$ >>
-      | "method"; "private"; "virtual"; l = label; ":"; t = ctyp ->
-          <:class_str_item< method virtual private $l$ : $t$ >>
-      | "method"; "virtual"; "private"; l = label; ":"; t = ctyp ->
-          <:class_str_item< method virtual private $l$ : $t$ >>
-      | "method"; "virtual"; l = label; ":"; t = ctyp ->
-          <:class_str_item< method virtual $l$ : $t$ >>
-      | "method"; "private"; l = label; fb = fun_binding ->
-          <:class_str_item< method private $l$ = $fb$ >>
-      | "method"; l = label; fb = fun_binding ->
-          <:class_str_item< method $l$ = $fb$ >>
-      | "constraint"; t1 = ctyp; "="; t2 = ctyp ->
-          <:class_str_item< type $t1$ = $t2$ >>
-      | "initializer"; se = expr -> <:class_str_item< initializer $se$ >> ] ]
-  ;
-  cvalue:
-    [ [ mf = OPT "mutable"; l = label; "="; e = expr -> (l, o2b mf, e)
-      | mf = OPT "mutable"; l = label; ":"; t = ctyp; "="; e = expr ->
-          (l, o2b mf, <:expr< ($e$ : $t$) >>)
-      | mf = OPT "mutable"; l = label; ":"; t1 = ctyp; ":>"; t2 = ctyp; "=";
-        e = expr ->
-          (l, o2b mf, <:expr< ($e$ : $t1$ :> $t2$) >>)
-      | mf = OPT "mutable"; l = label; ":>"; t = ctyp; "="; e = expr ->
-          (l, o2b mf, <:expr< ($e$ :> $t$) >>) ] ]
-  ;
-  label:
-    [ [ i = LIDENT -> i ] ]
-  ;
-  (* Class types *)
-  class_type:
-    [ [ t = ctyp LEVEL "ctyp1" -> class_type_of_ctyp loc t
-      | t = ctyp LEVEL "ctyp1"; "->"; ct = SELF ->
-          <:class_type< [ $t$ ] -> $ct$ >>
-      | t = ctyp LEVEL "ctyp1"; "*"; tl = LIST1 ctyp LEVEL "simple" SEP "*";
-        "->"; ct = SELF ->
-          <:class_type< [ ($t$ * $list:tl$) ] -> $ct$ >>
-      | cs = class_signature -> cs ] ]
-  ;
-  class_signature:
-    [ [ "["; tl = LIST1 ctyp SEP ","; "]"; id = clty_longident ->
-          <:class_type< $list:id$ [ $list:tl$ ] >>
-      | id = clty_longident -> <:class_type< $list:id$ >>
-      | "object"; cst = OPT class_self_type; csf = LIST0 class_sig_item;
-        "end" ->
-          <:class_type< object $opt:cst$ $list:csf$ end >> ] ]
-  ;
-  class_self_type:
-    [ [ "("; t = ctyp; ")" -> t ] ]
-  ;
-  class_sig_item:
-    [ [ "inherit"; cs = class_signature -> <:class_sig_item< inherit $cs$ >>
-      | "val"; mf = OPT "mutable"; l = label; ":"; t = ctyp ->
-          <:class_sig_item< value $opt:o2b mf$ $l$ : $t$ >>
-      | "method"; "private"; "virtual"; l = label; ":"; t = ctyp ->
-          <:class_sig_item< method virtual private $l$ : $t$ >>
-      | "method"; "virtual"; "private"; l = label; ":"; t = ctyp ->
-          <:class_sig_item< method virtual private $l$ : $t$ >>
-      | "method"; "virtual"; l = label; ":"; t = ctyp ->
-          <:class_sig_item< method virtual $l$ : $t$ >>
-      | "method"; "private"; l = label; ":"; t = ctyp ->
-          <:class_sig_item< method private $l$ : $t$ >>
-      | "method"; l = label; ":"; t = ctyp ->
-          <:class_sig_item< method $l$ : $t$ >>
-      | "constraint"; t1 = ctyp; "="; t2 = ctyp ->
-          <:class_sig_item< type $t1$ = $t2$ >> ] ]
-  ;
-  class_description:
-    [ [ vf = OPT "virtual"; ctp = class_type_parameters; n = LIDENT; ":";
-        ct = class_type ->
-          {MLast.ciLoc = loc; MLast.ciVir = o2b vf; MLast.ciPrm = ctp;
-           MLast.ciNam = n; MLast.ciExp = ct}
-      | vf = OPT "virtual"; ctp = class_type_parameters; n = LABEL;
-        ct = class_type ->
-          {MLast.ciLoc = loc; MLast.ciVir = o2b vf; MLast.ciPrm = ctp;
-           MLast.ciNam = n; MLast.ciExp = ct} ] ]
-  ;
-  class_type_declaration:
-    [ [ vf = OPT "virtual"; ctp = class_type_parameters; n = LIDENT; "=";
-        cs = class_signature ->
-          {MLast.ciLoc = loc; MLast.ciVir = o2b vf; MLast.ciPrm = ctp;
-           MLast.ciNam = n; MLast.ciExp = cs} ] ]
-  ;
-  (* Expressions *)
-  expr: LEVEL "apply"
-    [ LEFTA
-      [ "new"; i = class_longident -> <:expr< new $list:i$ >> ] ]
-  ;
-  expr: LEVEL "simple"
-    [ [ e = SELF; "#"; lab = label -> <:expr< $e$ # $lab$ >> ] ]
-  ;
-  expr: LEVEL "simple"
-    [ [ "("; e = SELF; ":"; t1 = ctyp; ":>"; t2 = ctyp; ")" ->
-          <:expr< ($e$ : $t1$ :> $t2$) >>
-      | "("; e = SELF; ":>"; t = ctyp; ")" -> <:expr< ($e$ :> $t$) >>
-      | "{<"; ">}" -> <:expr< {< >} >>
-      | "{<"; fel = field_expr_list; ">}" -> <:expr< {< $list:fel$ >} >> ] ]
-  ;
-  field_expr_list:
-    [ [ l = label; "="; e = expr LEVEL "expr1"; ";"; fel = SELF ->
-          [(l, e) :: fel]
-      | l = label; "="; e = expr LEVEL "expr1"; ";" -> [(l, e)]
-      | l = label; "="; e = expr LEVEL "expr1" -> [(l, e)] ] ]
-  ;
-  (* Core types *)
-  ctyp: LEVEL "simple"
-    [ [ "#"; id = class_longident -> <:ctyp< # $list:id$ >>
-      | "<"; (ml, v) = meth_list; ">" -> <:ctyp< < $list:ml$ $opt:v$ > >>
-      | "<"; ">" -> <:ctyp< < > >> ] ]
-  ;
-  meth_list:
-    [ [ f = field; ";"; (ml, v) = SELF -> ([f :: ml], v)
-      | f = field; ";" -> ([f], False)
-      | f = field -> ([f], False)
-      | ".." -> ([], True) ] ]
-  ;
-  field:
-    [ [ lab = LIDENT; ":"; t = ctyp -> (lab, t)
-      | lab = LABEL; t = ctyp -> (lab, t) ] ]
-  ;
-  (* Identifiers *)
-  clty_longident:
-    [ [ m = UIDENT; "."; l = SELF -> [m :: l]
-      | i = LIDENT -> [i] ] ]
-  ;
-  class_longident:
-    [ [ m = UIDENT; "."; l = SELF -> [m :: l]
-      | i = LIDENT -> [i] ] ]
-  ;
-END;
-
-(* Labels *)
-
-EXTEND
-  GLOBAL: ctyp expr patt fun_def fun_binding class_type class_fun_binding;
-  ctyp: AFTER "arrow"
-    [ NONA
-      [ i = LABEL; t = SELF -> <:ctyp< ~ $i$ : $t$ >>
-      | "?"; i = LABEL; t = SELF -> <:ctyp< ? $i$ : $t$ >> ] ]
-  ;
-  ctyp: LEVEL "simple"
-    [ [ "["; OPT "|"; rfl = LIST0 row_field SEP "|"; "]" ->
-          <:ctyp< [ = $list:rfl$ ] >>
-      | "["; ">"; OPT "|"; rfl = LIST1 row_field SEP "|"; "]" ->
-          <:ctyp< [ > $list:rfl$ ] >>
-      | "[<"; OPT "|"; rfl = LIST1 row_field SEP "|"; "]" ->
-          <:ctyp< [ < $list:rfl$ ] >>
-      | "[<"; OPT "|"; rfl = LIST1 row_field SEP "|"; ">";
-        ntl = LIST1 name_tag; "]" ->
-          <:ctyp< [ < $list:rfl$ > $list:ntl$ ] >> ] ]
-  ;
-  row_field:
-    [ [ "`"; i = ident -> MLast.RfTag i False []
-      | "`"; i = ident; "of"; ao = OPT "&"; l = LIST1 ctyp SEP "&" ->
-          MLast.RfTag i (o2b ao) l
-      | "`"; i = ident; "&"; l = LIST1 ctyp SEP "&" -> MLast.RfTag i True l
-      | "`"; i = ident; l = LIST1 ctyp SEP "&" -> MLast.RfTag i False l ] ]
-  ;
-  name_tag:
-    [ [ "`"; i = ident -> i ] ]
-  ;
-  expr: LEVEL "expr1"
-    [ [ "fun"; p = labeled_patt; e = fun_def -> <:expr< fun $p$ -> $e$ >> ] ]
-  ;
-  expr: AFTER "apply"
-    [ "label"
-      [ i = LABEL; e = SELF -> <:expr< ~ $i$ : $e$ >>
-      | i = ELABEL -> <:expr< ~ $i$ >>
-      | "?"; i = LABEL; e = SELF -> <:expr< ? $i$ : $e$ >>
-      | "?"; i = ELABEL -> <:expr< ? $i$ >> ] ]
-  ;
-  expr: LEVEL "simple"
-    [ [ "`"; s = ident -> <:expr< ` $s$ >> ] ]
-  ;
-  fun_def:
-    [ [ p = labeled_patt; e = SELF -> <:expr< fun $p$ -> $e$ >> ] ]
-  ;
-  fun_binding:
-    [ [ p = labeled_patt; e = SELF -> <:expr< fun $p$ -> $e$ >> ] ]
-  ;
-  patt: LEVEL "simple"
-    [ [ "`"; s = ident -> <:patt< ` $s$ >> ] ]
-  ;
-  labeled_patt:
-    [ [ i = LABEL; p = patt LEVEL "simple" -> <:patt< ~ $i$ : $p$ >>
-      | i = ELABEL -> <:patt< ~ $i$ >>
-      | "?"; i = LABEL; j = LIDENT -> <:patt< ? $i$ : ($lid:j$) >>
-      | "?"; "("; i = LABEL; j = LIDENT; ")" -> <:patt< ? $i$ : ($lid:j$) >>
-      | "?"; "("; i = LABEL; j = LIDENT; "="; e = expr; ")" ->
-          <:patt< ? $i$ : ( $lid:j$ = $e$ ) >>
-      | "?"; i = ELABEL -> <:patt< ? $i$ : ($lid:i$) >>
-      | "?"; "("; i = ELABEL; "="; e = expr; ")" ->
-          <:patt< ? $i$ : ( $lid:i$ = $e$ ) >> ] ]
-  ;
-  class_type:
-    [ [ i = LABEL; t = ctyp LEVEL "ctyp1"; "->"; ct = SELF ->
-          <:class_type< [ ~ $i$ : $t$ ] -> $ct$ >>
-      | "?"; i = LABEL; t = ctyp LEVEL "ctyp1"; "->"; ct = SELF ->
-          <:class_type< [ ? $i$ : $t$ ] -> $ct$ >> ] ]
-  ;
-  class_fun_binding:
-    [ [ p = labeled_patt; cfb = SELF -> <:class_expr< fun $p$ -> $cfb$ >> ] ]
-  ;
-  ident:
-    [ [ i = LIDENT -> i
-      | i = UIDENT -> i ] ]
-  ;
-END;
-
-type spat_comp =
-  [ SpTrm of Loc.t and MLast.patt and option MLast.expr
-  | SpNtr of Loc.t and MLast.patt and MLast.expr
-  | SpStr of Loc.t and MLast.patt ]
-;
-type sexp_comp =
-  [ SeTrm of Loc.t and MLast.expr | SeNtr of Loc.t and MLast.expr ]
-;
-
-value strm_n = "__strm";
-value peek_fun loc = <:expr< Stream.peek >>;
-value junk_fun loc = <:expr< Stream.junk >>;
-
-(* Parsers. *)
-(* In syntax generated, many cases are optimisations. *)
-
-value rec pattern_eq_expression p e =
-  match (p, e) with
-  [ (<:patt< $lid:a$ >>, <:expr< $lid:b$ >>) -> a = b
-  | (<:patt< $uid:a$ >>, <:expr< $uid:b$ >>) -> a = b
-  | (<:patt< $p1$ $p2$ >>, <:expr< $e1$ $e2$ >>) ->
-      pattern_eq_expression p1 e1 && pattern_eq_expression p2 e2
-  | _ -> False ]
-;
-
-value is_raise e =
-  match e with
-  [ <:expr< raise $_$ >> -> True
-  | _ -> False ]
-;
-
-value is_raise_failure e =
-  match e with
-  [ <:expr< raise Stream.Failure >> -> True
-  | _ -> False ]
-;
-
-value rec handle_failure e =
-  match e with
-  [ <:expr< try $te$ with [ Stream.Failure -> $e$] >> -> handle_failure e
-  | <:expr< match $me$ with [ $list:pel$ ] >> ->
-      handle_failure me &&
-      List.for_all
-        (fun
-         [ (_, None, e) -> handle_failure e
-         | _ -> False ])
-        pel
-  | <:expr< let $list:pel$ in $e$ >> ->
-      List.for_all (fun (p, e) -> handle_failure e) pel && handle_failure e
-  | <:expr< $lid:_$ >> | <:expr< $int:_$ >> | <:expr< $str:_$ >> |
-    <:expr< $chr:_$ >> | <:expr< fun [ $list:_$ ] >> | <:expr< $uid:_$ >> ->
-      True
-  | <:expr< raise $e$ >> ->
-      match e with
-      [ <:expr< Stream.Failure >> -> False
-      | _ -> True ]
-  | <:expr< $f$ $x$ >> ->
-      is_constr_apply f && handle_failure f && handle_failure x
-  | _ -> False ]
-and is_constr_apply =
-  fun
-  [ <:expr< $uid:_$ >> -> True
-  | <:expr< $lid:_$ >> -> False
-  | <:expr< $x$ $_$ >> -> is_constr_apply x
-  | _ -> False ]
-;
-
-value rec subst v e =
-  let loc = MLast.loc_of_expr e in
-  match e with
-  [ <:expr< $lid:x$ >> ->
-      let x = if x = v then strm_n else x in
-      <:expr< $lid:x$ >>
-  | <:expr< $uid:_$ >> -> e
-  | <:expr< $int:_$ >> -> e
-  | <:expr< $chr:_$ >> -> e
-  | <:expr< $str:_$ >> -> e
-  | <:expr< $_$ . $_$ >> -> e
-  | <:expr< let $opt:rf$ $list:pel$ in $e$ >> ->
-      <:expr< let $opt:rf$ $list:List.map (subst_pe v) pel$ in $subst v e$ >>
-  | <:expr< $e1$ $e2$ >> -> <:expr< $subst v e1$ $subst v e2$ >>
-  | <:expr< ( $list:el$ ) >> -> <:expr< ( $list:List.map (subst v) el$ ) >>
-  | _ -> raise Not_found ]
-and subst_pe v (p, e) =
-  match p with
-  [ <:patt< $lid:v'$ >> -> if v = v' then (p, e) else (p, subst v e)
-  | _ -> raise Not_found ]
-;
-
-value stream_pattern_component skont ckont =
-  fun
-  [ SpTrm loc p wo ->
-      <:expr< match $peek_fun loc$ $lid:strm_n$ with
-              [ Some $p$ $when:wo$ ->
-                  do { $junk_fun loc$ $lid:strm_n$; $skont$ }
-              | _ -> $ckont$ ] >>
-  | SpNtr loc p e ->
-      let e =
-        match e with
-        [ <:expr< fun [ ($lid:v$ : Stream.t _) -> $e$ ] >> when v = strm_n ->
-            e
-        | _ -> <:expr< $e$ $lid:strm_n$ >> ]
-      in
-      if pattern_eq_expression p skont then
-        if is_raise_failure ckont then e
-        else if handle_failure e then e
-        else <:expr< try $e$ with [ Stream.Failure -> $ckont$ ] >>
-      else if is_raise_failure ckont then <:expr< let $p$ = $e$ in $skont$ >>
-      else if pattern_eq_expression <:patt< Some $p$ >> skont then
-        <:expr< try Some $e$ with [ Stream.Failure -> $ckont$ ] >>
-      else if is_raise ckont then
-        let tst =
-          if handle_failure e then e
-          else <:expr< try $e$ with [ Stream.Failure -> $ckont$ ] >>
-        in
-        <:expr< let $p$ = $tst$ in $skont$ >>
-      else
-        <:expr< match try Some $e$ with [ Stream.Failure -> None ] with
-                [ Some $p$ -> $skont$
-                | _ -> $ckont$ ] >>
-  | SpStr loc p ->
-      try
-        match p with
-        [ <:patt< $lid:v$ >> -> subst v skont
-        | _ -> raise Not_found ]
-      with
-      [ Not_found -> <:expr< let $p$ = $lid:strm_n$ in $skont$ >> ] ]
-;
-
-value rec stream_pattern loc epo e ekont =
-  fun
-  [ [] ->
-      match epo with
-      [ Some ep -> <:expr< let $ep$ = Stream.count $lid:strm_n$ in $e$ >>
-      | _ -> e ]
-  | [(spc, err) :: spcl] ->
-      let skont =
-        let ekont err =
-          let str =
-            match err with
-            [ Some estr -> estr
-            | _ -> <:expr< "" >> ]
-          in
-          <:expr< raise (Stream.Error $str$) >>
-        in
-        stream_pattern loc epo e ekont spcl
-      in
-      let ckont = ekont err in
-      stream_pattern_component skont ckont spc ]
-;
-
-value stream_patterns_term loc ekont tspel =
-  let pel =
-    List.map
-      (fun (p, w, loc, spcl, epo, e) ->
-         let p = <:patt< Some $p$ >> in
-         let e =
-           let ekont err =
-             let str =
-               match err with
-               [ Some estr -> estr
-               | _ -> <:expr< "" >> ]
-             in
-             <:expr< raise (Stream.Error $str$) >>
-           in
-           let skont = stream_pattern loc epo e ekont spcl in
-           <:expr< do { $junk_fun loc$ $lid:strm_n$; $skont$ } >>
-         in
-         (p, w, e))
-      tspel
-  in
-  let pel = pel @ [(<:patt< _ >>, None, ekont ())] in
-  <:expr< match $peek_fun loc$ $lid:strm_n$ with [ $list:pel$ ] >>
-;
-
-value rec group_terms =
-  fun
-  [ [([(SpTrm loc p w, None) :: spcl], epo, e) :: spel] ->
-      let (tspel, spel) = group_terms spel in
-      ([(p, w, loc, spcl, epo, e) :: tspel], spel)
-  | spel -> ([], spel) ]
-;
-
-value rec parser_cases loc =
-  fun
-  [ [] -> <:expr< raise Stream.Failure >>
-  | spel ->
-      match group_terms spel with
-      [ ([], [(spcl, epo, e) :: spel]) ->
-          stream_pattern loc epo e (fun _ -> parser_cases loc spel) spcl
-      | (tspel, spel) ->
-          stream_patterns_term loc (fun _ -> parser_cases loc spel) tspel ] ]
-;
-
-value cparser loc bpo pc =
-  let e = parser_cases loc pc in
-  let e =
-    match bpo with
-    [ Some bp -> <:expr< let $bp$ = Stream.count $lid:strm_n$ in $e$ >>
-    | None -> e ]
-  in
-  let p = <:patt< ($lid:strm_n$ : Stream.t _) >> in
-  <:expr< fun $p$ -> $e$ >>
-;
-
-value cparser_match loc me bpo pc =
-  let pc = parser_cases loc pc in
-  let e =
-    match bpo with
-    [ Some bp -> <:expr< let $bp$ = Stream.count $lid:strm_n$ in $pc$ >>
-    | None -> pc ]
-  in
-  <:expr< let $lid:strm_n$ = $me$ in $e$ >>
-;
-
-(* streams *)
-
-value rec not_computing =
-  fun
-  [ <:expr< $lid:_$ >> | <:expr< $uid:_$ >> | <:expr< $int:_$ >> |
-    <:expr< $flo:_$ >> | <:expr< $chr:_$ >> | <:expr< $str:_$ >> ->
-      True
-  | <:expr< $x$ $y$ >> -> is_cons_apply_not_computing x && not_computing y
-  | _ -> False ]
-and is_cons_apply_not_computing =
-  fun
-  [ <:expr< $uid:_$ >> -> True
-  | <:expr< $lid:_$ >> -> False
-  | <:expr< $x$ $y$ >> -> is_cons_apply_not_computing x && not_computing y
-  | _ -> False ]
-;
-
-value slazy loc e =
-  match e with
-  [ <:expr< $f$ () >> ->
-      match f with
-      [ <:expr< $lid:_$ >> -> f
-      | _ -> <:expr< fun _ -> $e$ >> ]
-  | _ -> <:expr< fun _ -> $e$ >> ]
-;
-
-value rec cstream gloc =
-  fun
-  [ [] ->
-      let loc = gloc in
-      <:expr< Stream.sempty >>
-  | [SeTrm loc e] ->
-      if not_computing e then <:expr< Stream.ising $e$ >>
-      else <:expr< Stream.lsing $slazy loc e$ >>
-  | [SeTrm loc e :: secl] ->
-      if not_computing e then <:expr< Stream.icons $e$ $cstream gloc secl$ >>
-      else <:expr< Stream.lcons $slazy loc e$ $cstream gloc secl$ >>
-  | [SeNtr loc e] ->
-      if not_computing e then e else <:expr< Stream.slazy $slazy loc e$ >>
-  | [SeNtr loc e :: secl] ->
-      if not_computing e then <:expr< Stream.iapp $e$ $cstream gloc secl$ >>
-      else <:expr< Stream.lapp $slazy loc e$ $cstream gloc secl$ >> ]
-;
-
-(* Syntax extensions in Ocaml grammar *)
-
-EXTEND
-  GLOBAL: expr;
-  expr: LEVEL "expr1"
-    [ [ "parser"; po = OPT ipatt; OPT "|"; pcl = LIST1 parser_case SEP "|" ->
-          <:expr< $cparser loc po pcl$ >>
-      | "match"; e = SELF; "with"; "parser"; po = OPT ipatt; OPT "|";
-        pcl = LIST1 parser_case SEP "|" ->
-          <:expr< $cparser_match loc e po pcl$ >> ] ]
-  ;
-  parser_case:
-    [ [ "[<"; sp = stream_patt; ">]"; po = OPT ipatt; "->"; e = expr ->
-          (sp, po, e) ] ]
-  ;
-  stream_patt:
-    [ [ spc = stream_patt_comp -> [(spc, None)]
-      | spc = stream_patt_comp; ";" -> [(spc, None)]
-      | spc = stream_patt_comp; ";"; sp = stream_patt_comp_err_list ->
-          [(spc, None) :: sp]
-      | -> (* empty *) [] ] ]
-  ;
-  stream_patt_comp_err_list:
-    [ [ spc = stream_patt_comp_err -> [spc]
-      | spc = stream_patt_comp_err; ";" -> [spc]
-      | spc = stream_patt_comp_err; ";"; sp = SELF -> [spc :: sp] ] ]
-  ;
-  stream_patt_comp:
-    [ [ "'"; p = patt; eo = OPT [ "when"; e = expr LEVEL "expr1" -> e ] ->
-          SpTrm loc p eo
-      | p = patt; "="; e = expr LEVEL "expr1" -> SpNtr loc p e
-      | p = patt -> SpStr loc p ] ]
-  ;
-  stream_patt_comp_err:
-    [ [ spc = stream_patt_comp;
-        eo = OPT [ "?"; e = expr LEVEL "expr1" -> e ] ->
-          (spc, eo) ] ]
-  ;
-  ipatt:
-    [ [ i = LIDENT -> <:patt< $lid:i$ >> ] ]
-  ;
-  expr: LEVEL "simple"
-    [ [ "[<"; ">]" -> <:expr< $cstream loc []$ >>
-      | "[<"; sel = stream_expr_comp_list; ">]" ->
-          <:expr< $cstream loc sel$ >> ] ]
-  ;
-  stream_expr_comp_list:
-    [ [ se = stream_expr_comp; ";"; sel = SELF -> [se :: sel]
-      | se = stream_expr_comp; ";" -> [se]
-      | se = stream_expr_comp -> [se] ] ]
-  ;
-  stream_expr_comp:
-    [ [ "'"; e = expr LEVEL "expr1" -> SeTrm loc e
-      | e = expr LEVEL "expr1" -> SeNtr loc e ] ]
-  ;
-END;
diff --git a/camlp4/unmaintained/scheme/.depend b/camlp4/unmaintained/scheme/.depend
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/camlp4/unmaintained/scheme/Makefile b/camlp4/unmaintained/scheme/Makefile
deleted file mode 100644 (file)
index 01036c2..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-#########################################################################
-#                                                                       #
-#                            Objective Caml                             #
-#                                                                       #
-#                                Camlp4                                 #
-#                                                                       #
-#   Copyright 2004 Institut National de Recherche en Informatique et    #
-#   en Automatique.  All rights reserved.  This file is distributed     #
-#   under the terms of the Q Public License version 1.0.                #
-#                                                                       #
-#########################################################################
-#
-# Makefile for pa_lefteval
-# M.Mauny
-#
-
-include ../../config/Makefile.cnf
-
-OCAMLTOP=../../..
-CAMLP4=../../camlp4/camlp4$(EXE)
-
-OCAMLC=$(OCAMLTOP)/ocamlc$(EXE)
-OCAMLOPT=$(OCAMLTOP)/ocamlopt$(EXE)
-
-P4INCLUDES= -nolib -I ../../meta -I ../../etc
-OCAMLINCLUDES= -nostdlib -I $(OCAMLTOP)/stdlib -I ../../camlp4 -I ../../lib -I ../../etc
-OCAMLCFLAGS=-warn-error A $(OCAMLINCLUDES)
-
-SCHSRC=pa_scheme.sc
-SRC=pa_scheme.ml  pr_scheme.ml  pr_schp_main.ml
-OBJS=$(SRC:.ml=.cmo)
-OBJSX=$(OCAMLSRC:.ml=.cmx)
-
-all: $(OBJS) pr_schemep.cmo camlp4sch$(EXE)
-
-opt: all
-
-bootstrap: camlp4sch$(EXE) save
-       ./camlp4sch$(EXE) ../../etc/q_phony.cmo ../../meta/pa_extend.cmo ../../etc/pr_r.cmo ../../etc/pr_extend.cmo ../../etc/pr_rp.cmo -impl pa_scheme.sc \
-         | sed -e 's/^;; \(.*\)$$/(* \1 *)/' -e 's/^; \(.*\)$$/(* \1 *)/' \
-               -e 's/$$Id.*\$$/File generated by pretty print; do not edit!/' > pa_scheme.ml
-       @if cmp -s pa_scheme.ml SAVED/pa_scheme.ml; then \
-               echo 'pa_scheme.ml and SAVED/pa_scheme.ml are identical' ; \
-        else \
-               echo '**** Note: pa_scheme.ml differs from SAVED/pa_scheme.ml'; \
-        fi
-
-save:
-       test -d SAVED || mkdir SAVED
-       mkdir SAVED.$$$$ && mv SAVED pa_scheme.ml SAVED.$$$$ && mv SAVED.$$$$ SAVED
-
-restore:
-       mv SAVED SAVED.$$$$ && mv SAVED.$$$$/* . && rmdir SAVED.$$$$
-
-depend:
-       cp .depend .depend.bak
-       > .depend
-       for file in $(SRC); do \
-         $(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $$file` pr_depend.cmo $$i | \
-         sed -e 's| \.\./\.\./\.\.| $$(OCAMLTOP)|g' >> .depend; \
-       done
-
-clean:
-       rm -f camlp4sch$(EXE) *.cm* *.$(O) *.bak .*.bak
-
-camlp4sch: pa_scheme.cmo
-       rm -f camlp4sch
-       DIR=`pwd` && cd ../../camlp4 && $(MAKE) CAMLP4=$$DIR/camlp4sch CAMLP4M="-I $$DIR pa_scheme.cmo ../meta/pr_dump.cmo"
-
-pr_schemep.cmo: pr_schp_main.cmo
-       $(OCAMLC) ../../etc/parserify.cmo pr_schp_main.cmo -a -o $@
-
-.SUFFIXES: .cmx .cmo .cmi .ml .mli
-
-.mli.cmi:
-       $(OCAMLC) $(OCAMLCFLAGS) -c $<
-
-
-.ml.cmo:
-       $(OCAMLC) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<` -loc loc" -c $< 
-
-.ml.cmx:
-       $(OCAMLOPT) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES)  `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<` -loc loc" -c $<
-
-include .depend
diff --git a/camlp4/unmaintained/scheme/README b/camlp4/unmaintained/scheme/README
deleted file mode 100644 (file)
index 809d42f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This is an application of or an extension for Camlp4. Although it is
-currently distributed with OCaml/Camlp4, it may or may not be
-actively maintained.
-
-It probably won't be part of future OCaml/Camlp4 distributions but be
-accessible from the Camlp4 hump. If you are interested in developing
-this package further and/or actively maintain it, please let us know
-(caml@inria.fr)
-
-This package is distributed under the same license as the Objective
-Caml Library (that is, LGPL with a special exception allowing both
-static and dynamic link).
-
--- Michel Mauny
-
diff --git a/camlp4/unmaintained/scheme/pa_scheme.ml b/camlp4/unmaintained/scheme/pa_scheme.ml
deleted file mode 100644 (file)
index 4389321..0000000
+++ /dev/null
@@ -1,1093 +0,0 @@
-(* pa_r.cmo pa_rp.cmo pa_extend.cmo q_MLast.cmo pr_dump.cmo *)
-(* ********************************************************************** *)
-(*                                                                        *)
-(*                                Camlp4                                  *)
-(*                                                                        *)
-(*     Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt           *)
-(*                                                                        *)
-(*   Copyright 2002 Institut National de Recherche en Informatique et     *)
-(*   en Automatique.  All rights reserved.  This file is distributed      *)
-(*   under the terms of the GNU Library General Public License, with      *)
-(*   the special exception on linking described in file                   *)
-(*    ../../../LICENSE.                                                   *)
-(*                                                                        *)
-(* ********************************************************************** *)
-(* File generated by pretty print; do not edit! *)
-
-open Pcaml;
-open Stdpp;
-
-type choice 'a 'b =
-  [ Left of 'a
-  | Right of 'b ]
-;
-
-(* Buffer *)
-
-module Buff =
-  struct
-    value buff = ref (String.create 80);
-    value store len x =
-      do {
-        if len >= String.length buff.val then
-          buff.val := buff.val ^ String.create (String.length buff.val)
-        else ();
-        buff.val.[len] := x;
-        succ len
-      }
-    ;
-    value get len = String.sub buff.val 0 len;
-  end
-;
-
-(* Lexer *)
-
-value rec skip_to_eol =
-  parser
-  [ [: `'\n' | '\r' :] -> ()
-  | [: `_; s :] -> skip_to_eol s ]
-;
-
-value no_ident = ['('; ')'; '['; ']'; '{'; '}'; ' '; '\t'; '\n'; '\r'; ';'];
-
-value rec ident len =
-  parser
-  [ [: `'.' :] -> (Buff.get len, True)
-  | [: `x when not (List.mem x no_ident); s :] -> ident (Buff.store len x) s
-  | [: :] -> (Buff.get len, False) ]
-;
-
-value identifier kwt (s, dot) =
-  let con =
-    try do { (Hashtbl.find kwt s : unit); "" } with
-    [ Not_found ->
-        match s.[0] with
-        [ 'A'..'Z' -> if dot then "UIDENTDOT" else "UIDENT"
-        | _ -> if dot then "LIDENTDOT" else "LIDENT" ] ]
-  in
-  (con, s)
-;
-
-value rec string len =
-  parser
-  [ [: `'"' :] -> Buff.get len
-  | [: `'\\'; `c; s :] -> string (Buff.store (Buff.store len '\\') c) s
-  | [: `x; s :] -> string (Buff.store len x) s ]
-;
-
-value rec end_exponent_part_under len =
-  parser
-  [ [: `('0'..'9' as c); s :] -> end_exponent_part_under (Buff.store len c) s
-  | [: :] -> ("FLOAT", Buff.get len) ]
-;
-
-value end_exponent_part len =
-  parser
-  [ [: `('0'..'9' as c); s :] -> end_exponent_part_under (Buff.store len c) s
-  | [: :] -> raise (Stream.Error "ill-formed floating-point constant") ]
-;
-
-value exponent_part len =
-  parser
-  [ [: `('+' | '-' as c); s :] -> end_exponent_part (Buff.store len c) s
-  | [: a = end_exponent_part len :] -> a ]
-;
-
-value rec decimal_part len =
-  parser
-  [ [: `('0'..'9' as c); s :] -> decimal_part (Buff.store len c) s
-  | [: `'e' | 'E'; s :] -> exponent_part (Buff.store len 'E') s
-  | [: :] -> ("FLOAT", Buff.get len) ]
-;
-
-value rec number len =
-  parser
-  [ [: `('0'..'9' as c); s :] -> number (Buff.store len c) s
-  | [: `'.'; s :] -> decimal_part (Buff.store len '.') s
-  | [: `'e' | 'E'; s :] -> exponent_part (Buff.store len 'E') s
-  | [: :] -> ("INT", Buff.get len) ]
-;
-
-value binary = parser [: `('0'..'1' as c) :] -> c;
-
-value octal = parser [: `('0'..'7' as c) :] -> c;
-
-value hexa = parser [: `('0'..'9' | 'a'..'f' | 'A'..'F' as c) :] -> c;
-
-value rec digits_under kind len =
-  parser
-  [ [: d = kind; s :] -> digits_under kind (Buff.store len d) s
-  | [: :] -> Buff.get len ]
-;
-
-value digits kind bp len =
-  parser
-  [ [: d = kind; s :] -> ("INT", digits_under kind (Buff.store len d) s)
-  | [: s :] ep ->
-      raise_with_loc
-        (Reloc.shift_pos bp Reloc.zero_loc, Reloc.shift_pos ep Reloc.zero_loc)
-        (Failure "ill-formed integer constant") ]
-;
-
-value base_number kwt bp len =
-  parser
-  [ [: `'b' | 'B'; s :] -> digits binary bp (Buff.store len 'b') s
-  | [: `'o' | 'O'; s :] -> digits octal bp (Buff.store len 'o') s
-  | [: `'x' | 'X'; s :] -> digits hexa bp (Buff.store len 'x') s
-  | [: id = ident (Buff.store 0 '#') :] -> identifier kwt id ]
-;
-
-value rec operator len =
-  parser
-  [ [: `'.' :] -> Buff.get (Buff.store len '.')
-  | [: :] -> Buff.get len ]
-;
-
-value char_or_quote_id x =
-  parser
-  [ [: `''' :] -> ("CHAR", String.make 1 x)
-  | [: s :] ep ->
-      if List.mem x no_ident then
-        Stdpp.raise_with_loc
-          (Reloc.shift_pos (ep - 2) Reloc.zero_loc,
-           Reloc.shift_pos (ep - 1) Reloc.zero_loc)
-          (Stream.Error "bad quote")
-      else
-        let len = Buff.store (Buff.store 0 ''') x in
-        let (s, dot) = ident len s in
-        (if dot then "LIDENTDOT" else "LIDENT", s) ]
-;
-
-value rec char len =
-  parser
-  [ [: `''' :] -> len
-  | [: `x; s :] -> char (Buff.store len x) s ]
-;
-
-value quote =
-  parser
-  [ [: `'\\'; len = char (Buff.store 0 '\\') :] -> ("CHAR", Buff.get len)
-  | [: `x; s :] -> char_or_quote_id x s ]
-;
-
-(* The system with LIDENTDOT and UIDENTDOT is not great (it would be *)
-(* better to have a token DOT (actually SPACEDOT and DOT)) but it is *)
-(* the only way (that I have found) to have a good behaviour in the *)
-(* toplevel (not expecting tokens after a phrase). Drawbacks: 1/ to be *)
-(* complete, we should have STRINGDOT, RIGHTPARENDOT, and so on 2/ the *)
-(* parser rule with dot is right associative and we have to reverse *)
-(* the resulting tree (using the function leftify). *)
-(* This is a complicated issue: the behaviour of the OCaml toplevel *)
-(* is strange, anyway. For example, even without Camlp4, The OCaml *)
-(* toplevel accepts that: *)
-(*     # let x = 32;; foo bar match let ) *)
-
-value rec lexer kwt = parser [: t = lexer0 kwt; _ = no_dot :] -> t
-and no_dot =
-  parser
-  [ [: `'.' :] ep ->
-      Stdpp.raise_with_loc
-        (Reloc.shift_pos (ep - 1) Reloc.zero_loc,
-         Reloc.shift_pos ep Reloc.zero_loc)
-        (Stream.Error "bad dot")
-  | [: :] -> () ]
-and lexer0 kwt =
-  parser bp
-  [ [: `'\t' | '\n' | '\r'; s :] -> lexer0 kwt s
-  | [: `' '; s :] -> after_space kwt s
-  | [: `';'; _ = skip_to_eol; s :] -> lexer kwt s
-  | [: `'(' :] -> (("", "("), (bp, bp + 1))
-  | [: `')'; s :] ep -> (("", rparen s), (bp, ep))
-  | [: `'[' :] -> (("", "["), (bp, bp + 1))
-  | [: `']' :] -> (("", "]"), (bp, bp + 1))
-  | [: `'{' :] -> (("", "{"), (bp, bp + 1))
-  | [: `'}' :] -> (("", "}"), (bp, bp + 1))
-  | [: `'"'; s = string 0 :] ep -> (("STRING", s), (bp, ep))
-  | [: `'''; tok = quote :] ep -> (tok, (bp, ep))
-  | [: `'<'; tok = less kwt :] ep -> (tok, (bp, ep))
-  | [: `'-'; tok = minus kwt :] ep -> (tok, (bp, ep))
-  | [: `'~'; tok = tilde :] ep -> (tok, (bp, ep))
-  | [: `'?'; tok = question :] ep -> (tok, (bp, ep))
-  | [: `'#'; tok = base_number kwt bp (Buff.store 0 '0') :] ep ->
-      (tok, (bp, ep))
-  | [: `('0'..'9' as c); tok = number (Buff.store 0 c) :] ep ->
-      (tok, (bp, ep))
-  | [: `('+' | '*' | '/' as c); id = operator (Buff.store 0 c) :] ep ->
-      (identifier kwt (id, False), (bp, ep))
-  | [: `x; id = ident (Buff.store 0 x) :] ep -> (identifier kwt id, (bp, ep))
-  | [: :] -> (("EOI", ""), (bp, bp + 1)) ]
-and rparen =
-  parser
-  [ [: `'.' :] -> ")."
-  | [: ___ :] -> ")" ]
-and after_space kwt =
-  parser
-  [ [: `'.' :] ep -> (("", "."), (ep - 1, ep))
-  | [: x = lexer0 kwt :] -> x ]
-and tilde =
-  parser
-  [ [: `('a'..'z' as c); (s, dot) = ident (Buff.store 0 c) :] ->
-      ("TILDEIDENT", s)
-  | [: :] -> ("LIDENT", "~") ]
-and question =
-  parser
-  [ [: `('a'..'z' as c); (s, dot) = ident (Buff.store 0 c) :] ->
-      ("QUESTIONIDENT", s)
-  | [: :] -> ("LIDENT", "?") ]
-and minus kwt =
-  parser
-  [ [: `'.' :] -> identifier kwt ("-.", False)
-  | [: `('0'..'9' as c); n = number (Buff.store (Buff.store 0 '-') c) :] ->
-      n
-  | [: id = ident (Buff.store 0 '-') :] -> identifier kwt id ]
-and less kwt =
-  parser
-  [ [: `':'; lab = label 0; `'<' ? "'<' expected"; q = quotation 0 :] ->
-      ("QUOT", lab ^ ":" ^ q)
-  | [: id = ident (Buff.store 0 '<') :] -> identifier kwt id ]
-and label len =
-  parser
-  [ [: `('a'..'z' | 'A'..'Z' | '_' as c); s :] -> label (Buff.store len c) s
-  | [: :] -> Buff.get len ]
-and quotation len =
-  parser
-  [ [: `'>'; s :] -> quotation_greater len s
-  | [: `x; s :] -> quotation (Buff.store len x) s
-  | [: :] -> failwith "quotation not terminated" ]
-and quotation_greater len =
-  parser
-  [ [: `'>' :] -> Buff.get len
-  | [: a = quotation (Buff.store len '>') :] -> a ]
-;
-
-value lexer_using kwt (con, prm) =
-  match con with
-  [ "CHAR" | "EOI" | "INT" | "FLOAT" | "LIDENT" | "LIDENTDOT" |
-    "QUESTIONIDENT" | "QUOT" | "STRING" | "TILDEIDENT" | "UIDENT" |
-    "UIDENTDOT" ->
-      ()
-  | "ANTIQUOT" -> ()
-  | "" ->
-      try Hashtbl.find kwt prm with [ Not_found -> Hashtbl.add kwt prm () ]
-  | _ ->
-      raise
-        (Token.Error
-           ("the constructor \"" ^ con ^ "\" is not recognized by Plexer")) ]
-;
-
-value lexer_text (con, prm) =
-  if con = "" then "'" ^ prm ^ "'"
-  else if prm = "" then con
-  else con ^ " \"" ^ prm ^ "\""
-;
-
-value lexer_gmake () =
-  let kwt = Hashtbl.create 89 in
-  {Token.tok_func =
-     Token.lexer_func_of_parser
-       (fun s ->
-          let (r, (bp, ep)) = lexer kwt s in
-          (r,
-           (Reloc.shift_pos bp Reloc.zero_loc,
-            Reloc.shift_pos ep Reloc.zero_loc)));
-   Token.tok_using = lexer_using kwt; Token.tok_removing = fun [];
-   Token.tok_match = Token.default_match; Token.tok_text = lexer_text;
-   Token.tok_comm = None}
-;
-
-(* Building AST *)
-
-type sexpr =
-  [ Sacc of Loc.t and sexpr and sexpr
-  | Schar of Loc.t and string
-  | Sexpr of Loc.t and list sexpr
-  | Sint of Loc.t and string
-  | Sfloat of Loc.t and string
-  | Slid of Loc.t and string
-  | Slist of Loc.t and list sexpr
-  | Sqid of Loc.t and string
-  | Squot of Loc.t and string and string
-  | Srec of Loc.t and list sexpr
-  | Sstring of Loc.t and string
-  | Stid of Loc.t and string
-  | Suid of Loc.t and string ]
-;
-
-value loc_of_sexpr =
-  fun [
-    Sacc loc _ _ | Schar loc _ | Sexpr loc _ | Sint loc _ | Sfloat loc _ |
-    Slid loc _ | Slist loc _ | Sqid loc _ | Squot loc _ _ | Srec loc _ |
-    Sstring loc _ | Stid loc _ | Suid loc _ ->
-    loc ]
-;
-value error_loc loc err =
-  raise_with_loc loc (Stream.Error (err ^ " expected"))
-;
-value error se err = error_loc (loc_of_sexpr se) err;
-
-value strm_n = "__strm";
-value peek_fun loc = <:expr< Stream.peek >>;
-value junk_fun loc = <:expr< Stream.junk >>;
-
-value assoc_left_parsed_op_list =
-  ["+"; "*"; "+."; "*."; "land"; "lor"; "lxor"]
-;
-value assoc_right_parsed_op_list = ["and"; "or"; "^"; "@"];
-value and_by_couple_op_list = ["="; "<>"; "<"; ">"; "<="; ">="; "=="; "!="];
-
-value op_apply loc e1 e2 =
-  fun
-  [ "and" -> <:expr< $e1$ && $e2$ >>
-  | "or" -> <:expr< $e1$ || $e2$ >>
-  | x -> <:expr< $lid:x$ $e1$ $e2$ >> ]
-;
-
-value string_se =
-  fun
-  [ Sstring loc s -> s
-  | se -> error se "string" ]
-;
-
-value mod_ident_se =
-  fun
-  [ Suid _ s -> [Pcaml.rename_id.val s]
-  | Slid _ s -> [Pcaml.rename_id.val s]
-  | se -> error se "mod_ident" ]
-;
-
-value lident_expr loc s =
-  if String.length s > 1 && s.[0] = '`' then
-    let s = String.sub s 1 (String.length s - 1) in
-    <:expr< ` $s$ >>
-  else <:expr< $lid:(Pcaml.rename_id.val s)$ >>
-;
-
-value rec module_expr_se =
-  fun
-  [ Sexpr loc [Slid _ "functor"; Suid _ s; se1; se2] ->
-      let s = Pcaml.rename_id.val s in
-      let mt = module_type_se se1 in
-      let me = module_expr_se se2 in
-      <:module_expr< functor ($s$ : $mt$) -> $me$ >>
-  | Sexpr loc [Slid _ "struct" :: sl] ->
-      let mel = List.map str_item_se sl in
-      <:module_expr< struct $list:mel$ end >>
-  | Sexpr loc [se1; se2] ->
-      let me1 = module_expr_se se1 in
-      let me2 = module_expr_se se2 in
-      <:module_expr< $me1$ $me2$ >>
-  | Suid loc s -> <:module_expr< $uid:(Pcaml.rename_id.val s)$ >>
-  | se -> error se "module expr" ]
-and module_type_se =
-  fun
-  [ Sexpr loc [Slid _ "functor"; Suid _ s; se1; se2] ->
-      let s = Pcaml.rename_id.val s in
-      let mt1 = module_type_se se1 in
-      let mt2 = module_type_se se2 in
-      <:module_type< functor ($s$ : $mt1$) -> $mt2$ >>
-  | Sexpr loc [Slid _ "sig" :: sel] ->
-      let sil = List.map sig_item_se sel in
-      <:module_type< sig $list:sil$ end >>
-  | Sexpr loc [Slid _ "with"; se; Sexpr _ sel] ->
-      let mt = module_type_se se in
-      let wcl = List.map with_constr_se sel in
-      <:module_type< $mt$ with $list:wcl$ >>
-  | Suid loc s -> <:module_type< $uid:(Pcaml.rename_id.val s)$ >>
-  | se -> error se "module type" ]
-and with_constr_se =
-  fun
-  [ Sexpr loc [Slid _ "type"; se1; se2] ->
-      let tn = mod_ident_se se1 in
-      let te = ctyp_se se2 in
-      MLast.WcTyp loc tn [] te
-  | se -> error se "with constr" ]
-and sig_item_se =
-  fun
-  [ Sexpr loc [Slid _ "type" :: sel] ->
-      let tdl = type_declaration_list_se sel in
-      <:sig_item< type $list:tdl$ >>
-  | Sexpr loc [Slid _ "exception"; Suid _ c :: sel] ->
-      let c = Pcaml.rename_id.val c in
-      let tl = List.map ctyp_se sel in
-      <:sig_item< exception $c$ of $list:tl$ >>
-  | Sexpr loc [Slid _ "value"; Slid _ s; se] ->
-      let s = Pcaml.rename_id.val s in
-      let t = ctyp_se se in
-      <:sig_item< value $s$ : $t$ >>
-  | Sexpr loc [Slid _ "external"; Slid _ i; se :: sel] ->
-      let i = Pcaml.rename_id.val i in
-      let pd = List.map string_se sel in
-      let t = ctyp_se se in
-      <:sig_item< external $i$ : $t$ = $list:pd$ >>
-  | Sexpr loc [Slid _ "module"; Suid _ s; se] ->
-      let s = Pcaml.rename_id.val s in
-      let mb = module_type_se se in
-      <:sig_item< module $s$ : $mb$ >>
-  | Sexpr loc [Slid _ "moduletype"; Suid _ s; se] ->
-      let s = Pcaml.rename_id.val s in
-      let mt = module_type_se se in
-      <:sig_item< module type $s$ = $mt$ >>
-  | se -> error se "sig item" ]
-and str_item_se se =
-  match se with
-  [ Sexpr loc [Slid _ "open"; se] ->
-      let s = mod_ident_se se in
-      <:str_item< open $s$ >>
-  | Sexpr loc [Slid _ "type" :: sel] ->
-      let tdl = type_declaration_list_se sel in
-      <:str_item< type $list:tdl$ >>
-  | Sexpr loc [Slid _ "exception"; Suid _ c :: sel] ->
-      let c = Pcaml.rename_id.val c in
-      let tl = List.map ctyp_se sel in
-      <:str_item< exception $c$ of $list:tl$ >>
-  | Sexpr loc [Slid _ ("define" | "definerec" as r); se :: sel] ->
-      let r = r = "definerec" in
-      let (p, e) = fun_binding_se se (begin_se loc sel) in
-      <:str_item< value $opt:r$ $p$ = $e$ >>
-  | Sexpr loc [Slid _ ("define*" | "definerec*" as r) :: sel] ->
-      let r = r = "definerec*" in
-      let lbs = List.map let_binding_se sel in
-      <:str_item< value $opt:r$ $list:lbs$ >>
-  | Sexpr loc [Slid _ "external"; Slid _ i; se :: sel] ->
-      let i = Pcaml.rename_id.val i in
-      let pd = List.map string_se sel in
-      let t = ctyp_se se in
-      <:str_item< external $i$ : $t$ = $list:pd$ >>
-  | Sexpr loc [Slid _ "module"; Suid _ i; se] ->
-      let i = Pcaml.rename_id.val i in
-      let mb = module_binding_se se in
-      <:str_item< module $i$ = $mb$ >>
-  | Sexpr loc [Slid _ "moduletype"; Suid _ s; se] ->
-      let s = Pcaml.rename_id.val s in
-      let mt = module_type_se se in
-      <:str_item< module type $s$ = $mt$ >>
-  | _ ->
-      let loc = loc_of_sexpr se in
-      let e = expr_se se in
-      <:str_item< $exp:e$ >> ]
-and module_binding_se se = module_expr_se se
-and expr_se =
-  fun
-  [ Sacc loc se1 se2 ->
-      let e1 = expr_se se1 in
-      match se2 with
-      [ Slist loc [se2] ->
-          let e2 = expr_se se2 in
-          <:expr< $e1$ .[ $e2$ ] >>
-      | Sexpr loc [se2] ->
-          let e2 = expr_se se2 in
-          <:expr< $e1$ .( $e2$ ) >>
-      | _ ->
-          let e2 = expr_se se2 in
-          <:expr< $e1$ . $e2$ >> ]
-  | Slid loc s -> lident_expr loc s
-  | Suid loc s -> <:expr< $uid:(Pcaml.rename_id.val s)$ >>
-  | Sint loc s -> <:expr< $int:s$ >>
-  | Sfloat loc s -> <:expr< $flo:s$ >>
-  | Schar loc s -> <:expr< $chr:s$ >>
-  | Sstring loc s -> <:expr< $str:s$ >>
-  | Stid loc s -> <:expr< ~ $(Pcaml.rename_id.val s)$ >>
-  | Sqid loc s -> <:expr< ? $(Pcaml.rename_id.val s)$ >>
-  | Sexpr loc [] -> <:expr< () >>
-  | Sexpr loc [Slid _ s; e1 :: ([_ :: _] as sel)]
-    when List.mem s assoc_left_parsed_op_list ->
-      let rec loop e1 =
-        fun
-        [ [] -> e1
-        | [e2 :: el] -> loop (op_apply loc e1 e2 s) el ]
-      in
-      loop (expr_se e1) (List.map expr_se sel)
-  | Sexpr loc [Slid _ s :: ([_; _ :: _] as sel)]
-    when List.mem s assoc_right_parsed_op_list ->
-      let rec loop =
-        fun
-        [ [] -> assert False
-        | [e1] -> e1
-        | [e1 :: el] ->
-            let e2 = loop el in
-            op_apply loc e1 e2 s ]
-      in
-      loop (List.map expr_se sel)
-  | Sexpr loc [Slid _ s :: ([_; _ :: _] as sel)]
-    when List.mem s and_by_couple_op_list ->
-      let rec loop =
-        fun
-        [ [] | [_] -> assert False
-        | [e1; e2] -> <:expr< $lid:s$ $e1$ $e2$ >>
-        | [e1 :: ([e2; _ :: _] as el)] ->
-            let a1 = op_apply loc e1 e2 s in
-            let a2 = loop el in
-            <:expr< $a1$ && $a2$ >> ]
-      in
-      loop (List.map expr_se sel)
-  | Sexpr loc [Stid _ s; se] ->
-      let e = expr_se se in
-      <:expr< ~ $s$ : $e$ >>
-  | Sexpr loc [Slid _ "-"; se] ->
-      let e = expr_se se in
-      <:expr< - $e$ >>
-  | Sexpr loc [Slid _ "if"; se; se1] ->
-      let e = expr_se se in
-      let e1 = expr_se se1 in
-      <:expr< if $e$ then $e1$ else () >>
-  | Sexpr loc [Slid _ "if"; se; se1; se2] ->
-      let e = expr_se se in
-      let e1 = expr_se se1 in
-      let e2 = expr_se se2 in
-      <:expr< if $e$ then $e1$ else $e2$ >>
-  | Sexpr loc [Slid _ "cond" :: sel] ->
-      let rec loop =
-        fun
-        [ [Sexpr loc [Slid _ "else" :: sel]] -> begin_se loc sel
-        | [Sexpr loc [se1 :: sel1] :: sel] ->
-            let e1 = expr_se se1 in
-            let e2 = begin_se loc sel1 in
-            let e3 = loop sel in
-            <:expr< if $e1$ then $e2$ else $e3$ >>
-        | [] -> <:expr< () >>
-        | [se :: _] -> error se "cond clause" ]
-      in
-      loop sel
-  | Sexpr loc [Slid _ "while"; se :: sel] ->
-      let e = expr_se se in
-      let el = List.map expr_se sel in
-      <:expr< while $e$ do { $list:el$ } >>
-  | Sexpr loc [Slid _ "for"; Slid _ i; se1; se2 :: sel] ->
-      let i = Pcaml.rename_id.val i in
-      let e1 = expr_se se1 in
-      let e2 = expr_se se2 in
-      let el = List.map expr_se sel in
-      <:expr< for $i$ = $e1$ to $e2$ do { $list:el$ } >>
-  | Sexpr loc [Slid loc1 "lambda"] -> <:expr< fun [] >>
-  | Sexpr loc [Slid loc1 "lambda"; sep :: sel] ->
-      let e = begin_se loc1 sel in
-      match ipatt_opt_se sep with
-      [ Left p -> <:expr< fun $p$ -> $e$ >>
-      | Right (se, sel) ->
-          List.fold_right
-            (fun se e ->
-               let p = ipatt_se se in
-               <:expr< fun $p$ -> $e$ >>)
-            [se :: sel] e ]
-  | Sexpr loc [Slid _ "lambda_match" :: sel] ->
-      let pel = List.map (match_case loc) sel in
-      <:expr< fun [ $list:pel$ ] >>
-  | Sexpr loc [Slid _ ("let" | "letrec" as r) :: sel] ->
-      match sel with
-      [ [Sexpr _ sel1 :: sel2] ->
-          let r = r = "letrec" in
-          let lbs = List.map let_binding_se sel1 in
-          let e = begin_se loc sel2 in
-          <:expr< let $opt:r$ $list:lbs$ in $e$ >>
-      | [Slid _ n; Sexpr _ sl :: sel] ->
-          let n = Pcaml.rename_id.val n in
-          let (pl, el) =
-            List.fold_right
-              (fun se (pl, el) ->
-                 match se with
-                 [ Sexpr _ [se1; se2] ->
-                     ([patt_se se1 :: pl], [expr_se se2 :: el])
-                 | se -> error se "named let" ])
-              sl ([], [])
-          in
-          let e1 =
-            List.fold_right (fun p e -> <:expr< fun $p$ -> $e$ >>) pl
-              (begin_se loc sel)
-          in
-          let e2 =
-            List.fold_left (fun e1 e2 -> <:expr< $e1$ $e2$ >>)
-              <:expr< $lid:n$ >> el
-          in
-          <:expr< let rec $lid:n$ = $e1$ in $e2$ >>
-      | [se :: _] -> error se "let_binding"
-      | _ -> error_loc loc "let_binding" ]
-  | Sexpr loc [Slid _ "let*" :: sel] ->
-      match sel with
-      [ [Sexpr _ sel1 :: sel2] ->
-          List.fold_right
-            (fun se ek ->
-               let (p, e) = let_binding_se se in
-               <:expr< let $p$ = $e$ in $ek$ >>)
-            sel1 (begin_se loc sel2)
-      | [se :: _] -> error se "let_binding"
-      | _ -> error_loc loc "let_binding" ]
-  | Sexpr loc [Slid _ "match"; se :: sel] ->
-      let e = expr_se se in
-      let pel = List.map (match_case loc) sel in
-      <:expr< match $e$ with [ $list:pel$ ] >>
-  | Sexpr loc [Slid _ "parser" :: sel] ->
-      let e =
-        match sel with
-        [ [(Slid _ _ as se) :: sel] ->
-            let p = patt_se se in
-            let pc = parser_cases_se loc sel in
-            <:expr< let $p$ = Stream.count $lid:strm_n$ in $pc$ >>
-        | _ -> parser_cases_se loc sel ]
-      in
-      <:expr< fun ($lid:strm_n$ : Stream.t _) -> $e$ >>
-  | Sexpr loc [Slid _ "match_with_parser"; se :: sel] ->
-      let me = expr_se se in
-      let (bpo, sel) =
-        match sel with
-        [ [(Slid _ _ as se) :: sel] -> (Some (patt_se se), sel)
-        | _ -> (None, sel) ]
-      in
-      let pc = parser_cases_se loc sel in
-      let e =
-        match bpo with
-        [ Some bp -> <:expr< let $bp$ = Stream.count $lid:strm_n$ in $pc$ >>
-        | None -> pc ]
-      in
-      match me with
-      [ <:expr< $lid:x$ >> when x = strm_n -> e
-      | _ -> <:expr< let ($lid:strm_n$ : Stream.t _) = $me$ in $e$ >> ]
-  | Sexpr loc [Slid _ "try"; se :: sel] ->
-      let e = expr_se se in
-      let pel = List.map (match_case loc) sel in
-      <:expr< try $e$ with [ $list:pel$ ] >>
-  | Sexpr loc [Slid _ "begin" :: sel] ->
-      let el = List.map expr_se sel in
-      <:expr< do { $list:el$ } >>
-  | Sexpr loc [Slid _ ":="; se1; se2] ->
-      let e1 = expr_se se1 in
-      let e2 = expr_se se2 in
-      <:expr< $e1$ := $e2$ >>
-  | Sexpr loc [Slid _ "values" :: sel] ->
-      let el = List.map expr_se sel in
-      <:expr< ( $list:el$ ) >>
-  | Srec loc [Slid _ "with"; se :: sel] ->
-      let e = expr_se se in
-      let lel = List.map (label_expr_se loc) sel in
-      <:expr< { ($e$) with $list:lel$ } >>
-  | Srec loc sel ->
-      let lel = List.map (label_expr_se loc) sel in
-      <:expr< { $list:lel$ } >>
-  | Sexpr loc [Slid _ ":"; se1; se2] ->
-      let e = expr_se se1 in
-      let t = ctyp_se se2 in
-      <:expr< ( $e$ : $t$ ) >>
-  | Sexpr loc [se] ->
-      let e = expr_se se in
-      <:expr< $e$ () >>
-  | Sexpr loc [Slid _ "assert"; Suid _ "False"] -> <:expr< assert False >>
-  | Sexpr loc [Slid _ "assert"; se] ->
-      let e = expr_se se in
-      <:expr< assert $e$ >>
-  | Sexpr loc [Slid _ "lazy"; se] ->
-      let e = expr_se se in
-      <:expr< lazy $e$ >>
-  | Sexpr loc [se :: sel] ->
-      List.fold_left
-        (fun e se ->
-           let e1 = expr_se se in
-           <:expr< $e$ $e1$ >>)
-        (expr_se se) sel
-  | Slist loc sel ->
-      let rec loop =
-        fun
-        [ [] -> <:expr< [] >>
-        | [se1; Slid _ "."; se2] ->
-            let e = expr_se se1 in
-            let el = expr_se se2 in
-            <:expr< [$e$ :: $el$] >>
-        | [se :: sel] ->
-            let e = expr_se se in
-            let el = loop sel in
-            <:expr< [$e$ :: $el$] >> ]
-      in
-      loop sel
-  | Squot loc typ txt -> Pcaml.handle_expr_quotation loc (typ, txt) ]
-and begin_se loc =
-  fun
-  [ [] -> <:expr< () >>
-  | [se] -> expr_se se
-  | sel ->
-      let el = List.map expr_se sel in
-      let loc = (fst (loc_of_sexpr (List.hd sel)), snd loc) in
-      <:expr< do { $list:el$ } >> ]
-and let_binding_se =
-  fun
-  [ Sexpr loc [se :: sel] ->
-      let e = begin_se loc sel in
-      match ipatt_opt_se se with
-      [ Left p -> (p, e)
-      | Right _ -> fun_binding_se se e ]
-  | se -> error se "let_binding" ]
-and fun_binding_se se e =
-  match se with
-  [ Sexpr _ [Slid _ "values" :: _] -> (ipatt_se se, e)
-  | Sexpr _ [Slid loc s :: sel] ->
-      let s = Pcaml.rename_id.val s in
-      let e =
-        List.fold_right
-          (fun se e ->
-             let loc = (fst (loc_of_sexpr se), snd (MLast.loc_of_expr e)) in
-             let p = ipatt_se se in
-             <:expr< fun $p$ -> $e$ >>)
-          sel e
-      in
-      let p = <:patt< $lid:s$ >> in
-      (p, e)
-  | _ -> (ipatt_se se, e) ]
-and match_case loc =
-  fun
-  [ Sexpr loc [Sexpr _ [Slid _ "when"; se; sew] :: sel] ->
-      (patt_se se, Some (expr_se sew), begin_se loc sel)
-  | Sexpr loc [se :: sel] -> (patt_se se, None, begin_se loc sel)
-  | se -> error se "match_case" ]
-and label_expr_se loc =
-  fun
-  [ Sexpr _ [se1; se2] -> (patt_se se1, expr_se se2)
-  | se -> error se "label_expr" ]
-and label_patt_se loc =
-  fun
-  [ Sexpr _ [se1; se2] -> (patt_se se1, patt_se se2)
-  | se -> error se "label_patt" ]
-and parser_cases_se loc =
-  fun
-  [ [] -> <:expr< raise Stream.Failure >>
-  | [Sexpr loc [Sexpr _ spsel :: act] :: sel] ->
-      let ekont _ = parser_cases_se loc sel in
-      let act =
-        match act with
-        [ [se] -> expr_se se
-        | [sep; se] ->
-            let p = patt_se sep in
-            let e = expr_se se in
-            <:expr< let $p$ = Stream.count $lid:strm_n$ in $e$ >>
-        | _ -> error_loc loc "parser_case" ]
-      in
-      stream_pattern_se loc act ekont spsel
-  | [se :: _] -> error se "parser_case" ]
-and stream_pattern_se loc act ekont =
-  fun
-  [ [] -> act
-  | [se :: sel] ->
-      let ckont err = <:expr< raise (Stream.Error $err$) >> in
-      let skont = stream_pattern_se loc act ckont sel in
-      stream_pattern_component skont ekont <:expr< "" >> se ]
-and stream_pattern_component skont ekont err =
-  fun
-  [ Sexpr loc [Slid _ "`"; se :: wol] ->
-      let wo =
-        match wol with
-        [ [se] -> Some (expr_se se)
-        | [] -> None
-        | _ -> error_loc loc "stream_pattern_component" ]
-      in
-      let e = peek_fun loc in
-      let p = patt_se se in
-      let j = junk_fun loc in
-      let k = ekont err in
-      <:expr< match $e$ $lid:strm_n$ with
-               [ Some $p$ $when:wo$ -> do { $j$ $lid:strm_n$ ; $skont$ }
-               | _ -> $k$ ] >>
-  | Sexpr loc [se1; se2] ->
-      let p = patt_se se1 in
-      let e =
-        let e = expr_se se2 in
-        <:expr< try Some ($e$ $lid:strm_n$) with [ Stream.Failure -> None ] >>
-      in
-      let k = ekont err in
-      <:expr< match $e$ with [ Some $p$ -> $skont$ | _ -> $k$ ] >>
-  | Sexpr loc [Slid _ "?"; se1; se2] ->
-      stream_pattern_component skont ekont (expr_se se2) se1
-  | Slid loc s ->
-      let s = Pcaml.rename_id.val s in
-      <:expr< let $lid:s$ = $lid:strm_n$ in $skont$ >>
-  | se -> error se "stream_pattern_component" ]
-and patt_se =
-  fun
-  [ Sacc loc se1 se2 ->
-      let p1 = patt_se se1 in
-      let p2 = patt_se se2 in
-      <:patt< $p1$ . $p2$ >>
-  | Slid loc "_" -> <:patt< _ >>
-  | Slid loc s -> <:patt< $lid:(Pcaml.rename_id.val s)$ >>
-  | Suid loc s -> <:patt< $uid:(Pcaml.rename_id.val s)$ >>
-  | Sint loc s -> <:patt< $int:s$ >>
-  | Sfloat loc s -> <:patt< $flo:s$ >>
-  | Schar loc s -> <:patt< $chr:s$ >>
-  | Sstring loc s -> <:patt< $str:s$ >>
-  | Stid loc _ -> error_loc loc "patt"
-  | Sqid loc _ -> error_loc loc "patt"
-  | Srec loc sel ->
-      let lpl = List.map (label_patt_se loc) sel in
-      <:patt< { $list:lpl$ } >>
-  | Sexpr loc [Slid _ ":"; se1; se2] ->
-      let p = patt_se se1 in
-      let t = ctyp_se se2 in
-      <:patt< ($p$ : $t$) >>
-  | Sexpr loc [Slid _ "or"; se :: sel] ->
-      List.fold_left
-        (fun p se ->
-           let p1 = patt_se se in
-           <:patt< $p$ | $p1$ >>)
-        (patt_se se) sel
-  | Sexpr loc [Slid _ "range"; se1; se2] ->
-      let p1 = patt_se se1 in
-      let p2 = patt_se se2 in
-      <:patt< $p1$ .. $p2$ >>
-  | Sexpr loc [Slid _ "values" :: sel] ->
-      let pl = List.map patt_se sel in
-      <:patt< ( $list:pl$ ) >>
-  | Sexpr loc [Slid _ "as"; se1; se2] ->
-      let p1 = patt_se se1 in
-      let p2 = patt_se se2 in
-      <:patt< ($p1$ as $p2$) >>
-  | Sexpr loc [se :: sel] ->
-      List.fold_left
-        (fun p se ->
-           let p1 = patt_se se in
-           <:patt< $p$ $p1$ >>)
-        (patt_se se) sel
-  | Sexpr loc [] -> <:patt< () >>
-  | Slist loc sel ->
-      let rec loop =
-        fun
-        [ [] -> <:patt< [] >>
-        | [se1; Slid _ "."; se2] ->
-            let p = patt_se se1 in
-            let pl = patt_se se2 in
-            <:patt< [$p$ :: $pl$] >>
-        | [se :: sel] ->
-            let p = patt_se se in
-            let pl = loop sel in
-            <:patt< [$p$ :: $pl$] >> ]
-      in
-      loop sel
-  | Squot loc typ txt -> Pcaml.handle_patt_quotation loc (typ, txt) ]
-and ipatt_se se =
-  match ipatt_opt_se se with
-  [ Left p -> p
-  | Right (se, _) -> error se "ipatt" ]
-and ipatt_opt_se =
-  fun
-  [ Slid loc "_" -> Left <:patt< _ >>
-  | Slid loc s -> Left <:patt< $lid:(Pcaml.rename_id.val s)$ >>
-  | Stid loc s -> Left <:patt< ~ $(Pcaml.rename_id.val s)$ >>
-  | Sqid loc s -> Left <:patt< ? $(Pcaml.rename_id.val s)$ >>
-  | Sexpr loc [Sqid _ s; se] ->
-      let s = Pcaml.rename_id.val s in
-      let e = expr_se se in
-      Left <:patt< ? ( $lid:s$ = $e$ ) >>
-  | Sexpr loc [Slid _ ":"; se1; se2] ->
-      let p = ipatt_se se1 in
-      let t = ctyp_se se2 in
-      Left <:patt< ($p$ : $t$) >>
-  | Sexpr loc [Slid _ "values" :: sel] ->
-      let pl = List.map ipatt_se sel in
-      Left <:patt< ( $list:pl$ ) >>
-  | Sexpr loc [] -> Left <:patt< () >>
-  | Sexpr loc [se :: sel] -> Right (se, sel)
-  | se -> error se "ipatt" ]
-and type_declaration_list_se =
-  fun
-  [ [se1; se2 :: sel] ->
-      let (n1, loc1, tpl) =
-        match se1 with
-        [ Sexpr _ [Slid loc n :: sel] ->
-            (n, loc, List.map type_parameter_se sel)
-        | Slid loc n -> (n, loc, [])
-        | se -> error se "type declaration" ]
-      in
-      [((loc1, Pcaml.rename_id.val n1), tpl, ctyp_se se2, []) ::
-       type_declaration_list_se sel]
-  | [] -> []
-  | [se :: _] -> error se "type_declaration" ]
-and type_parameter_se =
-  fun
-  [ Slid _ s when String.length s >= 2 && s.[0] = ''' ->
-      (String.sub s 1 (String.length s - 1), (False, False))
-  | se -> error se "type_parameter" ]
-and ctyp_se =
-  fun
-  [ Sexpr loc [Slid _ "sum" :: sel] ->
-      let cdl = List.map constructor_declaration_se sel in
-      <:ctyp< [ $list:cdl$ ] >>
-  | Srec loc sel ->
-      let ldl = List.map label_declaration_se sel in
-      <:ctyp< { $list:ldl$ } >>
-  | Sexpr loc [Slid _ "->" :: ([_; _ :: _] as sel)] ->
-      let rec loop =
-        fun
-        [ [] -> assert False
-        | [se] -> ctyp_se se
-        | [se :: sel] ->
-            let t1 = ctyp_se se in
-            let loc = (fst (loc_of_sexpr se), snd loc) in
-            let t2 = loop sel in
-            <:ctyp< $t1$ -> $t2$ >> ]
-      in
-      loop sel
-  | Sexpr loc [Slid _ "*" :: sel] ->
-      let tl = List.map ctyp_se sel in
-      <:ctyp< ($list:tl$) >>
-  | Sexpr loc [se :: sel] ->
-      List.fold_left
-        (fun t se ->
-           let t2 = ctyp_se se in
-           <:ctyp< $t$ $t2$ >>)
-        (ctyp_se se) sel
-  | Sacc loc se1 se2 ->
-      let t1 = ctyp_se se1 in
-      let t2 = ctyp_se se2 in
-      <:ctyp< $t1$ . $t2$ >>
-  | Slid loc "_" -> <:ctyp< _ >>
-  | Slid loc s ->
-      if s.[0] = ''' then
-        let s = String.sub s 1 (String.length s - 1) in
-        <:ctyp< '$s$ >>
-      else <:ctyp< $lid:(Pcaml.rename_id.val s)$ >>
-  | Suid loc s -> <:ctyp< $uid:(Pcaml.rename_id.val s)$ >>
-  | se -> error se "ctyp" ]
-and constructor_declaration_se =
-  fun
-  [ Sexpr loc [Suid _ ci :: sel] ->
-      (loc, Pcaml.rename_id.val ci, List.map ctyp_se sel)
-  | se -> error se "constructor_declaration" ]
-and label_declaration_se =
-  fun
-  [ Sexpr loc [Slid _ lab; Slid _ "mutable"; se] ->
-      (loc, Pcaml.rename_id.val lab, True, ctyp_se se)
-  | Sexpr loc [Slid _ lab; se] ->
-      (loc, Pcaml.rename_id.val lab, False, ctyp_se se)
-  | se -> error se "label_declaration" ]
-;
-
-value directive_se =
-  fun
-  [ Sexpr _ [Slid _ s] -> (s, None)
-  | Sexpr _ [Slid _ s; se] ->
-      let e = expr_se se in
-      (s, Some e)
-  | se -> error se "directive" ]
-;
-
-(* Parser *)
-
-Pcaml.syntax_name.val := "Scheme";
-Pcaml.no_constructors_arity.val := False;
-
-do {
-  Grammar.Unsafe.gram_reinit gram (lexer_gmake ());
-  Grammar.Unsafe.clear_entry interf;
-  Grammar.Unsafe.clear_entry implem;
-  Grammar.Unsafe.clear_entry top_phrase;
-  Grammar.Unsafe.clear_entry use_file;
-  Grammar.Unsafe.clear_entry module_type;
-  Grammar.Unsafe.clear_entry module_expr;
-  Grammar.Unsafe.clear_entry sig_item;
-  Grammar.Unsafe.clear_entry str_item;
-  Grammar.Unsafe.clear_entry expr;
-  Grammar.Unsafe.clear_entry patt;
-  Grammar.Unsafe.clear_entry ctyp;
-  Grammar.Unsafe.clear_entry let_binding;
-  Grammar.Unsafe.clear_entry type_declaration;
-  Grammar.Unsafe.clear_entry class_type;
-  Grammar.Unsafe.clear_entry class_expr;
-  Grammar.Unsafe.clear_entry class_sig_item;
-  Grammar.Unsafe.clear_entry class_str_item
-};
-
-Pcaml.parse_interf.val := Grammar.Entry.parse interf;
-Pcaml.parse_implem.val := Grammar.Entry.parse implem;
-
-value sexpr = Grammar.Entry.create gram "sexpr";
-
-value rec leftify =
-  fun
-  [ Sacc loc1 se1 se2 ->
-      match leftify se2 with
-      [ Sacc loc2 se2 se3 -> Sacc loc1 (Sacc loc2 se1 se2) se3
-      | se2 -> Sacc loc1 se1 se2 ]
-  | x -> x ]
-;
-
-EXTEND
-  GLOBAL: implem interf top_phrase use_file str_item sig_item expr patt sexpr;
-  implem:
-    [ [ "#"; se = sexpr ->
-          let (n, dp) = directive_se se in
-          ([(<:str_item< # $n$ $opt:dp$ >>, loc)], True)
-      | si = str_item; x = SELF ->
-          let (sil, stopped) = x in
-          let loc = MLast.loc_of_str_item si in
-          ([(si, loc) :: sil], stopped)
-      | EOI -> ([], False) ] ]
-  ;
-  interf:
-    [ [ "#"; se = sexpr ->
-          let (n, dp) = directive_se se in
-          ([(<:sig_item< # $n$ $opt:dp$ >>, loc)], True)
-      | si = sig_item; x = SELF ->
-          let (sil, stopped) = x in
-          let loc = MLast.loc_of_sig_item si in
-          ([(si, loc) :: sil], stopped)
-      | EOI -> ([], False) ] ]
-  ;
-  top_phrase:
-    [ [ "#"; se = sexpr ->
-          let (n, dp) = directive_se se in
-          Some <:str_item< # $n$ $opt:dp$ >>
-      | se = sexpr -> Some (str_item_se se)
-      | EOI -> None ] ]
-  ;
-  use_file:
-    [ [ "#"; se = sexpr ->
-          let (n, dp) = directive_se se in
-          ([<:str_item< # $n$ $opt:dp$ >>], True)
-      | si = str_item; x = SELF ->
-          let (sil, stopped) = x in
-          ([si :: sil], stopped)
-      | EOI -> ([], False) ] ]
-  ;
-  str_item:
-    [ [ se = sexpr -> str_item_se se
-      | e = expr -> <:str_item< $exp:e$ >> ] ]
-  ;
-  sig_item:
-    [ [ se = sexpr -> sig_item_se se ] ]
-  ;
-  expr:
-    [ "top"
-      [ se = sexpr -> expr_se se ] ]
-  ;
-  patt:
-    [ [ se = sexpr -> patt_se se ] ]
-  ;
-  sexpr:
-    [ [ se1 = sexpr_dot; se2 = SELF -> leftify (Sacc loc se1 se2) ]
-    | [ "("; sl = LIST0 sexpr; ")" -> Sexpr loc sl
-      | "("; sl = LIST0 sexpr; ")."; se = SELF ->
-          leftify (Sacc loc (Sexpr loc sl) se)
-      | "["; sl = LIST0 sexpr; "]" -> Slist loc sl
-      | "{"; sl = LIST0 sexpr; "}" -> Srec loc sl
-      | a = pa_extend_keyword -> Slid loc a
-      | s = LIDENT -> Slid loc s
-      | s = UIDENT -> Suid loc s
-      | s = TILDEIDENT -> Stid loc s
-      | s = QUESTIONIDENT -> Sqid loc s
-      | s = INT -> Sint loc s
-      | s = FLOAT -> Sfloat loc s
-      | s = CHAR -> Schar loc s
-      | s = STRING -> Sstring loc s
-      | s = QUOT ->
-          let i = String.index s ':' in
-          let typ = String.sub s 0 i in
-          let txt = String.sub s (i + 1) (String.length s - i - 1) in
-          Squot loc typ txt ] ]
-  ;
-  sexpr_dot:
-    [ [ s = LIDENTDOT -> Slid loc s
-      | s = UIDENTDOT -> Suid loc s ] ]
-  ;
-  pa_extend_keyword:
-    [ [ "_" -> "_"
-      | "," -> ","
-      | "=" -> "="
-      | ":" -> ":"
-      | "." -> "."
-      | "/" -> "/" ] ]
-  ;
-END;
diff --git a/camlp4/unmaintained/scheme/pa_scheme.sc b/camlp4/unmaintained/scheme/pa_scheme.sc
deleted file mode 100644 (file)
index cc6de18..0000000
+++ /dev/null
@@ -1,1029 +0,0 @@
-; pa_r.cmo pa_rp.cmo pa_extend.cmo q_MLast.cmo pr_dump.cmo
-; **********************************************************************
-;                                                                       
-;                                Camlp4                                 
-;                                                                       
-;     Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt          
-;                                                                       
-;   Copyright 2002 Institut National de Recherche en Informatique et    
-;   en Automatique.  All rights reserved.  This file is distributed     
-;   under the terms of the GNU Library General Public License, with     
-;   the special exception on linking described in file                  
-;    ../../../LICENSE.                                                  
-;                                                                       
-; **********************************************************************
-
-(open Pcaml)
-(open Stdpp)
-
-(type (choice 'a 'b) (sum (Left 'a) (Right 'b)))
-
-; Buffer
-
-(module Buff
- (struct
-  (define buff (ref (String.create 80)))
-  (define (store len x)
-    (if (>= len (String.length buff.val))
-        (:= buff.val (^ buff.val (String.create (String.length buff.val)))))
-    (:= buff.val.[len] x)
-    (succ len))
-  (define (get len) (String.sub buff.val 0 len))))
-
-; Lexer
-
-(definerec skip_to_eol
-  (parser
-   (((` (or '\n' '\r'))) ())
-   (((` _) s) (skip_to_eol s))))
-
-(define no_ident ['(' ')' '[' ']' '{' '}' ' ' '\t' '\n' '\r' ';'])
-
-(definerec (ident len)
-  (parser
-   (((` '.')) (values (Buff.get len) True))
-   (((` x (not (List.mem x no_ident))) s) (ident (Buff.store len x) s))
-   (() (values (Buff.get len) False))))
-
-(define (identifier kwt (values s dot))
-  (let ((con
-          (try (begin (: (Hashtbl.find kwt s) unit) "")
-           (Not_found
-            (match s.[0]
-             ((range 'A' 'Z') (if dot "UIDENTDOT" "UIDENT"))
-             (_ (if dot "LIDENTDOT" "LIDENT")))))))
-     (values con s)))
-
-(definerec (string len)
-  (parser
-   (((` '"')) (Buff.get len))
-   (((` '\\') (` c) s) (string (Buff.store (Buff.store len '\\') c) s))
-   (((` x) s) (string (Buff.store len x) s))))
-
-(definerec (end_exponent_part_under len)
-  (parser
-   (((` (as (range '0' '9') c)) s)
-    (end_exponent_part_under (Buff.store len c) s))
-   (() (values "FLOAT" (Buff.get len)))))
-
-(define (end_exponent_part len)
-  (parser
-   (((` (as (range '0' '9') c)) s)
-    (end_exponent_part_under (Buff.store len c) s))
-   (() (raise (Stream.Error "ill-formed floating-point constant")))))
-
-(define (exponent_part len)
-  (parser
-   (((` (as (or '+' '-') c)) s) (end_exponent_part (Buff.store len c) s))
-   (((a (end_exponent_part len))) a)))
-
-(definerec (decimal_part len)
-  (parser
-   (((` (as (range '0' '9') c)) s) (decimal_part (Buff.store len c) s))
-   (((` (or 'e' 'E')) s) (exponent_part (Buff.store len 'E') s))
-   (() (values "FLOAT" (Buff.get len)))))
-
-(definerec (number len)
-  (parser
-   (((` (as (range '0' '9') c)) s) (number (Buff.store len c) s))
-   (((` '.') s) (decimal_part (Buff.store len '.') s))
-   (((` (or 'e' 'E')) s) (exponent_part (Buff.store len 'E') s))
-   (() (values "INT" (Buff.get len)))))
-
-(define binary
-  (parser
-   (((` (as (range '0' '1') c))) c)))
-
-(define octal
-  (parser
-   (((` (as (range '0' '7') c))) c)))
-
-(define hexa
-  (parser
-   (((` (as (or (range '0' '9') (range 'a' 'f') (range 'A' 'F')) c))) c)))
-
-(definerec (digits_under kind len)
-  (parser
-   (((d kind) s) (digits_under kind (Buff.store len d) s))
-   (() (Buff.get len))))
-
-(define (digits kind bp len)
-  (parser
-   (((d kind) s) (values "INT" (digits_under kind (Buff.store len d) s)))
-   ((s) ep
-    (raise_with_loc (values
-                       (Reloc.shift_pos bp Reloc.zero_loc)
-                       (Reloc.shift_pos ep Reloc.zero_loc))
-       (Failure "ill-formed integer constant")))))
-
-(define (base_number kwt bp len)
-  (parser
-   (((` (or 'b' 'B')) s) (digits binary bp (Buff.store len 'b') s))
-   (((` (or 'o' 'O')) s) (digits octal bp (Buff.store len 'o') s))
-   (((` (or 'x' 'X')) s) (digits hexa bp (Buff.store len 'x') s))
-   (((id (ident (Buff.store 0 '#')))) (identifier kwt id))))
-
-(definerec (operator len)
-  (parser
-   (((` '.')) (Buff.get (Buff.store len '.')))
-   (() (Buff.get len))))
-
-(define (char_or_quote_id x)
-  (parser
-   (((` ''')) (values "CHAR" (String.make 1 x)))
-   ((s) ep
-    (if (List.mem x no_ident)
-        (Stdpp.raise_with_loc (values
-                                 (Reloc.shift_pos (- ep 2) Reloc.zero_loc)
-                                 (Reloc.shift_pos (- ep 1) Reloc.zero_loc))
-         (Stream.Error "bad quote"))
-        (let* ((len (Buff.store (Buff.store 0 ''') x))
-               ((values s dot) (ident len s)))
-          (values (if dot "LIDENTDOT" "LIDENT") s))))))
-
-(definerec (char len)
-  (parser
-   (((` ''')) len)
-   (((` x) s) (char (Buff.store len x) s))))
-
-(define quote
-  (parser
-   (((` '\\') (len (char (Buff.store 0 '\\'))))
-    (values "CHAR" (Buff.get len)))
-   (((` x) s) (char_or_quote_id x s))))
-
-; The system with LIDENTDOT and UIDENTDOT is not great (it would be
-; better to have a token DOT (actually SPACEDOT and DOT)) but it is
-; the only way (that I have found) to have a good behaviour in the
-; toplevel (not expecting tokens after a phrase). Drawbacks: 1/ to be
-; complete, we should have STRINGDOT, RIGHTPARENDOT, and so on 2/ the
-; parser rule with dot is right associative and we have to reverse
-; the resulting tree (using the function leftify).
-; This is a complicated issue: the behaviour of the OCaml toplevel
-; is strange, anyway. For example, even without Camlp4, The OCaml
-; toplevel accepts that:
-;     # let x = 32;; foo bar match let )
-
-(definerec*
-  ((lexer kwt)
-     (parser
-      (((t (lexer0 kwt))
-       (_ no_dot)) t)))
-  (no_dot
-    (parser
-     (((` '.')) ep
-      (Stdpp.raise_with_loc (values
-                               (Reloc.shift_pos (- ep 1) Reloc.zero_loc)
-                               (Reloc.shift_pos ep Reloc.zero_loc))
-         (Stream.Error "bad dot")))
-     (() ())))
-  ((lexer0 kwt)
-    (parser bp
-     (((` (or '\t' '\n' '\r')) s) (lexer0 kwt s))
-     (((` ' ') s) (after_space kwt s))
-     (((` ';') (_ skip_to_eol) s) (lexer kwt s))
-     (((` '(')) (values (values "" "(") (values bp (+ bp 1))))
-     (((` ')') s) ep (values (values "" (rparen s)) (values bp ep)))
-     (((` '[')) (values (values "" "[") (values bp (+ bp 1))))
-     (((` ']')) (values (values "" "]") (values bp (+ bp 1))))
-     (((` '{')) (values (values "" "{") (values bp (+ bp 1))))
-     (((` '}')) (values (values "" "}") (values bp (+ bp 1))))
-     (((` '"') (s (string 0))) ep
-      (values (values "STRING" s) (values bp ep)))
-     (((` ''') (tok quote)) ep (values tok (values bp ep)))
-     (((` '<') (tok (less kwt))) ep (values tok (values bp ep)))
-     (((` '-') (tok (minus kwt))) ep (values tok (values bp ep)))
-     (((` '~') (tok tilde)) ep (values tok (values bp ep)))
-     (((` '?') (tok question)) ep (values tok (values bp ep)))
-     (((` '#') (tok (base_number kwt bp (Buff.store 0 '0')))) ep
-      (values tok (values bp ep)))
-     (((` (as (range '0' '9') c)) (tok (number (Buff.store 0 c)))) ep
-      (values tok (values bp ep)))
-     (((` (as (or '+' '*' '/') c)) (id (operator (Buff.store 0 c)))) ep
-      (values (identifier kwt (values id False)) (values bp ep)))
-     (((` x) (id (ident (Buff.store 0 x)))) ep
-      (values (identifier kwt id) (values bp ep)))
-     (() (values (values "EOI" "") (values bp (+ bp 1))))))
-  (rparen
-   (parser
-    (((` '.')) ").")
-    ((_) ")")))
-  ((after_space kwt)
-    (parser
-     (((` '.')) ep (values (values "" ".") (values (- ep 1) ep)))
-     (((x (lexer0 kwt))) x)))
-  (tilde
-    (parser
-     (((` (as (range 'a' 'z') c)) ((values s dot) (ident (Buff.store 0 c))))
-      (values "TILDEIDENT" s))
-     (() (values "LIDENT" "~"))))
-  (question
-    (parser
-     (((` (as (range 'a' 'z') c)) ((values s dot) (ident (Buff.store 0 c))))
-      (values "QUESTIONIDENT" s))
-     (() (values "LIDENT" "?"))))
-  ((minus kwt)
-    (parser
-     (((` '.')) (identifier kwt (values "-." False)))
-     (((` (as (range '0' '9') c))
-      (n (number (Buff.store (Buff.store 0 '-') c)))) ep n)
-     (((id (ident (Buff.store 0 '-')))) (identifier kwt id))))
-  ((less kwt)
-    (parser
-     (((` ':') (lab (label 0)) (? (` '<') "'<' expected") (q (quotation 0)))
-      (values "QUOT" (^ lab ":" q)))
-     (((id (ident (Buff.store 0 '<')))) (identifier kwt id))))
-  ((label len)
-    (parser
-     (((` (as (or (range 'a' 'z') (range 'A' 'Z') '_') c)) s)
-      (label (Buff.store len c) s))
-     (() (Buff.get len))))
-  ((quotation len)
-    (parser
-     (((` '>') s) (quotation_greater len s))
-     (((` x) s) (quotation (Buff.store len x) s))
-     (() (failwith "quotation not terminated"))))
-  ((quotation_greater len)
-    (parser
-     (((` '>')) (Buff.get len))
-     (((a (quotation (Buff.store len '>')))) a))))
-
-(define (lexer_using kwt (values con prm))
-  (match con
-   ((or "CHAR" "EOI" "INT" "FLOAT" "LIDENT" "LIDENTDOT" "QUESTIONIDENT"
-     "QUOT" "STRING" "TILDEIDENT" "UIDENT" "UIDENTDOT")
-    ())
-   ("ANTIQUOT" ())
-   ("" (try (Hashtbl.find kwt prm) (Not_found (Hashtbl.add kwt prm ()))))
-   (_
-    (raise
-     (Token.Error
-      (^ "the constructor \"" con "\" is not recognized by Plexer"))))))
-
-(define (lexer_text (values con prm))
-  (cond
-   ((= con "") (^ "'"prm "'"))
-   ((= prm "") con)
-   (else (^ con " \"" prm "\""))))
-
-(define (lexer_gmake ())
-  (let ((kwt (Hashtbl.create 89)))
-     {(Token.tok_func
-       (Token.lexer_func_of_parser
-        (lambda (s)
-          (let (((values r (values bp ep)) (lexer kwt s)))
-            (values r (values (Reloc.shift_pos bp Reloc.zero_loc)
-                              (Reloc.shift_pos ep Reloc.zero_loc)))))))
-      (Token.tok_using (lexer_using kwt))
-      (Token.tok_removing (lambda))
-      (Token.tok_match Token.default_match)
-      (Token.tok_text lexer_text)
-      (Token.tok_comm None)}))
-
-; Building AST
-
-(type sexpr
-  (sum
-   (Sacc MLast.loc sexpr sexpr)
-   (Schar MLast.loc string)
-   (Sexpr MLast.loc (list sexpr))
-   (Sint MLast.loc string)
-   (Sfloat MLast.loc string)
-   (Slid MLast.loc string)
-   (Slist MLast.loc (list sexpr))
-   (Sqid MLast.loc string)
-   (Squot MLast.loc string string)
-   (Srec MLast.loc (list sexpr))
-   (Sstring MLast.loc string)
-   (Stid MLast.loc string)
-   (Suid MLast.loc string)))
-
-(define loc_of_sexpr
-  (lambda_match
-   ((or (Sacc loc _ _) (Schar loc _) (Sexpr loc _) (Sint loc _)
-     (Sfloat loc _) (Slid loc _) (Slist loc _) (Sqid loc _) (Squot loc _ _)
-     (Srec loc _) (Sstring loc _) (Stid loc _) (Suid loc _))
-    loc)))
-(define (error_loc loc err)
-  (raise_with_loc loc (Stream.Error (^ err " expected"))))
-(define (error se err) (error_loc (loc_of_sexpr se) err))
-
-(define strm_n "strm__")
-(define (peek_fun loc) <:expr< Stream.peek >>)
-(define (junk_fun loc) <:expr< Stream.junk >>)
-
-(define assoc_left_parsed_op_list ["+" "*" "+." "*." "land" "lor" "lxor"])
-(define assoc_right_parsed_op_list ["and" "or" "^" "@"])
-(define and_by_couple_op_list ["=" "<>" "<" ">" "<=" ">=" "==" "!="])
-
-(define (op_apply loc e1 e2)
-  (lambda_match
-   ("and" <:expr< $e1$ && $e2$ >>)
-   ("or" <:expr< $e1$ || $e2$ >>)
-   (x <:expr< $lid:x$ $e1$ $e2$ >>)))
-
-(define string_se
-  (lambda_match
-     ((Sstring loc s) s)
-     (se (error se "string"))))
-
-(define mod_ident_se
-  (lambda_match
-   ((Suid _ s) [(Pcaml.rename_id.val s)])
-   ((Slid _ s) [(Pcaml.rename_id.val s)])
-   (se (error se "mod_ident"))))
-
-(define (lident_expr loc s)
-  (if (&& (> (String.length s) 1) (= s.[0] '`'))
-     (let ((s (String.sub s 1 (- (String.length s) 1))))
-        <:expr< ` $s$ >>)
-     <:expr< $lid:(Pcaml.rename_id.val s)$ >>))
-
-(definerec*
-  (module_expr_se
-    (lambda_match
-     ((Sexpr loc [(Slid _ "functor") (Suid _ s) se1 se2])
-      (let* ((s (Pcaml.rename_id.val s))
-             (mt (module_type_se se1))
-             (me (module_expr_se se2)))
-         <:module_expr< functor ($s$ : $mt$) -> $me$ >>))
-     ((Sexpr loc [(Slid _ "struct") . sl])
-      (let ((mel (List.map str_item_se sl)))
-         <:module_expr< struct $list:mel$ end >>))
-     ((Sexpr loc [se1 se2])
-      (let* ((me1 (module_expr_se se1))
-             (me2 (module_expr_se se2)))
-         <:module_expr< $me1$ $me2$ >>))
-     ((Suid loc s) <:module_expr< $uid:(Pcaml.rename_id.val s)$ >>)
-     (se (error se "module expr"))))
-  (module_type_se
-    (lambda_match
-     ((Sexpr loc [(Slid _ "functor") (Suid _ s) se1 se2])
-      (let* ((s (Pcaml.rename_id.val s))
-             (mt1 (module_type_se se1))
-             (mt2 (module_type_se se2)))
-         <:module_type< functor ($s$ : $mt1$) -> $mt2$ >>))
-     ((Sexpr loc [(Slid _ "sig") . sel])
-      (let ((sil (List.map sig_item_se sel)))
-         <:module_type< sig $list:sil$ end >>))
-     ((Sexpr loc [(Slid _ "with") se (Sexpr _ sel)])
-      (let* ((mt (module_type_se se))
-             (wcl (List.map with_constr_se sel)))
-         <:module_type< $mt$ with $list:wcl$ >>))
-     ((Suid loc s) <:module_type< $uid:(Pcaml.rename_id.val s)$ >>)
-     (se (error se "module type"))))
-  (with_constr_se
-    (lambda_match
-     ((Sexpr loc [(Slid _ "type") se1 se2])
-      (let* ((tn (mod_ident_se se1))
-             (te (ctyp_se se2)))
-         (MLast.WcTyp loc tn [] te)))
-     (se (error se "with constr"))))
-  (sig_item_se
-    (lambda_match
-     ((Sexpr loc [(Slid _ "type") . sel])
-      (let ((tdl (type_declaration_list_se sel)))
-         <:sig_item< type $list:tdl$ >>))
-     ((Sexpr loc [(Slid _ "exception") (Suid _ c) . sel])
-      (let* ((c (Pcaml.rename_id.val c))
-             (tl (List.map ctyp_se sel)))
-         <:sig_item< exception $c$ of $list:tl$ >>))
-     ((Sexpr loc [(Slid _ "value") (Slid _ s) se])
-      (let* ((s (Pcaml.rename_id.val s))
-             (t (ctyp_se se)))
-         <:sig_item< value $s$ : $t$ >>))
-     ((Sexpr loc [(Slid _ "external") (Slid _ i) se . sel])
-      (let* ((i (Pcaml.rename_id.val i))
-             (pd (List.map string_se sel))
-             (t (ctyp_se se)))
-         <:sig_item< external $i$ : $t$ = $list:pd$ >>))
-     ((Sexpr loc [(Slid _ "module") (Suid _ s) se])
-      (let* ((s (Pcaml.rename_id.val s))
-             (mb (module_type_se se)))
-         <:sig_item< module $s$ : $mb$ >>))
-     ((Sexpr loc [(Slid _ "moduletype") (Suid _ s) se])
-      (let* ((s (Pcaml.rename_id.val s))
-             (mt (module_type_se se)))
-         <:sig_item< module type $s$ = $mt$ >>))
-     (se (error se "sig item"))))
-  ((str_item_se se)
-    (match se
-     ((Sexpr loc [(Slid _ "open") se])
-      (let ((s (mod_ident_se se))) <:str_item< open $s$ >>))
-     ((Sexpr loc [(Slid _ "type") . sel])
-      (let ((tdl (type_declaration_list_se sel)))
-         <:str_item< type $list:tdl$ >>))
-     ((Sexpr loc [(Slid _ "exception") (Suid _ c) . sel])
-      (let* ((c (Pcaml.rename_id.val c))
-             (tl (List.map ctyp_se sel)))
-         <:str_item< exception $c$ of $list:tl$ >>))
-     ((Sexpr loc [(Slid _ (as (or "define" "definerec") r)) se . sel])
-      (let* ((r (= r "definerec"))
-             ((values p e) (fun_binding_se se (begin_se loc sel))))
-         <:str_item< value $opt:r$ $p$ = $e$ >>))
-     ((Sexpr loc [(Slid _ (as (or "define*" "definerec*") r)) . sel])
-      (let* ((r (= r "definerec*"))
-             (lbs (List.map let_binding_se sel)))
-         <:str_item< value $opt:r$ $list:lbs$ >>))
-     ((Sexpr loc [(Slid _ "external") (Slid _ i) se . sel])
-      (let* ((i (Pcaml.rename_id.val i))
-             (pd (List.map string_se sel))
-             (t (ctyp_se se)))
-         <:str_item< external $i$ : $t$ = $list:pd$ >>))
-     ((Sexpr loc [(Slid _ "module") (Suid _ i) se])
-      (let* ((i (Pcaml.rename_id.val i))
-             (mb (module_binding_se se)))
-         <:str_item< module $i$ = $mb$ >>))
-     ((Sexpr loc [(Slid _ "moduletype") (Suid _ s) se])
-      (let* ((s (Pcaml.rename_id.val s))
-             (mt (module_type_se se)))
-         <:str_item< module type $s$ = $mt$ >>))
-     (_
-      (let* ((loc (loc_of_sexpr se))
-             (e (expr_se se)))
-         <:str_item< $exp:e$ >>))))
-  ((module_binding_se se) (module_expr_se se))
-  (expr_se
-    (lambda_match
-     ((Sacc loc se1 se2)
-      (let ((e1 (expr_se se1)))
-         (match se2
-          ((Slist loc [se2])
-           (let ((e2 (expr_se se2))) <:expr< $e1$ .[ $e2$ ] >>))
-          ((Sexpr loc [se2])
-           (let ((e2 (expr_se se2))) <:expr< $e1$ .( $e2$ ) >>))
-          (_ (let ((e2 (expr_se se2))) <:expr< $e1$ . $e2$ >>)))))
-     ((Slid loc s) (lident_expr loc s))
-     ((Suid loc s) <:expr< $uid:(Pcaml.rename_id.val s)$ >>)
-     ((Sint loc s) <:expr< $int:s$ >>)
-     ((Sfloat loc s) <:expr< $flo:s$ >>)
-     ((Schar loc s) <:expr< $chr:s$ >>)
-     ((Sstring loc s) <:expr< $str:s$ >>)
-     ((Stid loc s) <:expr< ~ $(Pcaml.rename_id.val s)$ >>)
-     ((Sqid loc s) <:expr< ? $(Pcaml.rename_id.val s)$ >>)
-     ((Sexpr loc []) <:expr< () >>)
-     ((when (Sexpr loc [(Slid _ s) e1 . (as [_ . _] sel)])
-      (List.mem s assoc_left_parsed_op_list))
-      (letrec
-       (((loop e1)
-          (lambda_match
-           ([] e1)
-           ([e2 . el] (loop (op_apply loc e1 e2 s) el)))))
-       (loop (expr_se e1) (List.map expr_se sel))))
-     ((when (Sexpr loc [(Slid _ s) . (as [_ _ . _] sel)])
-      (List.mem s assoc_right_parsed_op_list))
-      (letrec
-       ((loop
-          (lambda_match
-           ([]
-            (assert False))
-           ([e1] e1)
-           ([e1 . el] (let ((e2 (loop el))) (op_apply loc e1 e2 s))))))
-       (loop (List.map expr_se sel))))
-     ((when (Sexpr loc [(Slid _ s) . (as [_ _ . _] sel)])
-      (List.mem s and_by_couple_op_list))
-      (letrec
-       ((loop
-          (lambda_match
-           ((or [] [_]) (assert False))
-           ([e1 e2] <:expr< $lid:s$ $e1$ $e2$ >>)
-           ([e1 . (as [e2 _ . _] el)]
-            (let* ((a1 (op_apply loc e1 e2 s))
-                   (a2 (loop el)))
-               <:expr< $a1$ && $a2$ >>)))))
-       (loop (List.map expr_se sel))))
-     ((Sexpr loc [(Stid _ s) se])
-      (let ((e (expr_se se))) <:expr< ~ $s$ : $e$ >>))
-     ((Sexpr loc [(Slid _ "-") se])
-      (let ((e (expr_se se))) <:expr< - $e$ >>))
-     ((Sexpr loc [(Slid _ "if") se se1])
-      (let* ((e (expr_se se))
-             (e1 (expr_se se1)))
-         <:expr< if $e$ then $e1$ else () >>))
-     ((Sexpr loc [(Slid _ "if") se se1 se2])
-      (let* ((e (expr_se se))
-             (e1 (expr_se se1))
-             (e2 (expr_se se2)))
-         <:expr< if $e$ then $e1$ else $e2$ >>))
-     ((Sexpr loc [(Slid _ "cond") . sel])
-      (letrec
-       ((loop
-          (lambda_match
-           ([(Sexpr loc [(Slid _ "else") . sel])] (begin_se loc sel))
-           ([(Sexpr loc [se1 . sel1]) . sel]
-            (let* ((e1 (expr_se se1))
-                   (e2 (begin_se loc sel1))
-                   (e3 (loop sel)))
-               <:expr< if $e1$ then $e2$ else $e3$ >>))
-           ([] <:expr< () >>)
-           ([se . _] (error se "cond clause")))))
-       (loop sel)))
-     ((Sexpr loc [(Slid _ "while") se . sel])
-      (let* ((e (expr_se se))
-             (el (List.map expr_se sel)))
-         <:expr< while $e$ do { $list:el$ } >>))
-     ((Sexpr loc [(Slid _ "for") (Slid _ i) se1 se2 . sel])
-      (let* ((i (Pcaml.rename_id.val i))
-             (e1 (expr_se se1))
-             (e2 (expr_se se2))
-             (el (List.map expr_se sel)))
-         <:expr< for $i$ = $e1$ to $e2$ do { $list:el$ } >>))
-     ((Sexpr loc [(Slid loc1 "lambda")]) <:expr< fun [] >>)
-     ((Sexpr loc [(Slid loc1 "lambda") sep . sel])
-      (let ((e (begin_se loc1 sel)))
-         (match (ipatt_opt_se sep)
-          ((Left p) <:expr< fun $p$ -> $e$ >>)
-          ((Right (values se sel))
-           (List.fold_right
-            (lambda (se e)
-              (let ((p (ipatt_se se))) <:expr< fun $p$ -> $e$ >>))
-            [se . sel] e)))))
-     ((Sexpr loc [(Slid _ "lambda_match") . sel])
-      (let ((pel (List.map (match_case loc) sel)))
-         <:expr< fun [ $list:pel$ ] >>))
-     ((Sexpr loc [(Slid _ (as (or "let" "letrec") r)) . sel])
-      (match sel
-       ([(Sexpr _ sel1) . sel2]
-        (let* ((r (= r "letrec"))
-               (lbs (List.map let_binding_se sel1))
-               (e (begin_se loc sel2)))
-           <:expr< let $opt:r$ $list:lbs$ in $e$ >>))
-       ([(Slid _ n) (Sexpr _ sl) . sel]
-        (let* ((n (Pcaml.rename_id.val n))
-               ((values pl el)
-                 (List.fold_right
-                  (lambda (se (values pl el))
-                    (match se
-                           ((Sexpr _ [se1 se2])
-                            (values [(patt_se se1) . pl]
-                                    [(expr_se se2) . el]))
-                           (se (error se "named let"))))
-                  sl (values [] [])))
-               (e1
-                 (List.fold_right
-                  (lambda (p e) <:expr< fun $p$ -> $e$ >>)
-                  pl (begin_se loc sel)))
-               (e2
-                 (List.fold_left
-                  (lambda (e1 e2) <:expr< $e1$ $e2$ >>)
-                  <:expr< $lid:n$ >> el)))
-           <:expr< let rec $lid:n$ = $e1$ in $e2$ >>))
-       ([se . _] (error se "let_binding"))
-       (_ (error_loc loc "let_binding"))))
-     ((Sexpr loc [(Slid _ "let*") . sel])
-      (match sel
-       ([(Sexpr _ sel1) . sel2]
-        (List.fold_right
-         (lambda (se ek)
-           (let (((values p e) (let_binding_se se)))
-              <:expr< let $p$ = $e$ in $ek$ >>))
-         sel1 (begin_se loc sel2)))
-       ([se . _] (error se "let_binding"))
-       (_ (error_loc loc "let_binding"))))
-     ((Sexpr loc [(Slid _ "match") se . sel])
-      (let* ((e (expr_se se))
-             (pel (List.map (match_case loc) sel)))
-         <:expr< match $e$ with [ $list:pel$ ] >>))
-     ((Sexpr loc [(Slid _ "parser") . sel])
-      (let ((e
-              (match sel
-               ([(as (Slid _ _) se) . sel]
-                (let* ((p (patt_se se))
-                       (pc (parser_cases_se loc sel)))
-                   <:expr< let $p$ = Stream.count $lid:strm_n$ in $pc$ >>))
-               (_ (parser_cases_se loc sel)))))
-         <:expr< fun ($lid:strm_n$ : Stream.t _) -> $e$ >>))
-     ((Sexpr loc [(Slid _ "match_with_parser") se . sel])
-      (let* ((me (expr_se se))
-             ((values bpo sel)
-               (match sel
-                ([(as (Slid _ _) se) . sel] (values (Some (patt_se se)) sel))
-                (_ (values None sel))))
-             (pc (parser_cases_se loc sel))
-             (e
-               (match bpo
-                ((Some bp)
-                 <:expr< let $bp$ = Stream.count $lid:strm_n$ in $pc$ >>)
-                (None pc))))
-         (match me
-          ((when <:expr< $lid:x$ >> (= x strm_n)) e)
-          (_ <:expr< let ($lid:strm_n$ : Stream.t _) = $me$ in $e$ >>))))
-     ((Sexpr loc [(Slid _ "try") se . sel])
-      (let* ((e (expr_se se))
-             (pel (List.map (match_case loc) sel)))
-         <:expr< try $e$ with [ $list:pel$ ] >>))
-     ((Sexpr loc [(Slid _ "begin") . sel])
-      (let ((el (List.map expr_se sel))) <:expr< do { $list:el$ } >>))
-     ((Sexpr loc [(Slid _ ":=") se1 se2])
-      (let* ((e1 (expr_se se1))
-             (e2 (expr_se se2)))
-         <:expr< $e1$ := $e2$ >>))
-     ((Sexpr loc [(Slid _ "values") . sel])
-      (let ((el (List.map expr_se sel))) <:expr< ( $list:el$ ) >>))
-     ((Srec loc [(Slid _ "with") se . sel])
-      (let* ((e (expr_se se))
-             (lel (List.map (label_expr_se loc) sel)))
-         <:expr< { ($e$) with $list:lel$ } >>))
-     ((Srec loc sel)
-      (let ((lel (List.map (label_expr_se loc) sel)))
-         <:expr< { $list:lel$ } >>))
-     ((Sexpr loc [(Slid _ ":") se1 se2])
-      (let* ((e (expr_se se1)) (t (ctyp_se se2))) <:expr< ( $e$ : $t$ ) >>))
-     ((Sexpr loc [se]) (let ((e (expr_se se))) <:expr< $e$ () >>))
-     ((Sexpr loc [(Slid _ "assert") (Suid _ "False")])
-        <:expr< assert False >>)
-     ((Sexpr loc [(Slid _ "assert") se])
-        (let ((e (expr_se se))) <:expr< assert $e$ >>))
-     ((Sexpr loc [(Slid _ "lazy") se])
-        (let ((e (expr_se se))) <:expr< lazy $e$ >>))
-     ((Sexpr loc [se . sel])
-      (List.fold_left
-       (lambda (e se) (let ((e1 (expr_se se))) <:expr< $e$ $e1$ >>))
-       (expr_se se) sel))
-     ((Slist loc sel)
-      (letrec ((loop
-                 (lambda_match
-                  ([] <:expr< [] >>)
-                  ([se1 (Slid _ ".") se2]
-                   (let* ((e (expr_se se1))
-                          (el (expr_se se2)))
-                     <:expr< [$e$ :: $el$] >>))
-                  ([se . sel]
-                   (let* ((e (expr_se se))
-                          (el (loop sel)))
-                     <:expr< [$e$ :: $el$] >>)))))
-           (loop sel)))
-     ((Squot loc typ txt)
-      (Pcaml.handle_expr_quotation loc (values typ txt)))))
-  ((begin_se loc)
-   (lambda_match
-    ([] <:expr< () >>)
-    ([se] (expr_se se))
-    ((sel)
-      (let* ((el (List.map expr_se sel))
-             (loc (values (fst (loc_of_sexpr (List.hd sel))) (snd loc))))
-         <:expr< do { $list:el$ } >>))))
-  (let_binding_se
-   (lambda_match
-    ((Sexpr loc [se . sel])
-       (let ((e (begin_se loc sel)))
-         (match (ipatt_opt_se se)
-           ((Left p) (values p e))
-           ((Right _) (fun_binding_se se e)))))
-    (se (error se "let_binding"))))
-  ((fun_binding_se se e)
-   (match se
-          ((Sexpr _ [(Slid _ "values") . _]) (values (ipatt_se se) e))
-          ((Sexpr _ [(Slid loc s) . sel])
-           (let* ((s (Pcaml.rename_id.val s))
-                  (e
-                   (List.fold_right
-                    (lambda (se e)
-                      (let* ((loc
-                              (values (fst (loc_of_sexpr se))
-                                      (snd (MLast.loc_of_expr e))))
-                             (p (ipatt_se se)))
-                        <:expr< fun $p$ -> $e$ >>))
-                    sel e))
-                  (p <:patt< $lid:s$ >>))
-             (values p e)))
-          ((_) (values (ipatt_se se) e))))
-  ((match_case loc)
-   (lambda_match
-    ((Sexpr loc [(Sexpr _ [(Slid _ "when") se sew]) . sel])
-     (values (patt_se se) (Some (expr_se sew)) (begin_se loc sel)))
-    ((Sexpr loc [se . sel])
-     (values (patt_se se) None (begin_se loc sel)))
-    (se (error se "match_case"))))
-  ((label_expr_se loc)
-   (lambda_match
-    ((Sexpr _ [se1 se2]) (values (patt_se se1) (expr_se se2)))
-    (se (error se "label_expr"))))
-  ((label_patt_se loc)
-   (lambda_match
-    ((Sexpr _ [se1 se2]) (values (patt_se se1) (patt_se se2)))
-    (se (error se "label_patt"))))
-  ((parser_cases_se loc)
-   (lambda_match
-    ([] <:expr< raise Stream.Failure >>)
-    ([(Sexpr loc [(Sexpr _ spsel) . act]) . sel]
-      (let* ((ekont (lambda _ (parser_cases_se loc sel)))
-             (act (match act
-                         ([se] (expr_se se))
-                         ([sep se]
-                               (let* ((p (patt_se sep))
-                                      (e (expr_se se)))
-                        <:expr< let $p$ = Stream.count $lid:strm_n$ in $e$ >>))
-                         (_ (error_loc loc "parser_case")))))
-        (stream_pattern_se loc act ekont spsel)))
-    ([se . _]
-         (error se "parser_case"))))
-  ((stream_pattern_se loc act ekont)
-   (lambda_match
-    ([] act)
-    ([se . sel]
-         (let* ((ckont (lambda err <:expr< raise (Stream.Error $err$) >>))
-                (skont (stream_pattern_se loc act ckont sel)))
-           (stream_pattern_component skont ekont <:expr< "" >> se)))))
-  ((stream_pattern_component skont ekont err)
-   (lambda_match
-    ((Sexpr loc [(Slid _ "`") se . wol])
-     (let* ((wo (match wol
-                       ([se] (Some (expr_se se)))
-                       ([] None)
-                       (_ (error_loc loc "stream_pattern_component"))))
-            (e (peek_fun loc))
-            (p (patt_se se))
-            (j (junk_fun loc))
-            (k (ekont err)))
-       <:expr< match $e$ $lid:strm_n$ with
-               [ Some $p$ $when:wo$ -> do { $j$ $lid:strm_n$ ; $skont$ }
-               | _ -> $k$ ] >>))
-    ((Sexpr loc [se1 se2])
-     (let* ((p (patt_se se1))
-            (e (let ((e (expr_se se2)))
-       <:expr< try Some ($e$ $lid:strm_n$) with [ Stream.Failure -> None ] >>))
-            (k (ekont err)))
-       <:expr< match $e$ with [ Some $p$ -> $skont$ | _ -> $k$ ] >>))
-    ((Sexpr loc [(Slid _ "?") se1 se2])
-     (stream_pattern_component skont ekont (expr_se se2) se1))
-    ((Slid loc s)
-     (let ((s (Pcaml.rename_id.val s)))
-        <:expr< let $lid:s$ = $lid:strm_n$ in $skont$ >>))
-    (se
-     (error se "stream_pattern_component"))))
-  (patt_se
-   (lambda_match
-    ((Sacc loc se1 se2)
-     (let* ((p1 (patt_se se1)) (p2 (patt_se se2))) <:patt< $p1$ . $p2$ >>))
-    ((Slid loc "_") <:patt< _ >>)
-    ((Slid loc s) <:patt< $lid:(Pcaml.rename_id.val s)$ >>)
-    ((Suid loc s) <:patt< $uid:(Pcaml.rename_id.val s)$ >>)
-    ((Sint loc s) <:patt< $int:s$ >>)
-    ((Sfloat loc s) <:patt< $flo:s$ >>)
-    ((Schar loc s) <:patt< $chr:s$ >>)
-    ((Sstring loc s) <:patt< $str:s$ >>)
-    ((Stid loc _) (error_loc loc "patt"))
-    ((Sqid loc _) (error_loc loc "patt"))
-    ((Srec loc sel)
-     (let ((lpl (List.map (label_patt_se loc) sel)))
-        <:patt< { $list:lpl$ } >>))
-    ((Sexpr loc [(Slid _ ":") se1 se2])
-     (let* ((p (patt_se se1)) (t (ctyp_se se2))) <:patt< ($p$ : $t$) >>))
-    ((Sexpr loc [(Slid _ "or") se . sel])
-     (List.fold_left
-      (lambda (p se) (let ((p1 (patt_se se))) <:patt< $p$ | $p1$ >>))
-      (patt_se se) sel))
-    ((Sexpr loc [(Slid _ "range") se1 se2])
-     (let* ((p1 (patt_se se1)) (p2 (patt_se se2))) <:patt< $p1$ .. $p2$ >>))
-    ((Sexpr loc [(Slid _ "values") . sel])
-     (let ((pl (List.map patt_se sel))) <:patt< ( $list:pl$ ) >>))
-    ((Sexpr loc [(Slid _ "as") se1 se2])
-     (let* ((p1 (patt_se se1))
-            (p2 (patt_se se2)))
-       <:patt< ($p1$ as $p2$) >>))
-    ((Sexpr loc [se . sel])
-     (List.fold_left
-      (lambda (p se) (let ((p1 (patt_se se))) <:patt< $p$ $p1$ >>))
-      (patt_se se) sel))
-    ((Sexpr loc []) <:patt< () >>)
-    ((Slist loc sel)
-     (letrec ((loop
-                (lambda_match
-                 ([] <:patt< [] >>)
-                 ([se1 (Slid _ ".") se2]
-                  (let* ((p (patt_se se1))
-                         (pl (patt_se se2)))
-                    <:patt< [$p$ :: $pl$] >>))
-                 ([se . sel]
-                  (let* ((p (patt_se se))
-                         (pl (loop sel)))
-                    <:patt< [$p$ :: $pl$] >>)))))
-          (loop sel)))
-    ((Squot loc typ txt)
-     (Pcaml.handle_patt_quotation loc (values typ txt)))))
-  ((ipatt_se se)
-   (match (ipatt_opt_se se)
-          ((Left p) p)
-          ((Right (values se _)) (error se "ipatt"))))
-  (ipatt_opt_se
-   (lambda_match
-    ((Slid loc "_") (Left <:patt< _ >>))
-    ((Slid loc s) (Left <:patt< $lid:(Pcaml.rename_id.val s)$ >>))
-    ((Stid loc s) (Left <:patt< ~ $(Pcaml.rename_id.val s)$ >>))
-    ((Sqid loc s) (Left <:patt< ? $(Pcaml.rename_id.val s)$ >>))
-    ((Sexpr loc [(Sqid _ s) se])
-     (let* ((s (Pcaml.rename_id.val s))
-            (e (expr_se se)))
-        (Left <:patt< ? ( $lid:s$ = $e$ ) >>)))
-    ((Sexpr loc [(Slid _ ":") se1 se2])
-     (let* ((p (ipatt_se se1)) (t (ctyp_se se2)))
-        (Left <:patt< ($p$ : $t$) >>)))
-    ((Sexpr loc [(Slid _ "values") . sel])
-     (let ((pl (List.map ipatt_se sel))) (Left <:patt< ( $list:pl$ ) >>)))
-    ((Sexpr loc []) (Left <:patt< () >>))
-    ((Sexpr loc [se . sel]) (Right (values se sel)))
-    (se (error se "ipatt"))))
-  (type_declaration_list_se
-   (lambda_match
-    ([se1 se2 . sel]
-     (let (((values n1 loc1 tpl)
-            (match se1
-                   ((Sexpr _ [(Slid loc n) . sel])
-                    (values n loc (List.map type_parameter_se sel)))
-                   ((Slid loc n)
-                    (values n loc []))
-                   ((se)
-                    (error se "type declaration")))))
-       [(values (values loc1 (Pcaml.rename_id.val n1)) tpl (ctyp_se se2) []) .
-        (type_declaration_list_se sel)]))
-    ([] [])
-    ([se . _] (error se "type_declaration"))))
-  (type_parameter_se
-   (lambda_match
-    ((when (Slid _ s) (and (>= (String.length s) 2) (= s.[0] ''')))
-     (values (String.sub s 1 (- (String.length s) 1)) (values False False)))
-    (se
-     (error se "type_parameter"))))
-  (ctyp_se
-   (lambda_match
-    ((Sexpr loc [(Slid _ "sum") . sel])
-     (let ((cdl (List.map constructor_declaration_se sel)))
-       <:ctyp< [ $list:cdl$ ] >>))
-    ((Srec loc sel)
-     (let ((ldl (List.map label_declaration_se sel)))
-       <:ctyp< { $list:ldl$ } >>))
-    ((Sexpr loc [(Slid _ "->") . (as [_ _ . _] sel)])
-     (letrec
-        ((loop
-            (lambda_match
-             ([] (assert False))
-             ([se] (ctyp_se se))
-             ([se . sel]
-               (let* ((t1 (ctyp_se se))
-                      (loc (values (fst (loc_of_sexpr se)) (snd loc)))
-                      (t2 (loop sel)))
-                   <:ctyp< $t1$ -> $t2$ >>)))))
-        (loop sel)))
-    ((Sexpr loc [(Slid _ "*") . sel])
-     (let ((tl (List.map ctyp_se sel))) <:ctyp< ($list:tl$) >>))
-    ((Sexpr loc [se . sel])
-     (List.fold_left
-      (lambda (t se) (let ((t2 (ctyp_se se))) <:ctyp< $t$ $t2$ >>))
-      (ctyp_se se) sel))
-    ((Sacc loc se1 se2)
-     (let* ((t1 (ctyp_se se1)) (t2 (ctyp_se se2))) <:ctyp< $t1$ . $t2$ >>))
-    ((Slid loc "_") <:ctyp< _ >>)
-    ((Slid loc s)
-     (if (= s.[0] ''')
-         (let ((s (String.sub s 1 (- (String.length s) 1))))
-           <:ctyp< '$s$ >>)
-         <:ctyp< $lid:(Pcaml.rename_id.val s)$ >>))
-    ((Suid loc s) <:ctyp< $uid:(Pcaml.rename_id.val s)$ >>)
-    (se (error se "ctyp"))))
-  (constructor_declaration_se
-   (lambda_match
-    ((Sexpr loc [(Suid _ ci) . sel])
-     (values loc (Pcaml.rename_id.val ci) (List.map ctyp_se sel)))
-    (se
-     (error se "constructor_declaration"))))
-  (label_declaration_se
-   (lambda_match
-    ((Sexpr loc [(Slid _ lab) (Slid _ "mutable") se])
-     (values loc (Pcaml.rename_id.val lab) True (ctyp_se se)))
-    ((Sexpr loc [(Slid _ lab) se])
-     (values loc (Pcaml.rename_id.val lab) False (ctyp_se se)))
-    (se
-     (error se "label_declaration")))))
-
-(define directive_se
-  (lambda_match
-   ((Sexpr _ [(Slid _ s)]) (values s None))
-   ((Sexpr _ [(Slid _ s) se]) (let ((e (expr_se se))) (values s (Some e))))
-   (se (error se "directive"))))
-
-; Parser
-
-(:= Pcaml.syntax_name.val "Scheme")
-(:= Pcaml.no_constructors_arity.val False)
-
-(begin
- (Grammar.Unsafe.gram_reinit gram (lexer_gmake ()))
- (Grammar.Unsafe.clear_entry interf)
- (Grammar.Unsafe.clear_entry implem)
- (Grammar.Unsafe.clear_entry top_phrase)
- (Grammar.Unsafe.clear_entry use_file)
- (Grammar.Unsafe.clear_entry module_type)
- (Grammar.Unsafe.clear_entry module_expr)
- (Grammar.Unsafe.clear_entry sig_item)
- (Grammar.Unsafe.clear_entry str_item)
- (Grammar.Unsafe.clear_entry expr)
- (Grammar.Unsafe.clear_entry patt)
- (Grammar.Unsafe.clear_entry ctyp)
- (Grammar.Unsafe.clear_entry let_binding)
- (Grammar.Unsafe.clear_entry type_declaration)
- (Grammar.Unsafe.clear_entry class_type)
- (Grammar.Unsafe.clear_entry class_expr)
- (Grammar.Unsafe.clear_entry class_sig_item)
- (Grammar.Unsafe.clear_entry class_str_item))
-
-(:= Pcaml.parse_interf.val (Grammar.Entry.parse interf))
-(:= Pcaml.parse_implem.val (Grammar.Entry.parse implem))
-
-(define sexpr (Grammar.Entry.create gram "sexpr"))
-
-(definerec leftify
-  (lambda_match
-    ((Sacc loc1 se1 se2)
-     (match (leftify se2)
-       ((Sacc loc2 se2 se3) (Sacc loc1 (Sacc loc2 se1 se2) se3))
-       (se2 (Sacc loc1 se1 se2))))
-    (x x)))
-
-EXTEND
-  GLOBAL : implem interf top_phrase use_file str_item sig_item expr
-    patt sexpr /
-  implem :
-    [ [ "#" / se = sexpr ->
-          (let (((values n dp) (directive_se se)))
-             (values [(values <:str_item< # $n$ $opt:dp$ >> loc)] True))
-      | si = str_item / x = SELF ->
-          (let* (((values sil stopped) x)
-                 (loc (MLast.loc_of_str_item si)))
-             (values [(values si loc) . sil] stopped))
-      | EOI -> (values [] False) ] ]
-  /
-  interf :
-    [ [ "#" / se = sexpr ->
-          (let (((values n dp) (directive_se se)))
-             (values [(values <:sig_item< # $n$ $opt:dp$ >> loc)] True))
-      | si = sig_item / x = SELF ->
-          (let* (((values sil stopped) x)
-                 (loc (MLast.loc_of_sig_item si)))
-             (values [(values si loc) . sil] stopped))
-      | EOI -> (values [] False) ] ]
-  /
-  top_phrase :
-    [ [ "#" / se = sexpr ->
-          (let (((values n dp) (directive_se se)))
-             (Some <:str_item< # $n$ $opt:dp$ >>))
-      | se = sexpr -> (Some (str_item_se se))
-      | EOI -> None ] ]
-  /
-  use_file :
-    [ [ "#" / se = sexpr ->
-          (let (((values n dp) (directive_se se)))
-             (values [<:str_item< # $n$ $opt:dp$ >>] True))
-      | si = str_item / x = SELF ->
-          (let (((values sil stopped) x)) (values [si . sil] stopped))
-      | EOI -> (values [] False) ] ]
-  /
-  str_item :
-    [ [ se = sexpr -> (str_item_se se)
-      | e = expr -> <:str_item< $exp:e$ >> ] ]
-  /
-  sig_item :
-    [ [ se = sexpr -> (sig_item_se se) ] ]
-  /
-  expr :
-    [ "top"
-      [ se = sexpr -> (expr_se se) ] ]
-  /
-  patt :
-    [ [ se = sexpr -> (patt_se se) ] ]
-  /
-  sexpr :
-    [ [ se1 = sexpr_dot / se2 = sexpr -> (leftify (Sacc loc se1 se2)) ]
-    | [ "(" / sl = LIST0 sexpr / ")" -> (Sexpr loc sl)
-      | "(" / sl = LIST0 sexpr / ")." / se = sexpr ->
-          (leftify (Sacc loc (Sexpr loc sl) se))
-      | "[" / sl = LIST0 sexpr / "]" -> (Slist loc sl)
-      | "{" / sl = LIST0 sexpr / "}" -> (Srec loc sl)
-      | a = pa_extend_keyword -> (Slid loc a)
-      | s = LIDENT -> (Slid loc s)
-      | s = UIDENT -> (Suid loc s)
-      | s = TILDEIDENT -> (Stid loc s)
-      | s = QUESTIONIDENT -> (Sqid loc s)
-      | s = INT -> (Sint loc s)
-      | s = FLOAT -> (Sfloat loc s)
-      | s = CHAR -> (Schar loc s)
-      | s = STRING -> (Sstring loc s)
-      | s = QUOT ->
-          (let* ((i (String.index s ':'))
-                 (typ (String.sub s 0 i))
-                 (txt (String.sub s (+ i 1) (- (- (String.length s) i) 1))))
-            (Squot loc typ txt)) ] ]
-  /
-  sexpr_dot :
-    [ [ s = LIDENTDOT -> (Slid loc s)
-      | s = UIDENTDOT -> (Suid loc s) ] ]
-  /
-  pa_extend_keyword :
-    [ [ "_" -> "_"
-      | "," -> ","
-      | "=" -> "="
-      | ":" -> ":"
-      | "." -> "."
-      | "/" -> "/" ] ]
-  /
-END
diff --git a/camlp4/unmaintained/scheme/pr_scheme.ml b/camlp4/unmaintained/scheme/pr_scheme.ml
deleted file mode 100644 (file)
index a9cf348..0000000
+++ /dev/null
@@ -1,826 +0,0 @@
-(* pa_r.cmo q_MLast.cmo pa_extfun.cmo pr_dump.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                               Camlp4                                *)
-(*                                                                     *)
-(*    Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file                 *)
-(*   ../../../LICENSE.                                                 *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-open Pcaml;
-open Format;
-
-type printer_t 'a =
-  { pr_fun : mutable string -> next 'a;
-    pr_levels : mutable list (pr_level 'a) }
-and pr_level 'a =
-  { pr_label : string;
-    pr_box : formatter -> (formatter -> unit) -> 'a -> unit;
-    pr_rules : mutable pr_rule 'a }
-and pr_rule 'a =
-  Extfun.t 'a (formatter -> curr 'a -> next 'a -> string -> kont -> unit)
-and curr 'a = formatter -> ('a * string * kont) -> unit
-and next 'a = formatter -> ('a * string * kont) -> unit
-and kont = formatter -> unit;
-
-value not_impl name x ppf k =
-  let desc =
-    if Obj.is_block (Obj.repr x) then
-      "tag = " ^ string_of_int (Obj.tag (Obj.repr x))
-    else "int_val = " ^ string_of_int (Obj.magic x)
-  in
-  fprintf ppf "<pr_scheme: not impl: %s; %s>%t" name desc k
-;
-
-value pr_fun name pr lab =
-  loop False pr.pr_levels where rec loop app =
-    fun
-    [ [] -> fun ppf (x, dg, k) -> failwith ("unable to print " ^ name)
-    | [lev :: levl] ->
-        if app || lev.pr_label = lab then
-          let next = loop True levl in
-          let rec curr ppf (x, dg, k) =
-            Extfun.apply lev.pr_rules x ppf curr next dg k
-          in
-          fun ppf ((x, _, _) as n) -> lev.pr_box ppf (fun ppf -> curr ppf n) x
-        else loop app levl ]
-;
-
-value rec find_pr_level lab =
-  fun
-  [ [] -> failwith ("level " ^ lab ^ " not found")
-  | [lev :: levl] ->
-      if lev.pr_label = lab then lev else find_pr_level lab levl ]
-;
-
-value pr_constr_decl = {pr_fun = fun []; pr_levels = []};
-value constr_decl ppf (x, k) = pr_constr_decl.pr_fun "top" ppf (x, "", k);
-pr_constr_decl.pr_fun := pr_fun "constr_decl" pr_constr_decl;
-
-value pr_ctyp = {pr_fun = fun []; pr_levels = []};
-pr_ctyp.pr_fun := pr_fun "ctyp" pr_ctyp;
-value ctyp ppf (x, k) = pr_ctyp.pr_fun "top" ppf (x, "", k);
-
-value pr_expr = {pr_fun = fun []; pr_levels = []};
-pr_expr.pr_fun := pr_fun "expr" pr_expr;
-value expr ppf (x, k) = pr_expr.pr_fun "top" ppf (x, "", k);
-
-value pr_label_decl = {pr_fun = fun []; pr_levels = []};
-value label_decl ppf (x, k) = pr_label_decl.pr_fun "top" ppf (x, "", k);
-pr_label_decl.pr_fun := pr_fun "label_decl" pr_label_decl;
-
-value pr_let_binding = {pr_fun = fun []; pr_levels = []};
-pr_let_binding.pr_fun := pr_fun "let_binding" pr_let_binding;
-value let_binding ppf (x, k) = pr_let_binding.pr_fun "top" ppf (x, "", k);
-
-value pr_match_assoc = {pr_fun = fun []; pr_levels = []};
-pr_match_assoc.pr_fun := pr_fun "match_assoc" pr_match_assoc;
-value match_assoc ppf (x, k) = pr_match_assoc.pr_fun "top" ppf (x, "", k);
-
-value pr_mod_ident = {pr_fun = fun []; pr_levels = []};
-pr_mod_ident.pr_fun := pr_fun "mod_ident" pr_mod_ident;
-value mod_ident ppf (x, k) = pr_mod_ident.pr_fun "top" ppf (x, "", k);
-
-value pr_module_binding = {pr_fun = fun []; pr_levels = []};
-pr_module_binding.pr_fun := pr_fun "module_binding" pr_module_binding;
-value module_binding ppf (x, k) =
-  pr_module_binding.pr_fun "top" ppf (x, "", k);
-
-value pr_module_expr = {pr_fun = fun []; pr_levels = []};
-pr_module_expr.pr_fun := pr_fun "module_expr" pr_module_expr;
-value module_expr ppf (x, k) = pr_module_expr.pr_fun "top" ppf (x, "", k);
-
-value pr_module_type = {pr_fun = fun []; pr_levels = []};
-pr_module_type.pr_fun := pr_fun "module_type" pr_module_type;
-value module_type ppf (x, k) = pr_module_type.pr_fun "top" ppf (x, "", k);
-
-value pr_patt = {pr_fun = fun []; pr_levels = []};
-pr_patt.pr_fun := pr_fun "patt" pr_patt;
-value patt ppf (x, k) = pr_patt.pr_fun "top" ppf (x, "", k);
-
-value pr_sig_item = {pr_fun = fun []; pr_levels = []};
-pr_sig_item.pr_fun := pr_fun "sig_item" pr_sig_item;
-value sig_item ppf (x, k) = pr_sig_item.pr_fun "top" ppf (x, "", k);
-
-value pr_str_item = {pr_fun = fun []; pr_levels = []};
-pr_str_item.pr_fun := pr_fun "str_item" pr_str_item;
-value str_item ppf (x, k) = pr_str_item.pr_fun "top" ppf (x, "", k);
-
-value pr_type_decl = {pr_fun = fun []; pr_levels = []};
-value type_decl ppf (x, k) = pr_type_decl.pr_fun "top" ppf (x, "", k);
-pr_type_decl.pr_fun := pr_fun "type_decl" pr_type_decl;
-
-value pr_type_params = {pr_fun = fun []; pr_levels = []};
-value type_params ppf (x, k) = pr_type_params.pr_fun "top" ppf (x, "", k);
-pr_type_params.pr_fun := pr_fun "type_params" pr_type_params;
-
-value pr_with_constr = {pr_fun = fun []; pr_levels = []};
-value with_constr ppf (x, k) = pr_with_constr.pr_fun "top" ppf (x, "", k);
-pr_with_constr.pr_fun := pr_fun "with_constr" pr_with_constr;
-
-(* general functions *)
-
-value nok ppf = ();
-value ks s k ppf = fprintf ppf "%s%t" s k;
-
-value rec list f ppf (l, k) =
-  match l with
-  [ [] -> k ppf
-  | [x] -> f ppf (x, k)
-  | [x :: l] -> fprintf ppf "%a@ %a" f (x, nok) (list f) (l, k) ]
-;
-
-value rec listwb b f ppf (l, k) =
-  match l with
-  [ [] -> k ppf
-  | [x] -> f ppf ((b, x), k)
-  | [x :: l] -> fprintf ppf "%a@ %a" f ((b, x), nok) (listwb "" f) (l, k) ]
-;
-
-(* specific functions *)
-
-value rec is_irrefut_patt =
-  fun
-  [ <:patt< $lid:_$ >> -> True
-  | <:patt< () >> -> True
-  | <:patt< _ >> -> True
-  | <:patt< ($x$ as $y$) >> -> is_irrefut_patt x && is_irrefut_patt y
-  | <:patt< { $list:fpl$ } >> ->
-      List.for_all (fun (_, p) -> is_irrefut_patt p) fpl
-  | <:patt< ($p$ : $_$) >> -> is_irrefut_patt p
-  | <:patt< ($list:pl$) >> -> List.for_all is_irrefut_patt pl
-  | <:patt< ? $_$ : ( $p$ ) >> -> is_irrefut_patt p
-  | <:patt< ? $_$ : ($p$ = $_$) >> -> is_irrefut_patt p
-  | <:patt< ~ $_$ >> -> True
-  | <:patt< ~ $_$ : $p$ >> -> is_irrefut_patt p
-  | _ -> False ]
-;
-
-value expr_fun_args ge = Extfun.apply pr_expr_fun_args.val ge;
-
-pr_expr_fun_args.val :=
-  extfun Extfun.empty with
-  [ <:expr< fun [$p$ -> $e$] >> as ge ->
-      if is_irrefut_patt p then
-        let (pl, e) = expr_fun_args e in
-        ([p :: pl], e)
-      else ([], ge)
-  | ge -> ([], ge) ];
-
-value sequence ppf (e, k) =
-  match e with
-  [ <:expr< do { $list:el$ } >> ->
-      fprintf ppf "@[<hv>%a@]" (list expr) (el, k)
-  | _ -> expr ppf (e, k) ]
-;
-
-value string ppf (s, k) = fprintf ppf "\"%s\"%t" s k;
-
-value int_repr s =
-  if String.length s > 2 && s.[0] = '0' then
-    match s.[1] with
-    [ 'b' | 'o' | 'x' | 'B' | 'O' | 'X' ->
-        "#" ^ String.sub s 1 (String.length s - 1)
-    | _ -> s ]
-  else s  
-;
-
-value assoc_left_parsed_op_list = ["+"; "*"; "land"; "lor"; "lxor"];
-value assoc_right_parsed_op_list = ["and"; "or"; "^"; "@"];
-value and_by_couple_op_list = ["="; "<>"; "<"; ">"; "<="; ">="; "=="; "!="];
-
-(* extensible pretty print functions *)
-
-pr_constr_decl.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ (loc, c, []) ->
-          fun ppf curr next dg k -> fprintf ppf "(@[<hv>%s%t@]" c (ks ")" k)
-      | (loc, c, tl) ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[<hv>%s@ %a@]" c (list ctyp) (tl, ks ")" k) ]}];
-
-pr_ctyp.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ <:ctyp< [ $list:cdl$ ] >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[<hv>sum@ %a@]" (list constr_decl) (cdl, ks ")" k)
-      | <:ctyp< { $list:cdl$ } >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "{@[<hv>%a@]" (list label_decl) (cdl, ks "}" k)
-      | <:ctyp< ( $list:tl$ ) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[* @[<hv>%a@]@]" (list ctyp) (tl, ks ")" k)
-      | <:ctyp< $t1$ -> $t2$ >> ->
-          fun ppf curr next dg k ->
-            let tl =
-              loop t2 where rec loop =
-                fun
-                [ <:ctyp< $t1$ -> $t2$ >> -> [t1 :: loop t2]
-                | t -> [t] ]
-            in
-            fprintf ppf "(@[-> @[<hv>%a@]@]" (list ctyp)
-              ([t1 :: tl], ks ")" k)
-      | <:ctyp< $t1$ $t2$ >> ->
-          fun ppf curr next dg k ->
-            let (t, tl) =
-              loop [t2] t1 where rec loop tl =
-                fun
-                [ <:ctyp< $t1$ $t2$ >> -> loop [t2 :: tl] t1
-                | t1 -> (t1, tl) ]
-            in
-            fprintf ppf "(@[%a@ %a@]" ctyp (t, nok) (list ctyp) (tl, ks ")" k)
-      | <:ctyp< $t1$ . $t2$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%a.%a" ctyp (t1, nok) ctyp (t2, k)
-      | <:ctyp< $lid:s$ >> | <:ctyp< $uid:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "%s%t" s k
-      | <:ctyp< ' $s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "'%s%t" s k
-      | <:ctyp< _ >> ->
-          fun ppf curr next dg k -> fprintf ppf "_%t" k
-      | x ->
-          fun ppf curr next dg k -> not_impl "ctyp" x ppf k ]}];
-
-pr_expr.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ <:expr< fun [] >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(lambda%t" (ks ")" k)
-      | <:expr< fun $lid:s$ -> $e$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(lambda@ %s@;<1 1>%a" s expr (e, ks ")" k)
-      | <:expr< fun [ $list:pwel$ ] >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[<hv>lambda_match@ %a@]" (list match_assoc)
-              (pwel, ks ")" k)
-      | <:expr< match $e$ with [ $list:pwel$ ] >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[<hv>@[<b 2>match@ %a@]@ %a@]" expr (e, nok)
-              (list match_assoc) (pwel, ks ")" k)
-      | <:expr< try $e$ with [ $list:pwel$ ] >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[<hv>@[<b 2>try@ %a@]@ %a@]" expr (e, nok)
-              (list match_assoc) (pwel, ks ")" k)
-      | <:expr< let $p1$ = $e1$ in $e2$ >> ->
-          fun ppf curr next dg k ->
-            let (pel, e) =
-              loop [(p1, e1)] e2 where rec loop pel =
-                fun
-                [ <:expr< let $p1$ = $e1$ in $e2$ >> ->
-                    loop [(p1, e1) :: pel] e2
-                | e -> (List.rev pel, e) ]
-            in
-            let b =
-              match pel with
-              [ [_] -> "let"
-              | _ -> "let*" ]
-            in
-            fprintf ppf "(@[@[%s (@[<v>%a@]@]@;<1 2>%a@]" b
-              (listwb "" let_binding) (pel, ks ")" nok)
-                 sequence (e, ks ")" k)
-      | <:expr< let $opt:rf$ $list:pel$ in $e$ >> ->
-          fun ppf curr next dg k ->
-            let b = if rf then "letrec" else "let" in
-            fprintf ppf "(@[<hv>%s@ (@[<hv>%a@]@ %a@]" b
-              (listwb "" let_binding) (pel, ks ")" nok) expr (e, ks ")" k)
-      | <:expr< if $e1$ then $e2$ else () >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(if @[%a@;<1 0>%a@]" expr (e1, nok)
-              expr (e2, ks ")" k)
-      | <:expr< if $e1$ then $e2$ else $e3$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(if @[%a@ %a@ %a@]" expr (e1, nok)
-              expr (e2, nok) expr (e3, ks ")" k)
-      | <:expr< do { $list:el$ } >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(begin@;<1 1>@[<hv>%a@]" (list expr) (el, ks ")" k)
-      | <:expr< for $i$ = $e1$ to $e2$ do { $list:el$ } >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[for %s@ %a@ %a %a@]" i expr (e1, nok)
-              expr (e2, nok) (list expr) (el, ks ")" k)
-      | <:expr< ($e$ : $t$) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(:@ %a@ %a" expr (e, nok) ctyp (t, ks ")" k)
-      | <:expr< ($list:el$) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(values @[%a@]" (list expr) (el, ks ")" k)
-      | <:expr< { $list:fel$ } >> ->
-          fun ppf curr next dg k ->
-            let record_binding ppf ((p, e), k) =
-              fprintf ppf "(@[%a@ %a@]" patt (p, nok) expr (e, ks ")" k)
-            in
-            fprintf ppf "{@[<hv>%a@]" (list record_binding) (fel, ks "}" k)
-      | <:expr< { ($e$) with $list:fel$ } >> ->
-          fun ppf curr next dg k ->
-            let record_binding ppf ((p, e), k) =
-              fprintf ppf "(@[%a@ %a@]" patt (p, nok) expr (e, ks ")" k)
-            in
-            fprintf ppf "{@[@[with@ %a@]@ @[%a@]@]" expr (e, nok)
-              (list record_binding) (fel, ks "}" k)
-      | <:expr< $e1$ := $e2$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(:=@;<1 1>%a@;<1 1>%a" expr (e1, nok)
-              expr (e2, ks ")" k)
-      | <:expr< [$_$ :: $_$] >> as e ->
-          fun ppf curr next dg k ->
-            let (el, c) =
-              make_list e where rec make_list e =
-                match e with
-                [ <:expr< [$e$ :: $y$] >> ->
-                    let (el, c) = make_list y in
-                    ([e :: el], c)
-                | <:expr< [] >> -> ([], None)
-                | x -> ([], Some e) ]
-            in
-            match c with
-            [ None ->
-                fprintf ppf "[%a" (list expr) (el, ks "]" k)
-            | Some x ->
-                fprintf ppf "[%a@ %a" (list expr) (el, ks " ." nok)
-                  expr (x, ks "]" k) ]
-      | <:expr< lazy ($x$) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[lazy@ %a@]" expr (x, ks ")" k)
-      | <:expr< $lid:s$ $e1$ $e2$ >>
-        when List.mem s assoc_right_parsed_op_list ->
-          fun ppf curr next dg k ->
-            let el =
-              loop [e1] e2 where rec loop el =
-                fun
-                [ <:expr< $lid:s1$ $e1$ $e2$ >> when s1 = s ->
-                    loop [e1 :: el] e2
-                | e -> List.rev [e :: el] ]
-            in
-            fprintf ppf "(@[%s %a@]" s (list expr) (el, ks ")" k)
-      | <:expr< $e1$ $e2$ >> ->
-          fun ppf curr next dg k ->
-            let (f, el) =
-              loop [e2] e1 where rec loop el =
-                fun
-                [ <:expr< $e1$ $e2$ >> -> loop [e2 :: el] e1
-                | e1 -> (e1, el) ]
-            in
-            fprintf ppf "(@[%a@ %a@]" expr (f, nok) (list expr) (el, ks ")" k)
-      | <:expr< ~ $s$ : ($e$) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(~%s@ %a" s expr (e, ks ")" k)
-      | <:expr< $e1$ .[ $e2$ ] >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%a.[%a" expr (e1, nok) expr (e2, ks "]" k)
-      | <:expr< $e1$ .( $e2$ ) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%a.(%a" expr (e1, nok) expr (e2, ks ")" k)
-      | <:expr< $e1$ . $e2$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%a.%a" expr (e1, nok) expr (e2, k)
-      | <:expr< $int:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "%s%t" (int_repr s) k
-      | <:expr< $lid:s$ >> | <:expr< $uid:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "%s%t" s k
-      | <:expr< ` $s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "`%s%t" s k
-      | <:expr< $str:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "\"%s\"%t" s k
-      | <:expr< $chr:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "'%s'%t" s k
-      | x ->
-          fun ppf curr next dg k -> not_impl "expr" x ppf k ]}];
-
-pr_label_decl.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ (loc, f, m, t) ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[<hv>%s%t@ %a@]" f
-              (fun ppf -> if m then fprintf ppf "@ mutable" else ())
-              ctyp (t, ks ")" k) ]}];
-
-pr_let_binding.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ (b, (p, e)) ->
-          fun ppf curr next dg k ->
-            let (pl, e) = expr_fun_args e in
-            match pl with
-            [ [] ->
-                fprintf ppf "(@[<b 1>%s%s%a@ %a@]" b
-                  (if b = "" then "" else " ") patt (p, nok)
-                  sequence (e, ks ")" k)
-            | _ ->
-                fprintf ppf "(@[<b 1>%s%s(%a)@ %a@]" b
-                  (if b = "" then "" else " ") (list patt) ([p :: pl], nok)
-                  sequence (e, ks ")" k) ] ]}];
-
-pr_match_assoc.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ (p, we, e) ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[%t@ %a@]"
-              (fun ppf ->
-                 match we with
-                 [ Some e ->
-                     fprintf ppf "(when@ %a@ %a" patt (p, nok)
-                       expr (e, ks ")" nok)
-                 | None -> patt ppf (p, nok) ])
-              sequence (e, ks ")" k) ]}];
-
-pr_mod_ident.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ [s] ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%s%t" s k
-      | [s :: sl] ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%s.%a" s curr (sl, "", k)
-      | x ->
-          fun ppf curr next dg k -> not_impl "mod_ident" x ppf k ]}];
-
-pr_module_binding.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ (b, s, me) ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%s@ %s@ %a" b s module_expr (me, k) ]}];
-
-pr_module_expr.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ <:module_expr< functor ($i$ : $mt$) -> $me$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[@[@[functor@ %s@]@ %a@]@ %a@]"
-              i module_type (mt, nok) module_expr (me, ks ")" k)
-      | <:module_expr< struct $list:sil$ end >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[struct@ @[<hv>%a@]@]" (list str_item)
-              (sil, ks ")" k)
-      | <:module_expr< $me1$ $me2$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[%a@ %a@]" module_expr (me1, nok)
-              module_expr (me2, ks ")" k)
-      | <:module_expr< $uid:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "%s%t" s k
-      | x ->
-          fun ppf curr next dg k -> not_impl "module_expr" x ppf k ]}];
-
-pr_module_type.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ <:module_type< functor ($i$ : $mt1$) -> $mt2$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[@[@[functor@ %s@]@ %a@]@ %a@]"
-              i module_type (mt1, nok) module_type (mt2, ks ")" k)
-      | <:module_type< sig $list:sil$ end >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[sig@ @[<hv>%a@]@]" (list sig_item) (sil, ks ")" k)
-      | <:module_type< $mt$ with $list:wcl$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[with@;<1 2>@[%a@ (%a@]@]" module_type (mt, nok)
-              (list with_constr) (wcl, ks "))" k)
-      | <:module_type< $uid:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "%s%t" s k
-      | x ->
-          fun ppf curr next dg k -> not_impl "module_type" x ppf k ]}];
-
-pr_patt.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ <:patt< $p1$ | $p2$ >> ->
-          fun ppf curr next dg k ->
-            let (f, pl) =
-              loop [p2] p1 where rec loop pl =
-                fun
-                [ <:patt< $p1$ | $p2$ >> -> loop [p2 :: pl] p1
-                | p1 -> (p1, pl) ]
-            in
-            fprintf ppf "(@[or@ %a@ %a@]" patt (f, nok) (list patt)
-              (pl, ks ")" k)
-      | <:patt< ($p1$ as $p2$) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[as@ %a@ %a@]" patt (p1, nok) patt (p2, ks ")" k)
-      | <:patt< $p1$ .. $p2$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[range@ %a@ %a@]" patt (p1, nok) patt (p2, ks ")" k)
-      | <:patt< [$_$ :: $_$] >> as p ->
-          fun ppf curr next dg k ->
-            let (pl, c) =
-              make_list p where rec make_list p =
-                match p with
-                [ <:patt< [$p$ :: $y$] >> ->
-                    let (pl, c) = make_list y in
-                    ([p :: pl], c)
-                | <:patt< [] >> -> ([], None)
-                | x -> ([], Some p) ]
-            in
-            match c with
-            [ None ->
-                fprintf ppf "[%a" (list patt) (pl, ks "]" k)
-            | Some x ->
-                fprintf ppf "[%a@ %a" (list patt) (pl, ks " ." nok)
-                  patt (x, ks "]" k) ]
-      | <:patt< $p1$ $p2$ >> ->
-          fun ppf curr next dg k ->
-            let pl =
-              loop [p2] p1 where rec loop pl =
-                fun
-                [ <:patt< $p1$ $p2$ >> -> loop [p2 :: pl] p1
-                | p1 -> [p1 :: pl] ]
-            in
-            fprintf ppf "(@[%a@]" (list patt) (pl, ks ")" k)
-      | <:patt< ($p$ : $t$) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(:@ %a@ %a" patt (p, nok) ctyp (t, ks ")" k)
-      | <:patt< ($list:pl$) >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(values @[%a@]" (list patt) (pl, ks ")" k)
-      | <:patt< { $list:fpl$ } >> ->
-          fun ppf curr next dg k ->
-            let record_binding ppf ((p1, p2), k) =
-              fprintf ppf "(@[%a@ %a@]" patt (p1, nok) patt (p2, ks ")" k)
-            in
-            fprintf ppf "(@[<hv>{}@ %a@]" (list record_binding) (fpl, ks ")" k)
-      | <:patt< ? $x$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "?%s%t" x k
-      | <:patt< ? ($lid:x$ = $e$) >> ->
-          fun ppf curr next dg k -> fprintf ppf "(?%s@ %a" x expr (e, ks ")" k)
-      | <:patt< $p1$ . $p2$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%a.%a" patt (p1, nok) patt (p2, k)
-      | <:patt< $lid:s$ >> | <:patt< $uid:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "%s%t" s k
-      | <:patt< $str:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "\"%s\"%t" s k
-      | <:patt< $chr:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "'%s'%t" s k
-      | <:patt< $int:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "%s%t" (int_repr s) k
-      | <:patt< $flo:s$ >> ->
-          fun ppf curr next dg k -> fprintf ppf "%s%t" s k
-      | <:patt< _ >> ->
-          fun ppf curr next dg k -> fprintf ppf "_%t" k
-      | x ->
-          fun ppf curr next dg k -> not_impl "patt" x ppf k ]}];
-
-pr_sig_item.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ <:sig_item< type $list:tdl$ >> ->
-          fun ppf curr next dg k ->
-            match tdl with
-            [ [td] -> fprintf ppf "(%a" type_decl (("type", td), ks ")" k)
-            | tdl ->
-                fprintf ppf "(@[<hv>type@ %a@]" (listwb "" type_decl)
-                  (tdl, ks ")" k) ]
-      | <:sig_item< exception $c$ of $list:tl$ >> ->
-          fun ppf curr next dg k ->
-            match tl with
-            [ [] -> fprintf ppf "(@[exception@ %s%t@]" c (ks ")" k)
-            | tl ->
-                fprintf ppf "(@[@[exception@ %s@]@ %a@]" c
-                  (list ctyp) (tl, ks ")" k) ]
-      | <:sig_item< value $i$ : $t$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[@[value %s@]@ %a@]" i ctyp (t, ks ")" k)
-      | <:sig_item< external $i$ : $t$ = $list:pd$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[@[external@ %s@]@ %a@ %a@]" i ctyp (t, nok)
-              (list string) (pd, ks ")" k)
-      | <:sig_item< module $s$ : $mt$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[@[module@ %s@]@ %a@]" s
-              module_type (mt, ks ")" k)
-      | <:sig_item< module type $s$ = $mt$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[@[moduletype@ %s@]@ %a@]" s
-              module_type (mt, ks ")" k)
-      | <:sig_item< declare $list:s$ end >> ->
-          fun ppf curr next dg k ->
-            if s = [] then fprintf ppf "; ..."
-            else fprintf ppf "%a" (list sig_item) (s, k)
-      | MLast.SgUse _ _ _ ->
-          fun ppf curr next dg k -> ()
-      | x ->
-          fun ppf curr next dg k -> not_impl "sig_item" x ppf k ]}];
-
-pr_str_item.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ <:str_item< open $i$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(open@ %a" mod_ident (i, ks ")" k)
-      | <:str_item< type $list:tdl$ >> ->
-          fun ppf curr next dg k ->
-            match tdl with
-            [ [td] -> fprintf ppf "(%a" type_decl (("type", td), ks ")" k)
-            | tdl ->
-                fprintf ppf "(@[<hv>type@ %a@]" (listwb "" type_decl)
-                  (tdl, ks ")" k) ]
-      | <:str_item< exception $c$ of $list:tl$ >> ->
-          fun ppf curr next dg k ->
-            match tl with
-            [ [] -> fprintf ppf "(@[exception@ %s%t@]" c (ks ")" k)
-            | tl ->
-                fprintf ppf "(@[@[exception@ %s@]@ %a@]" c
-                  (list ctyp) (tl, ks ")" k) ]
-      | <:str_item< value $opt:rf$ $list:pel$ >> ->
-          fun ppf curr next dg k ->
-            let b = if rf then "definerec" else "define" in
-            match pel with
-            [ [(p, e)] ->
-                fprintf ppf "%a" let_binding ((b, (p, e)), k)
-            | pel ->
-                fprintf ppf "(@[<hv 1>%s*@ %a@]" b (listwb "" let_binding)
-                  (pel, ks ")" k) ]
-      | <:str_item< module $s$ = $me$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(%a" module_binding (("module", s, me), ks ")" k)
-      | <:str_item< module type $s$ = $mt$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[@[moduletype@ %s@]@ %a@]" s
-              module_type (mt, ks ")" k)
-      | <:str_item< external $i$ : $t$ = $list:pd$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(@[external@ %s@ %a@ %a@]" i ctyp (t, nok)
-              (list string) (pd, ks ")" k)
-      | <:str_item< $exp:e$ >> ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%a" expr (e, k)
-      | <:str_item< # $s$ $opt:x$ >> ->
-          fun ppf curr next dg k ->
-            match x with
-            [ Some e -> fprintf ppf "; # (%s %a" s expr (e, ks ")" k)
-            | None -> fprintf ppf "; # (%s%t" s (ks ")" k) ]
-      | <:str_item< declare $list:s$ end >> ->
-          fun ppf curr next dg k ->
-            if s = [] then fprintf ppf "; ..."
-            else fprintf ppf "%a" (list str_item) (s, k)
-      | MLast.StUse _ _ _ ->
-          fun ppf curr next dg k -> ()
-      | x ->
-          fun ppf curr next dg k -> not_impl "str_item" x ppf k ]}];
-
-pr_type_decl.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ (b, ((_, tn), tp, te, cl)) ->
-          fun ppf curr next dg k ->
-            fprintf ppf "%t%t@;<1 1>%a"
-              (fun ppf ->
-                 if b <> "" then fprintf ppf "%s@ " b
-                 else ())
-              (fun ppf ->
-                 match tp with
-                 [ [] -> fprintf ppf "%s" tn
-                 | tp -> fprintf ppf "(%s%a)" tn type_params (tp, nok) ])
-               ctyp (te, k) ]}];
-
-pr_type_params.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ [(s, vari) :: tpl] ->
-          fun ppf curr next dg k ->
-            fprintf ppf "@ '%s%a" s type_params (tpl, k)
-      | [] ->
-          fun ppf curr next dg k -> () ]}];
-
-pr_with_constr.pr_levels :=
-  [{pr_label = "top";
-    pr_box ppf f x = fprintf ppf "@[%t@]" f;
-    pr_rules =
-      extfun Extfun.empty with
-      [ MLast.WcTyp _ m tp te ->
-          fun ppf curr next dg k ->
-            fprintf ppf "(type@ %t@;<1 1>%a"
-              (fun ppf ->
-                 match tp with
-                 [ [] -> fprintf ppf "%a" mod_ident (m, nok)
-                 | tp ->
-                     fprintf ppf "(%a@ %a)" mod_ident (m, nok)
-                       type_params (tp, nok) ])
-               ctyp (te, ks ")" k)
-      | x ->
-          fun ppf curr next dg k -> not_impl "with_constr" x ppf k ]}];
-
-(* main *)
-
-value output_string_eval ppf s =
-  loop 0 where rec loop i =
-    if i == String.length s then ()
-    else if i == String.length s - 1 then pp_print_char ppf s.[i]
-    else
-      match (s.[i], s.[i + 1]) with
-      [ ('\\', 'n') -> do { pp_print_char ppf '\n'; loop (i + 2) }
-      | (c, _) -> do { pp_print_char ppf c; loop (i + 1) } ]
-;
-
-value sep = Pcaml.inter_phrases;
-
-value input_source ic len =
-  let buff = Buffer.create 20 in
-  try
-    let rec loop i =
-      if i >= len then Buffer.contents buff
-      else do { let c = input_char ic in Buffer.add_char buff c; loop (i + 1) }
-    in
-    loop 0
-  with
-  [ End_of_file ->
-      let s = Buffer.contents buff in
-      if s = "" then
-        match sep.val with
-        [ Some s -> s
-        | None -> "\n" ]
-      else s ]
-;
-
-value copy_source ppf (ic, first, bp, ep) =
-  match sep.val with
-  [ Some str ->
-      if first then ()
-      else if ep == in_channel_length ic then pp_print_string ppf "\n"
-      else output_string_eval ppf str
-  | None ->
-      do {
-        seek_in ic bp;
-        let s = input_source ic (ep - bp) in pp_print_string ppf s
-      } ]
-;
-
-value copy_to_end ppf (ic, first, bp) =
-  let ilen = in_channel_length ic in
-  if bp < ilen then copy_source ppf (ic, first, bp, ilen)
-  else pp_print_string ppf "\n"
-;
-
-value apply_printer printer ast =
-  let ppf = std_formatter in
-  if Pcaml.input_file.val <> "-" && Pcaml.input_file.val <> "" then do {
-    let ic = open_in_bin Pcaml.input_file.val in
-    try
-      let (first, last_pos) =
-        List.fold_left
-          (fun (first, last_pos) (si, (bp, ep)) ->
-             do {
-               fprintf ppf "@[%a@]@?" copy_source (ic, first, last_pos.Lexing.pos_cnum, bp.Lexing.pos_cnum);
-               fprintf ppf "@[%a@]@?" printer (si, nok);
-               (False, ep)
-             })
-          (True, Token.nowhere) ast
-      in
-      fprintf ppf "@[%a@]@?" copy_to_end (ic, first, last_pos.Lexing.pos_cnum)
-    with x ->
-      do { fprintf ppf "@."; close_in ic; raise x };
-    close_in ic;
-  }
-  else failwith "not implemented"
-;
-
-Pcaml.print_interf.val := apply_printer sig_item;
-Pcaml.print_implem.val := apply_printer str_item;
-
-Pcaml.add_option "-l" (Arg.Int (fun x -> set_margin x))
-  "<length> Maximum line length for pretty printing.";
-
-Pcaml.add_option "-sep" (Arg.String (fun x -> sep.val := Some x))
-  "<string> Use this string between phrases instead of reading source.";
diff --git a/camlp4/unmaintained/scheme/pr_schp_main.ml b/camlp4/unmaintained/scheme/pr_schp_main.ml
deleted file mode 100644 (file)
index 4d3a6fb..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-(* pa_r.cmo q_MLast.cmo pa_extfun.cmo pr_dump.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                               Camlp4                                *)
-(*                                                                     *)
-(*    Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file                 *)
-(*   ../../../LICENSE.                                                 *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-open Format;
-open Pcaml;
-open Parserify;
-
-value nok = Pr_scheme.nok;
-value ks = Pr_scheme.ks;
-value patt = Pr_scheme.patt;
-value expr = Pr_scheme.expr;
-value find_pr_level = Pr_scheme.find_pr_level;
-value pr_expr = Pr_scheme.pr_expr;
-type printer_t 'a = Pr_scheme.printer_t 'a ==
-  { pr_fun : mutable string -> Pr_scheme.next 'a;
-    pr_levels : mutable list (pr_level 'a) }
-and pr_level 'a = Pr_scheme.pr_level 'a ==
-  { pr_label : string;
-    pr_box : formatter -> (formatter -> unit) -> 'a -> unit;
-    pr_rules : mutable Pr_scheme.pr_rule 'a }
-;
-
-(* extensions for rebuilding syntax of parsers *)
-
-value parser_cases ppf (spel, k) =
-  let rec parser_cases ppf (spel, k) =
-    match spel with
-    [ [] -> fprintf ppf "[: `HVbox [: b; k :] :]"
-    | [(sp, epo, e)] -> parser_case ppf (sp, epo, e, k)
-    | [(sp, epo, e) :: spel] ->
-        fprintf ppf "%a@ %a" parser_case (sp, epo, e, nok)
-          parser_cases (spel, k) ]
-  and parser_case ppf (sp, epo, e, k) =
-    fprintf ppf "(@[@[(%a)%t@]@ %a@]" stream_patt (sp, nok)
-      (fun ppf ->
-         match epo with
-         [ Some p -> fprintf ppf "@ %a" patt (p, nok)
-         | None -> () ])
-      expr (e, ks ")" k)
-  and stream_patt ppf (sp, k) =
-    match sp with
-    [ [] -> k ppf
-    | [(spc, None)] -> fprintf ppf "%a" stream_patt_comp (spc, k)
-    | [(spc, Some e)] ->
-        fprintf ppf "(@[? %a@ %a@]" stream_patt_comp (spc, nok)
-          expr (e, ks ")" k)
-    | [(spc, None) :: spcl] ->
-        fprintf ppf "%a@ %a" stream_patt_comp (spc, nok) stream_patt (spcl, k)
-    | [(spc, Some e) :: spcl] ->
-        fprintf ppf "(@[? %a@ %a@]@ %a" stream_patt_comp (spc, nok)
-          expr (e, ks ")" nok) stream_patt (spcl, k) ]
-  and stream_patt_comp ppf (spc, k) =
-    match spc with
-    [ SPCterm (p, w) ->
-        match w with
-        [ Some e ->
-            fprintf ppf "(` %a@ %a" patt (p, nok) expr (e, ks ")" k)
-        | None -> fprintf ppf "(` %a" patt (p, ks ")" k) ]
-    | SPCnterm p e ->
-        fprintf ppf "(@[%a %a@]" patt (p, nok) expr (e, ks ")" k)
-    | SPCsterm p -> fprintf ppf "%a" patt (p, k)  ]
-  in
-  parser_cases ppf (spel, k)
-;
-
-value parser_body ppf (e, k) =
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  match parser_of_expr e with
-  [ [] ->
-      fprintf ppf "(parser%t%t"
-        (fun ppf ->
-           match bp with
-           [ Some p -> fprintf ppf "@ %a" patt (p, nok)
-           | _ -> ()])
-        (ks ")" k)
-  | spel ->
-      fprintf ppf "(@[<v>@[parser%t@]@ @[<v 0>%a@]@]"
-        (fun ppf ->
-           match bp with
-           [ Some p -> fprintf ppf "@ %a" patt (p, nok)
-           | _ -> ()])
-        parser_cases (spel, ks ")" k) ]
-;
-
-value pmatch ppf (e, k) =
-  let (me, e) =
-    match e with
-    [ <:expr< let (__strm : Stream.t _) = $me$ in $e$ >> -> (me, e)
-    | _ -> failwith "Pr_schp_main.pmatch" ]
-  in
-  let (bp, e) =
-    match e with
-    [ <:expr< let $bp$ = Stream.count __strm in $e$ >> -> (Some bp, e)
-    | e -> (None, e) ]
-  in
-  let spel = parser_of_expr e in
-  fprintf ppf "(@[@[match_with_parser@ %a@]%t@ @[<v 0>%a@]@]" expr (me, nok)
-    (fun ppf ->
-       match bp with
-       [ Some p -> fprintf ppf "@ %a" patt (p, nok)
-       | _ -> () ])
-    parser_cases (spel, ks ")" k)
-;
-
-pr_expr_fun_args.val :=
-  extfun pr_expr_fun_args.val with
-  [ <:expr< fun [(__strm : $_$) -> $_$] >> as ge -> ([], ge) ];
-
-let lev = find_pr_level "top" pr_expr.pr_levels in
-lev.pr_rules :=
-  extfun lev.pr_rules with
-  [ <:expr< fun (__strm : $_$) -> $x$ >> ->
-      fun ppf curr next dg k -> fprintf ppf "%a" parser_body (x, k)
-  | <:expr< let (__strm : Stream.t _) = $_$ in $_$ >> as e ->
-      fun ppf curr next dg k -> fprintf ppf "%a" pmatch (e, k) ];
diff --git a/camlp4/unmaintained/sml/.depend b/camlp4/unmaintained/sml/.depend
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/camlp4/unmaintained/sml/Makefile b/camlp4/unmaintained/sml/Makefile
deleted file mode 100644 (file)
index ea3980b..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#########################################################################
-#                                                                       #
-#                            Objective Caml                             #
-#                                                                       #
-#                                Camlp4                                 #
-#                                                                       #
-#   Copyright 2004 Institut National de Recherche en Informatique et    #
-#   en Automatique.  All rights reserved.  This file is distributed     #
-#   under the terms of the Q Public License version 1.0.                #
-#                                                                       #
-#########################################################################
-#
-# Makefile for pa_sml
-# M.Mauny
-#
-
-include ../../config/Makefile.cnf
-
-OCAMLTOP=../../..
-
-OCAMLC=$(OCAMLTOP)/ocamlc$(EXE) -nostdlib -I $(OCAMLTOP)/stdlib
-OCAMLOPT=$(OCAMLTOP)/ocamlopt$(EXE) -nostdlib -I $(OCAMLTOP)/stdlib
-
-P4INCLUDES=-I ../../meta -I ../../etc -I ../../lib -I ../../camlp4
-OCAMLINCLUDES=-I ../../meta -I ../../lib  -I ../../camlp4
-
-CAMLP4=camlp4$(EXE) -nolib
-OCAMLCFLAGS=-warn-error A $(OCAMLINCLUDES)
-
-SRC=pa_sml.ml
-OBJS=$(SRC:.ml=.cmo)
-OBJSX=$(SRC:.ml=.cmx)
-
-all: $(OBJS) smllib.cmo
-
-opt: $(OBJSX) smllib.cmx
-
-depend:
-       cp .depend .depend.bak
-       > .depend
-       for file in $(SRC); do \
-         $(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $$file` pr_depend.cmo $$i | \
-         sed -e 's| \.\./\.\./\.\.| $$(OCAMLTOP)|g' >> .depend; \
-       done
-
-clean:
-       rm -f *.cm* *.o *.bak .*.bak
-
-
-.SUFFIXES: .cmx .cmo .cmi .ml .mli .sml
-
-.mli.cmi:
-       $(OCAMLC) $(OCAMLCFLAGS) -c $<
-
-
-.sml.cmo:
-       $(OCAMLC) -I ../../../otherlibs/unix -pp "$(CAMLP4) ./pa_sml.cmo ../../meta/pr_dump.cmo -impl" -c -o $*.cmo -impl $<
-
-.sml.cmx:
-       $(OCAMLOPT)  -I ../../../otherlibs/unix -pp "$(CAMLP4) ./pa_sml.cmo ../../meta/pr_dump.cmo -impl" -c -o $*.cmx -impl $<
-
-.ml.cmo:
-       $(OCAMLC) $(OCAMLCFLAGS) -pp "$(CAMLP4)  $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-.ml.cmx:
-       $(OCAMLOPT) $(OCAMLCFLAGS) -pp "$(CAMLP4)  $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<`" -c $<
-
-include .depend
diff --git a/camlp4/unmaintained/sml/README b/camlp4/unmaintained/sml/README
deleted file mode 100644 (file)
index 809d42f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This is an application of or an extension for Camlp4. Although it is
-currently distributed with OCaml/Camlp4, it may or may not be
-actively maintained.
-
-It probably won't be part of future OCaml/Camlp4 distributions but be
-accessible from the Camlp4 hump. If you are interested in developing
-this package further and/or actively maintain it, please let us know
-(caml@inria.fr)
-
-This package is distributed under the same license as the Objective
-Caml Library (that is, LGPL with a special exception allowing both
-static and dynamic link).
-
--- Michel Mauny
-
diff --git a/camlp4/unmaintained/sml/pa_sml.ml b/camlp4/unmaintained/sml/pa_sml.ml
deleted file mode 100644 (file)
index 1808cde..0000000
+++ /dev/null
@@ -1,952 +0,0 @@
-(* pa_r.cmo pa_rp.cmo pa_extend.cmo q_MLast.cmo pr_dump.cmo *)
-(***********************************************************************)
-(*                                                                     *)
-(*                               Camlp4                                *)
-(*                                                                     *)
-(*    Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file                 *)
-(*   ../../../LICENSE.                                                 *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-open Stdpp;
-open Pcaml;
-
-value ocaml_records = ref False;
-
-Pcaml.no_constructors_arity.val := True;
-
-value lexer = Plexer.gmake ();
-
-do {
-  Grammar.Unsafe.gram_reinit gram lexer;
-  Grammar.Unsafe.clear_entry interf;
-  Grammar.Unsafe.clear_entry implem;
-  Grammar.Unsafe.clear_entry top_phrase;
-  Grammar.Unsafe.clear_entry use_file;
-  Grammar.Unsafe.clear_entry module_type;
-  Grammar.Unsafe.clear_entry module_expr;
-  Grammar.Unsafe.clear_entry sig_item;
-  Grammar.Unsafe.clear_entry str_item;
-  Grammar.Unsafe.clear_entry expr;
-  Grammar.Unsafe.clear_entry patt;
-  Grammar.Unsafe.clear_entry ctyp;
-  Grammar.Unsafe.clear_entry let_binding;
-};
-
-Pcaml.parse_interf.val := Grammar.Entry.parse interf;
-Pcaml.parse_implem.val := Grammar.Entry.parse implem;
-
-value not_impl loc s =
-  raise_with_loc loc (Stream.Error ("not implemented feature [" ^ s ^ "]"))
-;
-
-type altern 'a 'b = [ Left of 'a | Right of 'b ];
-
-value get_seq =
-  fun
-  [ <:expr< do { $list:el$ } >> -> el
-  | e -> [e] ]
-;
-
-value choose_tvar tpl =
-  let rec find_alpha v =
-    let s = String.make 1 v in
-    if List.mem_assoc s tpl then
-      if v = 'z' then None else find_alpha (Char.chr (Char.code v + 1))
-    else Some (String.make 1 v)
-  in
-  let rec make_n n =
-    let v = "a" ^ string_of_int n in
-    if List.mem_assoc v tpl then make_n (succ n) else v
-  in
-  match find_alpha 'a' with
-  [ Some x -> x
-  | None -> make_n 1 ]
-;
-
-value mklistexp loc last =
-  loop True where rec loop top =
-    fun
-    [ [] ->
-        match last with
-        [ Some e -> e
-        | None -> <:expr< [] >> ]
-    | [e1 :: el] ->
-        let loc = if top then loc else (fst (MLast.loc_of_expr e1), snd loc) in
-        <:expr< [$e1$ :: $loop False el$] >> ]
-;
-
-value mklistpat loc last =
-  loop True where rec loop top =
-    fun
-    [ [] ->
-        match last with
-        [ Some p -> p
-        | None -> <:patt< [] >> ]
-    | [p1 :: pl] ->
-        let loc = if top then loc else (fst (MLast.loc_of_patt p1), snd loc) in
-        <:patt< [$p1$ :: $loop False pl$] >> ]
-;
-
-value expr_of_patt p =
-  let loc = MLast.loc_of_patt p in
-  match p with
-  [ <:patt< $lid:x$ >> -> <:expr< $lid:x$ >>
-  | _ -> Stdpp.raise_with_loc loc (Stream.Error "identifier expected") ]
-;
-
-value apply_bind loc e bl =
-  let rec loop e =
-    fun
-    [ [] -> e
-    | [<:str_item< value $p1$ = $e1$ >> :: list] ->
-        loop_let e [(p1, e1)] list
-    | [<:str_item< value rec $p1$ = $e1$ >> :: list] ->
-        loop_letrec e [(p1, e1)] list
-    | [<:str_item< module $s$ = $me$ >> :: list] ->
-        let e = <:expr< let module $s$ = $me$ in $e$ >> in
-        loop e list
-    | [si :: list] ->
-        raise Exit ]
-  and loop_let e pel =
-    fun
-    [ [<:str_item< value $p1$ = $e1$ >> :: list] ->
-        loop_let e [(p1, e1) :: pel] list
-    | list ->
-        let e = <:expr< let $list:pel$ in $e$ >> in
-        loop e list ]
-  and loop_letrec e pel =
-    fun
-    [ [<:str_item< value rec $p1$ = $e1$ >> :: list] ->
-        loop_letrec e [(p1, e1) :: pel] list
-    | list ->
-        let e = <:expr< let rec $list:pel$ in $e$ >> in
-        loop e list ]
-  in
-  loop e (List.rev bl)
-;
-
-value make_local loc sl1 sl2 =
-  try
-    let pl =
-      List.map
-        (fun
-         [ <:str_item< value $opt:_$ $p$ = $_$ >> -> p
-         | _ -> raise Exit ])
-        sl2
-      in
-    let e1 =
-      match List.map expr_of_patt pl with
-      [ [e] -> e
-      | el -> <:expr< ($list:el$) >> ]
-    in
-    let p1 =
-      match pl with
-      [ [p] -> p
-      | pl -> <:patt< ($list:pl$) >> ]
-    in
-    let e = apply_bind loc e1 sl2 in
-    let e = apply_bind loc e sl1 in
-    <:str_item< value $p1$ = $e$ >>
-  with
-  [ Exit ->
-      do {
-        Printf.eprintf "\
-*** Warning: a 'local' statement will be defined global because of bindings
-which cannot be defined as first class values (modules, exceptions, ...)\n";
-        flush stderr;
-        <:str_item< declare $list:sl1 @ sl2$ end >>
-      } ]
-;
-
-value str_declare loc =
-  fun
-  [ [d] -> d
-  | dl -> <:str_item< declare $list:dl$ end >> ]
-;
-
-value sig_declare loc =
-  fun
-  [ [d] -> d
-  | dl -> <:sig_item< declare $list:dl$ end >> ]
-;
-
-value extract_label_types loc tn tal cdol =
-  let (cdl, aux) =
-    List.fold_right
-      (fun (loc, c, tl, aux_opt) (cdl, aux) ->
-         match aux_opt with
-         [ Some anon_record_type ->
-             let new_tn = tn ^ "_" ^ c in
-             let loc = MLast.loc_of_ctyp anon_record_type in
-             let aux_def = ((loc, new_tn), [], anon_record_type, []) in
-             let tl = [<:ctyp< $lid:new_tn$ >>] in
-             ([(loc, c, tl) :: cdl], [aux_def :: aux])
-         | None -> ([(loc, c, tl) :: cdl], aux) ])
-      cdol ([], [])
-  in
-  [((loc, tn), tal, <:ctyp< [ $list:cdl$ ] >>, []) :: aux]
-;
-
-value function_of_clause_list loc xl =
-  let (fname, fname_loc, nbpat, l) =
-    List.fold_left
-      (fun (fname, fname_loc, nbpat, l) ((x1, loc), x2, x3, x4) ->
-         let (fname, fname_loc, nbpat) =
-           if fname = "" then (x1, loc, List.length x2)
-           else if x1 <> fname then
-             raise_with_loc loc
-               (Stream.Error ("'" ^ fname ^ "' expected"))
-           else if List.length x2 <> nbpat then
-             raise_with_loc loc
-               (Stream.Error "bad number of patterns in that clause")
-           else (fname, fname_loc, nbpat)
-         in
-         let x4 =
-           match x3 with
-           [ Some t -> <:expr< ($x4$ : $t$) >>
-           | _ -> x4 ]
-         in
-         let l = [(x2, x4) :: l] in
-         (fname, fname_loc, nbpat, l))
-      ("", loc, 0, []) xl
-  in
-  let l = List.rev l in
-  let e =
-    match l with
-    [ [(pl, e)] ->
-        List.fold_right (fun p e -> <:expr< fun $p$ -> $e$ >>) pl e
-    | _ ->
-        if nbpat = 1 then
-          let pwel =
-            List.map
-              (fun (pl, e) -> (<:patt< $List.hd pl$ >>, None, e)) l
-          in
-          <:expr< fun [ $list:pwel$ ] >>
-        else
-          let sl =
-            loop 0 where rec loop n =
-              if n = nbpat then []
-              else ["a" ^ string_of_int (n + 1) :: loop (n + 1)]
-          in
-          let e =
-            let el = List.map (fun s -> <:expr< $lid:s$ >>) sl in
-            let pwel =
-              List.map
-                (fun (pl, e) -> (<:patt< ($list:pl$) >>, None, e)) l
-            in
-            <:expr< match ($list:el$) with [ $list:pwel$ ] >>
-          in
-          List.fold_right (fun s e -> <:expr< fun $lid:s$ -> $e$ >>) sl e ]
-  in
-  (let loc = fname_loc in <:patt< $lid:fname$ >>, e)
-;
-
-value record_expr loc x1 =
-  if ocaml_records.val then <:expr< { $list:x1$ } >>
-  else
-    let list1 =
-      List.map
-        (fun (l, v) ->
-           let id =
-             match l with
-             [ <:patt< $lid:l$ >> -> l
-             | _ -> "" ]
-           in
-           let loc = MLast.loc_of_expr v in
-           <:class_str_item< value $id$ = $v$ >>)
-        x1
-    in
-    let list2 =
-      List.map
-        (fun (l, v) ->
-           let id =
-             match l with
-             [ <:patt< $lid:l$ >> -> l
-             | _ -> "" ]
-           in
-           let loc = MLast.loc_of_patt l in
-           <:class_str_item< method $id$ = $lid:id$ >>)
-        x1
-    in
-    <:expr<
-      let module M =
-        struct
-          class a = object $list:list1 @ list2$ end; 
-        end
-      in
-      new M.a
-    >>
-;
-
-value record_match_assoc loc lpl e =
-  if ocaml_records.val then (<:patt< { $list:lpl$ } >>, e)
-  else
-    let pl = List.map (fun (_, p) -> p) lpl in
-    let e =
-      let el =
-        List.map
-          (fun (l, _) ->
-             let s =
-               match l with
-               [ <:patt< $lid:l$ >> -> l
-               | _ -> "" ]
-             in
-             let loc = MLast.loc_of_patt l in
-             <:expr< v # $lid:s$ >>)
-          lpl
-      in
-      let loc = MLast.loc_of_expr e in
-      <:expr< let v = $e$ in ($list:el$) >>
-    in
-    let p = <:patt< ($list:pl$) >> in
-    (p, e)
-;
-
-value op =
-  Grammar.Entry.of_parser gram "op"
-    (parser [: `("", "op"); `(_, x) :] -> x)
-;
-lexer.Token.tok_using ("", "op");
-
-value special x =
-  if String.length x >= 2 then
-    match x.[0] with
-    [ '+' | '<' | '^' -> True
-    | _ -> False ]
-  else False
-;
-
-value idd =
-  let p =
-    parser
-    [ [: `("LIDENT", x) :] -> x
-    | [: `("UIDENT", x) :] -> x
-    | [: `("", "op"); `(_, x) :] -> x
-    | [: `("", x) when special x :] -> x ]
-  in
-  Grammar.Entry.of_parser Pcaml.gram "ID" p
-;
-
-value uncap s = String.uncapitalize s;
-
-EXTEND
-  GLOBAL: implem interf top_phrase use_file sig_item str_item ctyp patt expr
-    module_type module_expr;
-
-  implem:
-    [ [ x = interdec; EOI -> x ] ]
-  ;
-  interf:
-    [ [ x = LIST1 [ s = sig_item; OPT ";" -> (s, loc) ] -> (x, False) ] ]
-  ;
-  top_phrase:
-    [ [ ph = phrase; ";" -> Some ph
-      | EOI -> None ] ]
-  ;
-  use_file:
-    [ [ l = LIST0 phrase; EOI -> (l, False) ] ]
-  ;
-  phrase:
-    [ [ x = str_item -> x
-      | x = expr -> <:str_item< $exp:x$ >>
-      | "#"; n = LIDENT; dp = dir_param -> MLast.StDir loc n dp ] ]
-  ;
-  dir_param:
-    [ [ -> None
-      | e = expr -> Some e ] ]
-  ;
-  sdecs:
-    [ [ x = sdec; l = sdecs -> [x :: l]
-      | ";"; l = sdecs -> l
-      | -> [] ] ]
-  ;
-
-  fsigb: [ [ -> not_impl loc "fsigb" ] ];
-  fsigconstraint_op: [ [ -> not_impl loc "fsigconstraint_op" ] ];
-  fct_exp: [ [ -> not_impl loc "fct_exp" ] ];
-  exp_pa: [ [ -> not_impl loc "exp_pa" ] ];
-  rvb: [ [ -> not_impl loc "rvb" ] ];
-  tyvarseq: [ [ -> not_impl loc "tyvarseq" ] ];
-
-  tyvar_pc:
-    [ [ "'"; x1 = LIDENT -> [(x1, (False, False))]
-      | "'"; x1 = LIDENT; ","; l = tyvar_pc -> [(x1, (False, False)) :: l] ] ]
-  ;
-  id:
-    [ [ x1 = idd -> x1
-      | "*" -> "*" ] ]
-  ;
-  ident:
-    [ [ x1 = idd -> x1
-      | "*" -> "*"
-      | "=" -> "="
-      | "<" -> "<"
-      | ">" -> ">"
-      | "<=" -> "<="
-      | ">=" -> ">="
-      | "^" -> "^" ] ]
-  ;
-  op_op:
-    [ [ x1 = op -> not_impl loc "op_op 1"
-      | -> () ] ]
-  ;
-  qid:
-    [ [ x1 = idd; "."; x2 = qid -> <:module_expr< $uid:x1$ . $x2$ >>
-      | x1 = idd -> <:module_expr< $uid:x1$ >>
-      | x1 = "*" -> <:module_expr< $uid:x1$ >>
-      | x1 = "=" -> <:module_expr< $uid:x1$ >> ] ]
-  ;
-  eqid:
-    [ [ x1 = UIDENT; "."; x2 = eqid -> <:expr< $uid:x1$ . $x2$ >>
-      | x1 = UIDENT -> <:expr< $uid:x1$ >>
-      | x1 = idd -> <:expr< $lid:x1$ >>
-      | x1 = "*" -> <:expr< $lid:x1$ >>
-      | x1 = "=" -> <:expr< $lid:x1$ >> ] ]
-  ;
-  sqid:
-    [ [ x1 = idd; "."; x2 = sqid -> [x1 :: x2]
-      | x1 = idd -> [x1]
-      | x1 = "*" -> [x1]
-      | x1 = "=" -> [x1] ] ]
-  ;
-  tycon:
-    [ [ LIDENT "real" -> <:ctyp< float >>
-      | x1 = idd; "."; x2 = tycon ->
-          let r = <:ctyp< $uid:x1$ . $x2$ >> in
-          loop r where rec loop =
-            fun
-            [ <:ctyp< $a$ . ($b$ . $c$) >> -> <:ctyp< $a$ . $b$ . $loop c$ >>
-            | x -> x ]
-      | x1 = idd -> <:ctyp< $lid:uncap x1$ >> ] ]
-  ;
-  selector:
-    [ [ x1 = id -> x1
-      | x1 = INT -> not_impl loc "selector 1" ] ]
-  ;
-  tlabel:
-    [ [ x1 = selector; ":"; x2 = ctyp -> (loc, x1, False, x2) ] ]
-  ;
-  tuple_ty:
-    [ [ x1 = ctyp LEVEL "ty'"; "*"; x2 = tuple_ty -> [x1 :: x2]
-      | x1 = ctyp LEVEL "ty'" -> [x1] ] ]
-  ;
-  ctyp:
-    [ RIGHTA
-      [ x1 = ctyp; "->"; x2 = ctyp -> <:ctyp< $x1$ -> $x2$ >> ]
-    | [ x1 = ctyp; "*"; x2 = tuple_ty -> <:ctyp< ($list:[x1 :: x2]$) >> ]
-    | "ty'"
-      [ "'"; x1 = LIDENT -> <:ctyp< '$x1$ >>
-      | "'"; "'"; x1 = LIDENT -> <:ctyp< '$x1$ >>
-      | "{"; x1 = LIST1 tlabel SEP ","; "}" ->
-          if ocaml_records.val then <:ctyp< { $list:x1$ } >>
-          else
-            let list = List.map (fun (_, l, _, t) -> (l, t)) x1 in
-            <:ctyp< < $list:list$ > >>
-      | "{"; "}" -> not_impl loc "ty' 3"
-      | "("; x1 = ctyp; ","; x2 = LIST1 ctyp SEP ","; ")"; x3 = tycon ->
-          List.fold_left (fun t1 t2 -> <:ctyp< $t1$ $t2$ >>) x3 [x1 :: x2]
-      | "("; x1 = ctyp; ")" -> x1
-      | x1 = ctyp; x2 = tycon -> <:ctyp< $x2$ $x1$ >>
-      | x1 = tycon -> x1 ] ]
-  ;
-  rule:
-    [ [ x1 = patt; "=>"; x2 = expr -> (x1, None, x2) ] ]
-  ;
-  elabel:
-    [ [ x1 = selector; "="; x2 = expr -> (<:patt< $lid:x1$ >>, x2) ] ]
-  ;
-  exp_ps:
-    [ [ x1 = expr -> x1
-      | x1 = expr; ";"; x2 = exp_ps ->
-          <:expr< do { $list:[x1 :: get_seq x2]$ } >> ] ]
-  ;
-  expr:
-    [ [ "if"; x1 = expr; "then"; x2 = expr; "else"; x3 = expr ->
-          <:expr< if $x1$ then $x2$ else $x3$ >>
-      | "fn"; x1 = LIST1 rule SEP "|" -> <:expr< fun [$list:x1$] >>
-      | "case"; x1 = expr; "of"; x2 = LIST1 rule SEP "|" ->
-          <:expr< match $x1$ with [$list:x2$] >>
-      | "while"; x1 = expr; "do"; x2 = expr ->
-          <:expr< while $x1$ do { $x2$ } >>
-      | x1 = expr; "handle"; x2 = LIST1 rule SEP "|" ->
-          <:expr< try $x1$ with [$list:x2$] >> ]
-    | RIGHTA
-      [ "raise"; x1 = expr -> <:expr< raise $x1$ >> ]
-    | [ e1 = expr; ":="; e2 = expr -> <:expr< $e1$.val := $e2$ >> ]
-    | LEFTA
-      [ x1 = expr; "orelse"; x2 = expr -> <:expr< $x1$ || $x2$ >> ]
-    | LEFTA
-      [ x1 = expr; "andalso"; x2 = expr -> <:expr< $x1$ && $x2$ >> ]
-    | LEFTA
-      [ x1 = expr; ":"; x2 = ctyp -> <:expr< ($x1$ : $x2$) >> ]
-    | "4" NONA
-      [ x1 = expr; "<"; x2 = expr -> <:expr< $x1$ < $x2$ >>
-      | x1 = expr; ">"; x2 = expr -> <:expr< $x1$ > $x2$ >>
-      | x1 = expr; "<>"; x2 = expr -> <:expr< $x1$ <> $x2$ >>
-      | x1 = expr; "="; x2 = expr -> <:expr< $x1$ = $x2$ >>
-      | x1 = expr; ">="; x2 = expr -> <:expr< $x1$ >= $x2$ >>
-      | x1 = expr; "<="; x2 = expr -> <:expr< $x1$ <= $x2$ >> ]
-    | RIGHTA
-      [ x1 = expr; "^"; x2 = expr -> <:expr< $x1$ ^ $x2$ >>
-      | x1 = expr; "@"; x2 = expr -> <:expr< $x1$ @ $x2$ >>
-      | x1 = expr; "o"; x2 = expr -> <:expr< ooo $x1$ $x2$ >> ]
-    | "5" RIGHTA
-      [ x1 = expr; "::"; x2 = expr -> <:expr< [$x1$ :: $x2$] >> ]
-    | "6" LEFTA
-      [ x1 = expr; "+"; x2 = expr -> <:expr< $x1$ + $x2$ >>
-      | x1 = expr; "-"; x2 = expr -> <:expr< $x1$ - $x2$ >> ]
-    | "7" LEFTA
-      [ x1 = expr; "*"; x2 = expr -> <:expr< $x1$ * $x2$ >>
-      | x1 = expr; "/"; x2 = expr -> <:expr< $x1$ / $x2$ >>
-      | x1 = expr; "div"; x2 = expr -> <:expr< $x1$ / $x2$ >>
-      | x1 = expr; "mod"; x2 = expr -> <:expr< $x1$ mod $x2$ >> ]
-    | LEFTA
-      [ x1 = expr; x2 = expr -> <:expr< $x1$ $x2$ >> ]
-    | [ "#"; x1 = STRING -> <:expr< $chr:x1$ >>
-      | "#"; x1 = selector; x2 = expr ->
-          if ocaml_records.val then <:expr< $x2$ . $lid:x1$ >>
-          else <:expr< $x2$ # $lid:x1$ >>
-      | x1 = expr; "ocaml_record_access"; x2 = expr -> <:expr< $x1$ . $x2$ >> ]
-    | [ "!"; x1 = expr -> <:expr< $x1$ . val >>
-      | "~"; x1 = expr -> <:expr< - $x1$ >> ]
-    | [ x1 = LIDENT ->
-          match x1 with
-          [ "true" | "false" -> <:expr< $uid:String.capitalize x1$ >>
-          | "nil" -> <:expr< [] >>
-          | _ -> <:expr< $lid:x1$ >> ]
-      | x1 = UIDENT -> <:expr< $uid:x1$ >>
-      | x1 = UIDENT; "."; x2 = eqid -> <:expr< $uid:x1$ . $x2$ >>
-      | x1 = INT -> <:expr< $int:x1$ >>
-      | x1 = FLOAT -> <:expr< $flo:x1$ >>
-      | x1 = STRING -> <:expr< $str:x1$ >>
-      | "~"; x1 = INT -> <:expr< $int:"-"^x1$ >>
-      | i = op ->
-          if i = "::" then <:expr< fun (x, y) -> [x :: y] >>
-          else <:expr< fun (x, y) -> $lid:i$ x y >>
-      | "let"; x1 = ldecs; "in"; x2 = exp_ps; "end" ->
-          List.fold_right
-            (fun pel x2 ->
-               let loc =
-                 match pel with
-                 [ [(p, _) :: _] ->
-                     (fst (MLast.loc_of_patt p), snd (MLast.loc_of_expr x2))
-                 | _ -> loc ]
-               in
-               match pel with
-               [ [(_, <:expr< fun [$list:_$] >>) :: _] ->
-                   <:expr< let rec $list:pel$ in $x2$ >>
-               | _ ->
-                   let pel =
-                     List.map
-                       (fun (p, e) ->
-                          match p with
-                          [ <:patt< { $list:lpl$ } >> ->
-                              record_match_assoc (MLast.loc_of_patt p) lpl e
-                          | _ -> (p, e) ])
-                       pel
-                   in
-                   <:expr< let $list:pel$ in $x2$ >> ])
-            x1 x2
-      | "{"; x1 = LIST1 elabel SEP ","; "}" -> record_expr loc x1
-      | "["; "]" -> <:expr< [] >>
-      | "["; x1 = expr; "]" -> <:expr< [$x1$] >>
-      | "["; x1 = expr; ","; x2 = LIST1 SELF SEP ","; "]" ->
-          mklistexp loc None [x1 :: x2]
-      | "("; ")" -> <:expr< () >>
-      | "("; x1 = expr; ","; x2 = LIST1 SELF SEP ","; ")" ->
-          <:expr< ($list:[x1::x2]$) >>
-      | "("; x1 = expr; ";"; x2 = LIST1 SELF SEP ";"; ")" ->
-          <:expr< do { $list:[x1::x2]$ } >>
-      | "("; x1 = expr; ")" -> x1 ] ]
-  ;
-  fixity:
-    [ [ "infix" -> ("infix", None)
-      | "infix"; x1 = INT -> not_impl loc "fixity 2"
-      | "infixr" -> not_impl loc "fixity 3"
-      | "infixr"; x1 = INT -> ("infixr", Some x1)
-      | "nonfix" -> not_impl loc "fixity 5" ] ]
-  ;
-  patt:
-    [ [ x1 = patt; "as"; x2 = patt -> <:patt< ($x1$ as $x2$) >> ]
-    | LEFTA
-      [ x1 = patt; ":"; x2 = ctyp -> <:patt< ($x1$ : $x2$) >> ]
-    | RIGHTA
-      [ x1 = patt; "::"; x2 = patt -> <:patt< [$x1$ :: $x2$] >> ]
-    | [ x1 = patt; x2 = patt ->
-          match x1 with
-          [ <:patt< ref >> -> <:patt< {contents = $x2$} >>
-          | _ -> <:patt< $x1$ $x2$ >> ] ]
-    | "apat"
-      [ x1 = patt; "."; x2 = patt -> <:patt< $x1$ . $x2$ >>
-      | x1 = INT -> <:patt< $int:x1$ >>
-      | x1 = UIDENT -> <:patt< $uid:x1$ >>
-      | x1 = STRING -> <:patt< $str:x1$ >>
-      | "#"; x1 = STRING -> <:patt< $chr:x1$ >>
-      | "~"; x1 = INT -> <:patt< $int:"-"^x1$ >>
-      | LIDENT "nil" -> <:patt< [] >>
-      | LIDENT "false" -> <:patt< False >>
-      | LIDENT "true" -> <:patt< True >>
-      | x1 = id -> <:patt< $lid:x1$ >>
-      | x1 = op -> <:patt< $lid:x1$ >>
-      | "_" -> <:patt< _ >>
-      | "["; "]" -> <:patt< [] >>
-      | "["; x1 = patt; "]" -> <:patt< [$x1$] >>
-      | "["; x1 = patt; ","; x2 = LIST1 SELF SEP ","; "]" ->
-          mklistpat loc None [x1 :: x2]
-      | "{"; x1 = LIST1 plabel SEP ","; "}" -> <:patt< {$list:x1$} >>
-      | "("; ")" -> <:patt< () >>
-      | "("; x1 = patt; ","; x2 = LIST1 SELF SEP ","; ")" ->
-          <:patt< ($list:[x1::x2]$) >>
-      | "("; x1 = patt; ")" -> x1 ] ]
-  ;
-  plabel:
-    [ [ x1 = selector; "="; x2 = patt -> (<:patt< $lid:x1$ >>, x2)
-      | x1 = selector -> (<:patt< $lid:x1$ >>, <:patt< $lid:x1$ >>) ] ]
-  ;
-  vb:
-    [ [ "lazy"; x1 = patt; "="; x2 = expr -> not_impl loc "vb 1"
-      | x1 = patt; "="; x2 = expr -> (x1, x2) ] ]
-  ;
-  constrain:
-    [ [ -> None
-      | ":"; x1 = ctyp -> Some x1 ] ]
-  ;
-  fb:
-    [ [ xl = LIST1 clause SEP "|" -> function_of_clause_list loc xl
-      | "lazy"; x1 = LIST1 clause SEP "|" -> not_impl loc "fb 2" ] ]
-  ;
-  clause:
-    [ [ x1 = patt LEVEL "apat"; x2 = LIST1 (patt LEVEL "apat");
-        x3 = constrain; "="; x4 = expr ->
-          let x1 =
-            match x1 with
-            [ <:patt< $lid:id$ >> -> (id, MLast.loc_of_patt x1)
-            | _ -> not_impl loc "clause 1" ]
-          in
-          (x1, x2, x3, x4) ] ]
-  ;
-  tb:
-    [ [ x1 = tyvars; x2 = idd; "="; x3 = ctyp ->
-          ((loc, uncap x2), x1, x3, [])
-      | x1 = tyvars; x2 = idd; "="; x3 = ctyp; "=="; x4 = dbrhs ->
-          let x4 = List.map (fun (loc, c, tl, _) -> (loc, c, tl)) x4 in
-          ((loc, uncap x2), x1, <:ctyp< $x3$ == [ $list:x4$ ] >>, []) ] ]
-  ;
-  tyvars:
-    [ [ "'"; x1 = LIDENT -> [(x1, (False, False))]
-      | "("; x1 = tyvar_pc; ")" -> x1
-      | -> [] ] ]
-  ;
-  db1:
-    [ [ x1 = tyvars; x2 = ident; "="; x3 = dbrhs ->
-          let x2 = uncap x2 in
-          extract_label_types loc x2 x1 x3
-      | "lazy"; x1 = tyvars; x2 = ident; "="; x3 = dbrhs ->
-          not_impl loc "db 2" ] ]
-  ;
-  db:
-    [ [ x1 = LIST1 db1 SEP "and" ->
-          List.fold_right (fun td tdl -> td @ tdl) x1 [] ] ]
-  ;
-  dbrhs:
-    [ [ x1 = LIST1 constr SEP "|"  -> x1
-      | "datatype"; x1 = tycon -> not_impl loc "dbrhs 2" ] ]
-  ;
-  constr:
-    [ [ x1 = op_op; x2 = ident -> (loc, x2, [], None)
-      | x1 = op_op; x2 = ident; "of"; x3 = ctyp ->
-          match x3 with
-          [ <:ctyp< {$list:_$} >> -> (loc, x2, [], Some x3)
-          | _ -> (loc, x2, [x3], None) ] ] ]
-  ;
-  eb:
-    [ [ x1 = op_op; x2 = ident -> (x2, [], [])
-      | x1 = op_op; x2 = ident; "of"; x3 = ctyp -> (x2, [x3], [])
-      | x1 = op_op; x2 = ident; "="; x3 = sqid -> (x2, [], x3) ] ]
-  ;
-  ldec1:
-    [ [ "val"; x1 = LIST1 vb SEP "and" -> x1
-      | "fun"; x1 = LIST1 fb SEP "and" -> x1 ] ]
-  ;
-  ldecs:
-    [ [ -> []
-      | x1 = ldec1; x2 = ldecs -> [x1 :: x2]
-      | ";"; x1 = ldecs -> x1
-      | "local"; x1 = ldecs; "in"; x2 = ldecs; "end"; x3 = ldecs ->
-          not_impl loc "ldecs 4" ] ]
-  ;
-  spec_s:
-    [ [ -> []
-      | x1 = spec; x2 = spec_s -> [x1 :: x2]
-      | ";"; x1 = spec_s -> x1 ] ]
-  ;
-  spec:
-   [ [ "structure"; x1 = LIST1 strspec SEP "and" -> sig_declare loc x1
-     | "functor"; x1 = LIST1 fctspec SEP "and" -> sig_declare loc x1
-     | "datatype"; x1 = db -> <:sig_item< type $list:x1$ >>
-     | "type"; x1 = LIST1 tyspec SEP "and" -> <:sig_item< type $list:x1$ >>
-     | "eqtype"; x1 = LIST1 tyspec SEP "and" -> <:sig_item< type $list:x1$ >>
-     | "val"; x1 = LIST1 valspec SEP "and" -> sig_declare loc x1
-     | "exception"; x1 = LIST1 exnspec SEP "and" -> sig_declare loc x1
-     | "sharing"; x1 = LIST1 sharespec SEP "and" -> <:sig_item< declare end >>
-     | "include"; x1 = module_type -> <:sig_item< include $x1$ >> ] ]
-  ;
-  sig_item:
-    [ [ x = spec -> x ] ]
-  ;
-  strspec:
-    [ [ x1 = ident; ":"; x2 = module_type; x3 = LIST0 sharing_def ->
-          let x2 =
-            List.fold_left
-              (fun mt sdl ->
-                 List.fold_right
-                   (fun spl mt ->
-                      match spl with
-                      [ Right ([m1], m2) ->
-                          let (m1, m2) =
-                            match m2 with
-                            [ <:module_expr< $uid:x$ . $_$ >> ->
-                                if x = x1 then (m2, m1) else (m1, m2)
-                            | _ -> (m1, m2) ]
-                          in
-                          let m1 =
-                            loop m1 where rec loop =
-                              fun
-                              [ <:module_expr< $uid:x$ >> -> x
-                              | <:module_expr< $uid:x$ . $y$ >> -> loop y
-                              | _ -> not_impl loc "strspec 2" ]
-                          in
-                          <:module_type< $mt$ with module $[m1]$ = $m2$ >>
-                      | _ -> not_impl loc "strspec 1" ])
-                   sdl mt)
-              x2 x3
-          in
-          <:sig_item< module $x1$ : $x2$ >> ] ]
-  ;
-  sharing_def:
-    [ [ "sharing"; x3 = LIST1 sharespec SEP "and" -> x3 ] ]
-  ;
-  fctspec:
-    [ [ x1 = ident; x2 = fsig -> <:sig_item< module $x1$ : $x2$ >> ] ]
-  ;
-  tyspec:
-    [ [ x1 = tyvars; x2 = idd ->
-          ((loc, uncap x2), x1, <:ctyp< '$choose_tvar x1$ >>, [])
-      | x1 = tyvars; x2 = idd; "="; x3 = ctyp ->
-          ((loc, uncap x2), x1, x3, []) ] ]
-  ;
-  valspec:
-    [ [ x1 = op_op; x2 = ident; ":"; x3 = ctyp ->
-          <:sig_item< value $x2$ : $x3$ >> ] ]
-  ;
-  exnspec:
-    [ [ x1 = ident -> <:sig_item< exception $x1$ >>
-      | x1 = ident; "of"; x2 = ctyp ->
-          <:sig_item< exception $x1$ of $x2$ >> ] ]
-  ;
-  sharespec:
-    [ [ "type"; x1 = patheqn -> Left x1
-      | x1 = patheqn -> Right x1 ] ]
-  ;
-  patheqn:
-    [ [ l = patheqn1 -> l ] ]
-  ;
-  patheqn1:
-    [ [ (l, y) = patheqn1; "="; x = qid -> ([y :: l], x)
-      | x = qid -> ([], x) ] ]
-  ;
-  whspec:
-    [ [ "type"; x1 = tyvars; x2 = sqid; "="; x3 = ctyp ->
-          MLast.WcTyp loc x2 x1 x3
-      | x1 = sqid; "="; x2 = qid -> MLast.WcMod loc x1 x2 ] ]
-  ;
-  module_type:
-    [ [ x1 = ident -> <:module_type< $uid:x1$ >>
-      | "sig"; x1 = spec_s; "end" -> <:module_type< sig $list:x1$ end >>
-      | x1 = module_type; "where"; x2 = LIST1 whspec SEP "and" ->
-          <:module_type< $x1$ with $list:x2$ >> ] ]
-  ;
-  sigconstraint_op:
-    [ [ -> None
-      | ":"; x1 = module_type -> Some x1
-      | ":>"; x1 = module_type -> not_impl loc "sigconstraint_op 3" ] ]
-  ;
-  sigb:
-    [ [ x1 = ident; "="; x2 = module_type ->
-          <:str_item< module type $x1$ = $x2$ >> ] ]
-  ;
-  fsig:
-    [ [ ":"; x1 = ident -> not_impl loc "fsig 1"
-      | x1 = fparamList; ":"; x2 = module_type -> not_impl loc "fsig 2" ] ]
-  ;
-  module_expr:
-    [ [ x1 = qid -> x1
-      | "struct"; x1 = strdecs; "end" -> <:module_expr< struct $list:x1$ end >>
-      | x1 = qid; x2 = arg_fct ->
-          match x2 with
-          [ Left [] -> x1
-          | Left x2 -> <:module_expr< $x1$ (struct $list:x2$ end) >>
-          | Right x2 -> <:module_expr< $x1$ $x2$ >> ]
-      | "let"; x1 = strdecs; "in"; x2 = module_expr; "end" ->
-          not_impl loc "str 4"
-      | x1 = module_expr; ":"; x2 = module_type -> not_impl loc "str 5"
-      | x1 = module_expr; x2 = ":>"; x3 = module_type ->
-          not_impl loc "str 6" ] ]
-  ;
-  arg_fct:
-    [ [ "("; x1 = strdecs; ")"; x2 = arg_fct -> not_impl loc "arg_fct 1"
-      | "("; x1 = module_expr; ")"; x2 = arg_fct -> not_impl loc "arg_fct 2"
-      | "("; x1 = module_expr; ")" -> Right x1
-      | "("; x2 = strdecs; ")" -> Left x2 ] ]
-  ;
-  strdecs:
-    [ [ x1 = str_item LEVEL "strdec"; x2 = strdecs -> [x1 :: x2]
-      | ";"; x1 = strdecs -> x1
-      | -> [] ] ]
-  ;
-  str_item:
-    [ [ "signature"; x1 = LIST1 sigb SEP "and" -> str_declare loc x1
-      | "funsig"; x1 = fsigb -> not_impl loc "sdec 3" ]
-    | "strdec"
-      [ "structure"; x1 = LIST1 strb SEP "and" -> str_declare loc x1
-      | "functor"; x1 = LIST1 fctb SEP "and" -> str_declare loc x1
-      | "local"; x1 = sdecs; "in"; x2 = sdecs; "end" ->
-          make_local loc x1 x2 ]
-    | [ "val"; x1 = LIST1 vb SEP "and" -> <:str_item< value $list:x1$ >>
-      | "val"; x1 = tyvarseq; x3 = LIST1 vb SEP "and" ->
-          not_impl loc "ldec 2"
-      | "val"; "rec"; x1 = rvb -> not_impl loc "ldec 3"
-      | "val"; "rec"; x1 = tyvarseq; x2 = rvb -> not_impl loc "ldec 4"
-      | "fun"; x1 = LIST1 fb SEP "and" -> <:str_item< value rec $list:x1$ >>
-      | "fun"; x1 = tyvarseq; x2 = fb -> not_impl loc "ldec 6"
-      | "type"; x1 = LIST1 tb SEP "and" -> <:str_item< type $list:x1$ >>
-      | "datatype"; x1 = db -> <:str_item< type $list:x1$ >>
-      | "datatype"; x1 = db; "withtype"; x2 = tb ->
-          <:str_item< type $list:x1 @ [x2]$ >>
-      | "abstype"; x1 = db; "with"; x2 = ldecs; "end" -> not_impl loc "ldec 10"
-      | "abstype"; x1 = db; "withtype"; x2 = tb; "with"; x3 = ldecs; "end" ->
-          not_impl loc "ldec 11"
-      | "exception"; x1 = LIST1 eb SEP "and" ->
-          let dl =
-            List.map
-              (fun (s, tl, eqn) ->
-                 <:str_item< exception $s$ of $list:tl$ = $eqn$ >>)
-              x1
-          in
-          str_declare loc dl
-      | "open"; x1 = LIST1 sqid ->
-          let dl = List.map (fun sl -> <:str_item< open $sl$ >>) x1 in
-          str_declare loc dl
-      | LIDENT "use"; s = STRING ->
-          <:str_item< #use $str:s$ >>
-      | x1 = fixity; list = LIST1 idd ->
-          match x1 with
-          [ ("infixr", Some n) ->
-              do {
-                List.iter
-                  (fun s ->
-                     EXTEND
-                       expr: LEVEL $n$
-                         [ [ x1 = expr; $s$; x2 = expr ->
-                               <:expr< $lid:s$ ($x1$, $x2$) >> ] ]
-                       ;
-                     END)
-                  list;
-                  str_declare loc []
-              }
-          | ("infix", None) ->
-              do {
-                List.iter
-                  (fun s ->
-                     EXTEND
-                       expr: LEVEL "4"
-                         [ [ x1 = expr; $s$; x2 = expr ->
-                               <:expr< $lid:s$ ($x1$, $x2$) >> ] ]
-                       ;
-                       clause:
-                         [ [ x1 = patt LEVEL "apat"; $s$;
-                             x2 = patt LEVEL "apat"; "="; x4 = expr ->
-                               ((s, loc), [<:patt< ($x1$, $x2$) >>],
-                                None, x4) ] ]
-                       ;
-                     END)
-                  list;
-                  str_declare loc []
-              }
-          | _ -> not_impl loc "ldec 14" ]
-      | "overload"; x1 = ident; ":"; x2 = ctyp; "as"; x3 = exp_pa ->
-          not_impl loc "ldec 15"
-      | x = expr -> <:str_item< $exp:x$ >> ] ]
-  ;
-  sdec:
-    [ [ x = str_item -> x ] ]
-  ;
-  strb:
-    [ [ x1 = ident; x2 = sigconstraint_op; "="; x3 = module_expr ->
-          let x3 =
-            match x2 with
-            [ Some x2 -> <:module_expr< ($x3$ : $x2$) >>
-            | None -> x3 ]
-          in
-          <:str_item< module $x1$ = $x3$ >> ] ]
-  ;
-  fparam:
-    [ [ x1 = idd; ":"; x2 = module_type -> [<:sig_item< module $x1$ : $x2$ >>]
-      | x1 = spec_s -> x1 ] ]
-  ;
-  fparamList:
-    [ [ "("; x1 = fparam; ")" -> [x1]
-      | "("; x1 = fparam; ")"; x2 = fparamList -> [x1 :: x2] ] ]
-  ;
-  fctb:
-    [ [ x1 = ident; x2 = fparamList; x3 = sigconstraint_op; "=";
-        x4 = module_expr ->
-          let list = List.flatten x2 in
-          let x4 =
-            if list = [] then x4
-            else
-              match x4 with
-              [ <:module_expr< struct $list:list$ end >> ->
-                  let si =
-                    let loc = (Token.nowhere, Token.nowhere) in
-                    <:str_item< open AAA >> in
-                  <:module_expr< struct $list:[si :: list]$ end >>
-              | _ -> not_impl loc "fctb 1" ]
-          in
-          let x4 =
-            match x3 with
-            [ Some x3 -> <:module_expr< ($x4$ : $x3$) >>
-            | None -> x4 ]
-          in
-          let x4 =
-            if list = [] then x4
-            else
-              let mt =
-                let loc =
-                  (fst (MLast.loc_of_sig_item (List.hd list)),
-                   snd (MLast.loc_of_sig_item (List.hd (List.rev list))))
-                in
-                <:module_type< sig $list:list$ end >>
-              in
-              <:module_expr< functor (AAA : $mt$) -> $x4$ >>
-          in
-          <:str_item< module $x1$ = $x4$ >>
-      | x1 = ident; x2 = fsigconstraint_op; "="; x3 = fct_exp ->
-          not_impl loc "fctb 2" ] ]
-  ;
-  interdec:
-    [ [ x = LIST1 [ s = str_item; OPT ";" -> (s, loc) ] -> (x, False)
-      | x = expr; OPT ";" -> not_impl loc "interdec 2" ] ]
-  ;
-END;
-
-Pcaml.add_option "-records" (Arg.Set ocaml_records)
-  "Convert record into OCaml records, instead of objects";
diff --git a/camlp4/unmaintained/sml/smllib.sml b/camlp4/unmaintained/sml/smllib.sml
deleted file mode 100644 (file)
index 5ecd093..0000000
+++ /dev/null
@@ -1,395 +0,0 @@
-(***********************************************************************)
-(*                                                                     *)
-(*                             Camlp4                                  *)
-(*                                                                     *)
-(*        Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt     *)
-(*                                                                     *)
-(*  Copyright 2002 Institut National de Recherche en Informatique et   *)
-(*  Automatique.  Distributed only by permission.                      *)
-(*                                                                     *)
-(***********************************************************************)
-
-
-
-datatype 'a option = SOME of 'a | NONE
-exception Fail of string
-exception Domain
-exception Subscript
-type 'a vector = 'a array
-
-structure OCaml =
-  struct
-    structure List = List
-    structure String = String
-  end
-
-structure Time =
-  struct
-    datatype time = TIME of { sec : int, usec : int }
-    fun toString _ = failwith "not implemented Time.toString"
-    fun now _ = failwith "not implemented Time.now"
-  end
-
-datatype cpu_timer =
-  CPUT of { gc : Time.time, sys : Time.time, usr : Time.time }
-
-datatype real_timer =
-  RealT of Time.time
-
-structure Char =
-  struct
-    val ord = Char.code
-  end
-
-structure General =
-  struct
-    datatype order = LESS | EQUAL | GREATER
-  end
-type order = General.order == LESS | EQUAL | GREATER
-
-structure OS =
-  struct
-    exception SysErr
-    structure Path =
-      struct
-        fun dir s =
-          let val r = Filename.dirname s in
-            if r = "." then "" else r
-          end
-        val file = Filename.basename
-        fun ext s =
-          let fun loop i =
-            if i < 0 then NONE
-            else if String.get s i = #"." then
-              let val len = String.length s - i - 1 in
-                if len = 0 then NONE else SOME (String.sub s (i + 1) len)
-              end
-            else loop (i - 1)
-          in
-            loop (String.length s - 1)
-          end
-        fun splitDirFile s =
-          {dir = Filename.dirname s,
-           file = Filename.basename s}
-        fun joinDirFile x =
-          let val {dir,file} = x in Filename.concat dir file end
-      end
-    structure FileSys =
-      struct
-        datatype access_mode = A_READ | A_WRITE | A_EXEC
-        val chDir = Sys.chdir
-        fun isDir s =
-          (Unix.stat s) ocaml_record_access Unix.st_kind = Unix.S_DIR
-          handle Unix.Unix_error _ => raise SysErr
-        fun access (s, accs) =
-          let val st = Unix.stat s
-              val prm = st ocaml_record_access Unix.st_perm
-              val prm =
-                if st ocaml_record_access Unix.st_uid = Unix.getuid () then
-                  lsr prm 6
-                else if st ocaml_record_access Unix.st_uid = Unix.getgid ()
-                then
-                  lsr prm 3
-                else prm
-              val rf =
-                if List.mem A_READ accs then land prm 4 <> 0 else true
-              val wf =
-                if List.mem A_WRITE accs then land prm 2 <> 0 else true
-              val xf =
-                if List.mem A_EXEC accs then land prm 1 <> 0 else true
-          in
-            rf andalso wf andalso xf
-          end
-          handle Unix.Unix_error (_, f, _) =>
-            if f = "stat" then false else raise SysErr
-      end
-    structure Process =
-      struct
-        fun system s = (flush stdout; flush stderr; Sys.command s)
-        fun getEnv s = SOME (Sys.getenv s) handle Not_found => NONE
-        val success = 0
-      end
-  end
-
-exception SysErr = OS.SysErr
-
-structure IO =
-  struct
-    exception Io of {cause:exn, function:string, name:string}
-  end
-
-structure TextIO =
-  struct
-    type instream = in_channel * char option option ref
-    type outstream = out_channel
-    type elem = char
-    type vector = string
-    fun openIn fname =
-      (open_in fname, ref NONE) handle exn =>
-        raise IO.Io {cause = exn, function = "openIn", name = fname}
-    val openOut = open_out
-    fun closeIn (ic, ahc) = (ahc := SOME NONE; close_in ic)
-    val closeOut = close_out
-    val stdIn = (stdin, ref (NONE : char option option))
-    fun endOfStream (ic, _) = pos_in ic = in_channel_length ic
-    fun inputLine (ic, ahc) =
-      case !ahc of
-        NONE =>
-          (input_line ic ^ "\n" handle End_of_file => (ahc := SOME NONE; ""))
-      | SOME NONE => ""
-      | SOME (SOME c) =>
-          (ahc := NONE;
-           if c = #"\n" then "\n"
-           else
-             String.make 1 c ^ input_line ic ^ "\n" handle
-               End_of_file => (ahc := SOME NONE; ""))
-    fun input1 (ic, ahc) =
-      case !ahc of
-        NONE =>
-          (SOME (input_char ic) handle End_of_file => (ahc := SOME NONE; NONE))
-      | SOME NONE => NONE
-      | SOME x => (ahc := NONE; x)
-    fun inputN (ins, n) =
-      let fun loop n =
-        if n <= 0 then ""
-        else
-          case input1 ins of
-            SOME c => String.make 1 c ^ loop (n - 1)
-          | NONE => ""
-      in
-        loop n
-      end
-    fun output (oc, v) = output_string oc v
-    fun inputAll ic = failwith "not implemented TextIO.inputAll"
-    fun lookahead (ic, ahc) =
-      case !ahc of
-        NONE => let val r = SOME (input_char ic) in ahc := SOME r; r end
-      | SOME x => x
-    fun print s = (print_string s; flush stdout)
-  end
-
-structure Timer =
-  struct
-    fun startRealTimer () = failwith "not implemented Timer.startRealTimer"
-    fun startCPUTimer () = failwith "not implemented Timer.startCPUTimer"
-    fun checkRealTimer _ = failwith "not implemented Timer.checkRealTimer"
-    fun checkCPUTimer _ = failwith "not implemented Timer.checkCPUTimer"
-  end
-
-structure Date =
-  struct
-    datatype month =
-      Jan | Feb | Mar | Apr | May | Jun | Jul | Sep | Oct | Nov | Dec
-    datatype wday = Sun | Mon | Tue | Wed | Thu | Fri | Sat
-    datatype date =
-      DATE of
-        {day : int, hour : int, isDst : bool option, minute : int,
-         month : month, offset : int option, second : int, wday : wday,
-         yday : int, year : int}
-    fun fmt _ _ = failwith "not implemented Date.fmt"
-    fun fromTimeLocal _ = failwith "not implemented Date.fromTimeLocal"
-  end
-
-structure Posix =
-  struct
-    structure ProcEnv =
-      struct
-        fun getenv s = SOME (Sys.getenv s) handle Not_found => NONE
-      end
-  end
-
-structure SMLofNJ =
-  struct
-    fun exportML s = failwith ("not implemented exportML " ^ s)
-  end
-
-fun null x = x = []
-fun explode s =
-  let fun loop i =
-    if i = String.length s then []
-    else String.get s i :: loop (i + 1)
-  in
-    loop 0
-  end
-
-val app = List.iter
-fun implode [] = ""
-  | implode (c :: l) = String.make 1 c ^ implode l
-
-fun ooo f g x = f (g x)
-
-structure Array =
-  struct
-    fun array (len, v) = Array.create len v
-    fun sub _ = failwith "not implemented Array.sub"
-    fun update _ = failwith "not implemented Array.update"
-    (* for make the profiler work *)
-    val set = Array.set
-    val get = Array.get
-  end
-
-structure Vector =
-  struct
-    fun tabulate _ = failwith "not implemented Vector.tabulate"
-    fun sub _ = failwith "not implemented Vector.sub"
-  end
-
-structure Bool =
-  struct
-    val toString = string_of_bool
-  end
-
-structure String =
-  struct
-    val size = String.length
-    fun substring (s, beg, len) =
-      String.sub s beg len handle Invalid_argument _ => raise Subscript
-    val concat = String.concat ""
-    fun sub (s, i) = String.get s i
-    val str = String.make 1
-    fun compare (s1, s2) =
-      if s1 < s2 then LESS
-      else if s1 > s2 then GREATER
-      else EQUAL
-    fun isPrefix s1 s2 =
-      let fun loop i1 i2 =
-        if i1 >= String.length s1 then true
-        else if i2 >= String.length s2 then false
-        else if String.get s1 i1 = String.get s2 i2 then loop (i1 + 1) (i2 + 1)
-        else false
-      in
-        loop 0 0
-      end
-    fun tokens p s =
-      let fun loop tok i =
-        if i >= String.length s then
-          if tok = "" then [] else [tok]
-        else if p (String.get s i) then
-          if tok <> "" then tok :: loop "" (i + 1)
-          else loop "" (i + 1)
-        else loop (tok ^ String.make 1 (String.get s i)) (i + 1)
-      in
-        loop "" 0
-      end
-    fun extract _ = failwith "not implemented String.extract"
-  end
-
-structure Substring =
-  struct
-    type substring = string * int * int
-    fun string (s : substring) = String.substring s
-    fun all s : substring = (s, 0, String.size s)
-    fun splitl f ((s, beg, len) : substring) : substring * substring =
-      let fun loop di =
-        if di = len then ((s, beg, len), (s, 0, 0))
-        else if f (String.sub (s, beg + di)) then loop (di + 1)
-        else ((s, beg, di), (s, beg + di, len - di))
-      in
-        loop 0
-      end
-    fun getc (s, i, len) =
-      if len > 0 andalso i < String.size s then
-        SOME (String.sub (s, i), (s, i+1, len-1))
-      else NONE
-    fun slice _ = failwith "not implemented: Substring.slice"
-    fun isEmpty (s, beg, len) = len = 0
-    fun concat sl = String.concat (List.map string sl)
-  end
-type substring = Substring.substring
-
-structure StringCvt =
-  struct
-    datatype radix = BIN | OCT | DEC | HEX
-    type ('a, 'b) reader = 'b -> ('a * 'b) option 
-  end
-
-structure ListPair =
-  struct
-    fun zip (a1::l1, a2::l2) = (a1, a2) :: zip (l1, l2)
-      | zip _ = []
-    val unzip = List.split
-    fun all f (x1 :: l1, x2 :: l2) = f (x1, x2) andalso all f (l1, l2)
-      | all _ _ = true
-    fun map f (a1::l1, a2::l2) =
-          let val r = f (a1, a2) in r :: map f (l1, l2) end
-      | map _ _ = []
-  end
-
-structure ListMergeSort =
-  struct
-    fun uniqueSort cmp l =
-      List.sort
-       (fn x => fn y =>
-          case cmp (x, y) of
-            LESS => ~1
-          | EQUAL => 0
-          | GREATER => 1)
-       l
-  end
-
-structure List =
-  struct
-    exception Empty
-    fun hd [] = raise Empty
-      | hd (x :: l) = x
-    fun tl [] = raise Empty
-      | tl (x :: l) = l
-    fun foldr f a l =
-      let fun loop a [] = a
-            | loop a (x :: l) = loop (f (x, a)) l
-      in
-        loop a (List.rev l)
-      end
-    fun foldl f a l = List.fold_left (fn a => fn x => f (x, a)) a l
-    val concat = List.flatten
-    val exists = List.exists
-    val filter = List.filter
-    val length = List.length
-    val map = List.map
-    val rev = List.rev
-    val all = List.for_all
-    fun find f [] = NONE
-      | find f (x :: l) = if f x then SOME x else find f l
-    fun last s =
-      case List.rev s of
-        [] => raise Empty
-      | x :: _ => x
-    fun take _ = failwith "not implemented: List.take"
-    fun partition _ = failwith "not implemented: List.partition"
-    fun mapPartial f [] = []
-      | mapPartial f (x :: l) =
-          case f x of
-            NONE => mapPartial f l
-          | SOME y => y :: mapPartial f l
-    fun op @ l1 l2 = List.rev_append (List.rev l1) l2
-  end
-
-structure Int =
-  struct
-    type int1 = int
-    type int = int1
-    val toString = string_of_int
-    fun fromString s = SOME (int_of_string s) handle Failure _ => NONE
-    fun min (x, y) = if x < y then x else y
-    fun max (x, y) = if x > y then x else y
-    fun scan radix getc src = failwith "not impl: Int.scan"
-  end
-
-val foldr = List.foldr
-val exists = List.exists
-val size = String.size
-val substring = String.substring
-val concat = String.concat
-val length = List.length
-val op @ = List.op @
-val hd = List.hd
-val tl = List.tl
-val map = List.map
-val rev = List.rev
-val use_hook = ref (fn (s : string) => (failwith "no defined directive use" : unit))
-fun use s = !use_hook s
-fun isSome (SOME _) = true
-  | isSome NONE = false
-fun valOf (SOME x) = x
-  | valOf NONE = failwith "valOf"
-val print = TextIO.print
index dd65452a94b1e65d3c315ddb1e8674fdc50fe03c..3c88f912a0583ca2067defaae034c9ded70e16be 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile-templ 9547 2010-01-22 12:48:24Z doligez $
 
 ### Compile-time configuration
 
index d1e40bb1d73a4502ef0f95c11c9fcba1707d7a95..1a95691cfb712c67562d5a5be44e68bc5a718b92 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.mingw 10461 2010-05-25 10:00:39Z frisch $
 
 # Configuration for Windows, Mingw compiler
 
@@ -70,6 +70,7 @@ DEBUGGER=ocamldebugger
 CC_PROFILE=
 SYSTHREAD_SUPPORT=true
 EXTRALIBS=
+NATDYNLINK=true
 CMXS=cmxs
 
 ########## Configuration for the bytecode compiler
index 4bbf54451f1daa37c9a8472ccfe12346fe7cb8f1..05c4dc48beb6cd1258cc20db83d5f9c12c7fdce2 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.msvc 10461 2010-05-25 10:00:39Z frisch $
 
 # Configuration for Windows, Visual C++ compiler
 
@@ -70,6 +70,7 @@ CC_PROFILE=
 SYSTHREAD_SUPPORT=true
 EXTRALIBS=
 CMXS=cmxs
+NATDYNLINK=true
 
 ########## Configuration for the bytecode compiler
 
index 3dd60b9d4f4ae8a1e2c475675a3443c3a89400cd..8918ec4ba2d1278cdffacbe7abf442552b74b05c 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.msvc64 10461 2010-05-25 10:00:39Z frisch $
 
 # Configuration for Windows, Visual C++ compiler
 
@@ -70,6 +70,7 @@ DEBUGGER=ocamldebugger
 CC_PROFILE=
 SYSTHREAD_SUPPORT=true
 CMXS=cmxs
+NATDYNLINK=true
 
 ########## Configuration for the bytecode compiler
 
index 0bedf77a02407a9d52dcbacb952c3fb433abeda1..b98e33da6e105372864a8ba65ac3f8e8cd49f959 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: align.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <stdio.h>
 #include <signal.h>
index 2b5faa2d70ccd9af3e5a1b171de008dadc0f78f8..10aaa764f9bd0d8a8d2fc50c637796e5010a46cf 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: async_io.c 5393 2003-02-11 14:05:36Z xleroy $ */
 
 #include <stdio.h>
 #include <fcntl.h>
index 923b444e5bcfe4df04b1054c75149ab74f14111b..a16f397867cb3e9a689f54b0962481217936d1bc 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bytecopy.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 char buffer[27];
 
index c2520381ce1434d81002a116cfa1537fb7d79215..6877bc70515d7c12c2b1d0cfe67ae370c8e67848 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dblalign.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <stdio.h>
 #include <signal.h>
index 8f69dabf350da1ddf7471d533b108142a788bd27..97807b62f8062c1ae647fd832be6edeea1a88006 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: divmod.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Test semantics of division and modulus for negative arguments */
 
index 026c4838ebf380ca7ce7f9132cc50057f141ac19..e0f6653a7266647405067820be349de8c5cee2ff 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: elf.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <stdio.h>
 
index def617f0f5c0fcd1be2c45c09df4174119cab485..d3b622a059ec7612d1b335ff27760e996450c46e 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: endian.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include "m.h"
 
index 1ed8a1fbb1331ea98d90cd4e196f4100f8514a5c..547d5e4aa22d752449625824b4d9a1aaa8ed56de 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getgroups.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <sys/types.h>
 #include <limits.h>
index c5dd129719b568a1c2f9dd24a122ffeb9b6e4bd8..c11bb0198732fa9fdb959c88e58427af3acbfc7e 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gethostbyaddr.c 4771 2002-05-06 08:29:52Z xleroy $ */
 
 #ifndef _REENTRANT
 /* This helps detection on Digital Unix... */
index 043b9d33436ac6bce9d8a6e3552ff2b9ac351c58..270905f228adee6ef19675bfdced50122151441a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gethostbyname.c 4771 2002-05-06 08:29:52Z xleroy $ */
 
 #ifndef _REENTRANT
 /* This helps detection on Digital Unix... */
index cbe114626a8bc2fe9a46351b22e016bfc836704a..41d62017b16ecb0bfe3103657595494329f0f7d2 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: ia32sse2.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 /* Test whether IA32 assembler supports SSE2 instructions */
 
index b6e0ffbdf278751f520ef568df3d35b7e96e92d9..cd1a27c4104f0bd26d60f2995ec77a1983e96d27 100644 (file)
@@ -11,7 +11,7 @@
 
 /* Contributed by Stephane Glondu <steph@glondu.net> */
 
-/* $Id$ */
+/* $Id: initgroups.c 9220 2009-04-01 16:50:10Z xleroy $ */
 
 #include <errno.h>
 
index 6bdd25567a53541b03b97f490a68c66655b3a761..784b2eab061af00ef6877edb83042f17bbd21b04 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: int64align.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <stdio.h>
 #include <signal.h>
index bcdf4c974ba56d987e4b80c0790d87a9d28282f2..fd77588d5c151a47c906c9e0721b5688958a3fa6 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: longlong.c 4833 2002-05-25 08:33:26Z xleroy $ */
 
 #include <stdio.h>
 #include <string.h>
index 55d49f31a7a3b5f3f320926b038029f3f378da52..2499f537a71c60a74e9b9b2a088c7dc2b9c611e1 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: schar.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 char foo[]="\377";
 
index d1d781a53ecb3888c86bbc4b5a593d32b6476fb3..ef913aa58f4e91b9a46ad56bdcc24d7a83364e9d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: schar2.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 signed char foo[]="\377";
 
index 5cfe49c08231a4cf8fe60e4fd431dedb172b552b..b12dc8afd9004a7f575bc7f12b22ae3cff3d67d0 100644 (file)
@@ -11,7 +11,7 @@
 
 /* Contributed by Stephane Glondu <steph@glondu.net> */
 
-/* $Id$ */
+/* $Id: setgroups.c 9220 2009-04-01 16:50:10Z xleroy $ */
 
 #include <errno.h>
 
index 7e748df572d49e33a34e1e513c2e05dbb7175e1a..e27d482091246c1c611b4300844291eda2269207 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sighandler.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <signal.h>
 
index df0a8b0b500fa988ebea870455eb348e62c5bbfd..7f51be85313269c0664b816b071c6b174105a74a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: signals.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 /* To determine the semantics of signal handlers
    (System V: signal is reset to default behavior on entrance to the handler
index 992c47a658788d3f21bc117e83c4303dcde4458e..b6014ce7dce5c285ffe22e1b54a9c0fe99308402 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sizes.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <stdio.h>
 
index 39e4e832be6adc9a4fe3d68b9b7cf7354c489c2b..db4b07c73f76784264d4cc931f2ec344fa2d1467 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: stackov.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <stdio.h>
 #include <signal.h>
index 7a928281105c9827c28786472a93260c90ec0099..60a84a89d1a85e5a6bf55cb094136d673b97a426 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: m-nt.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Machine configuration, Intel x86 processors, Win32,
    Visual C++ or Mingw compiler */
index 392ec562b8cfcdc89377d29741aca60428ac8873..8245ba180f7f4d00dde09d8281695edd9e5e3479 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: m-templ.h 7064 2005-09-22 14:21:50Z xleroy $ */
 
 /* Processor dependencies */
 
index 5eaf3770f475e4dc2c11296d3f4c038ed0d3ec75..1017e933b666ffb97332b562ebe4fc84a27a22a3 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: s-nt.h 4933 2002-06-18 13:01:53Z xleroy $ */
 
 /* Operating system dependencies, Intel x86 processors, Windows NT */
 
index a65b178a8c3ab65d90b7fb309491add36613d543..aa6dc811e3b961f291025b84457266d378cedbab 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: s-templ.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Operating system and standard library dependencies. */
 
index f21bca474baa607bb58b58d44b396523b8072628..1a9d4b0e55ae8ccc5e2838875489a60412738736 100755 (executable)
--- a/configure
+++ b/configure
@@ -13,7 +13,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: configure 10490 2010-06-02 08:58:42Z xleroy $
 
 configure_options="$*"
 prefix=/usr/local
@@ -511,17 +511,14 @@ mksharedlib=''
 byteccrpath=''
 mksharedlibrpath=''
 natdynlinkopts=""
-cmxs="cmxa"
 
 if test $withsharedlibs = "yes"; then
   case "$host" in
     *-*-cygwin*)
-      cmxs="cmxs"
       mksharedlib="$flexlink"
       mkmaindll="$flexlink -maindll"
       shared_libraries_supported=true;;
     *-*-linux-gnu|*-*-linux|*-*-freebsd[3-9]*|*-*-openbsd*|*-*-netbsd*|*-*-gnu*)
-      cmxs="cmxs"
       sharedcccompopts="-fPIC"
       mksharedlib="$bytecc -shared"
       bytecclinkopts="$bytecclinkopts -Wl,-E"
@@ -614,6 +611,35 @@ if test -z "$mkmaindll"; then
   mkmaindll=$mksharedlib
 fi
 
+# Configure native dynlink
+
+natdynlink=false
+
+if test $withsharedlibs = "yes"; then
+  case "$host" in
+    *-*-cygwin*)                  natdynlink=true;;
+    i[3456]86-*-linux*)           natdynlink=true;;
+    x86_64-*-linux*)              natdynlink=true;;
+    i[3456]86-*-darwin10.*)
+      if test $arch64 == true; then
+        natdynlink=true
+      fi;;
+    i[3456]86-*-darwin[89]*)      natdynlink=true;;
+    powerpc64-*-linux*)           natdynlink=true;;
+    sparc-*-linux*)               natdynlink=true;;
+    i686-*-kfreebsd*)             natdynlink=true;;
+    x86_64-*-kfreebsd*)           natdynlink=true;;
+    i386-*-gnu0.3)                natdynlink=true;;
+  esac
+fi
+
+if test $natdynlink = "true"; then
+  cmxs="cmxs"
+else
+  cmxs="cmxa"
+fi
+
+
 # Configure the native-code compiler
 
 arch=none
@@ -1543,6 +1569,17 @@ else
   echo "TK_LINK=" >> Makefile
 fi
 
+# Look for BFD library
+
+if ./hasgot -i bfd.h -lbfd -ldl; then
+  echo "BFD library found."
+  echo "#define HAS_LIBBFD" >> s.h
+  echo "LIBBFD_LINK=-lbfd -ldl" >> Makefile
+else
+  echo "BFD library not found, 'objinfo' will be unable to display info on .cmxs files"
+  echo "LIBBFD_LINK=" >> Makefile
+fi
+
 # Final twiddling of compiler options to work around known bugs
 
 nativeccprofopts="$nativecccompopts"
@@ -1607,6 +1644,7 @@ echo "EXT_DLL=.so" >> Makefile
 echo "EXTRALIBS=" >> Makefile
 echo "CCOMPTYPE=cc" >> Makefile
 echo "TOOLCHAIN=cc" >> Makefile
+echo "NATDYNLINK=$natdynlink" >> Makefile
 echo "CMXS=$cmxs" >> Makefile
 echo "MKEXE=$mkexe" >> Makefile
 echo "MKDLL=$mksharedlib" >> Makefile
@@ -1655,6 +1693,7 @@ else
   echo "        options for linking....... $nativecclinkopts $cclibs"
   echo "        assembler ................ $as"
   echo "        preprocessed assembler ... $aspp"
+  echo "        native dynlink ........... $natdynlink"
   if test "$profiling" = "prof"; then
   echo "        profiling with gprof ..... supported"
   else
index b608cf5532e04f37b54133175143926cb7b1b17b..45440f86d73ab93193d28cdf75bfa5b9d7b77fff 100644 (file)
@@ -2,3 +2,5 @@ lexer.ml
 parser.ml
 parser.mli
 ocamldebug
+dynlink.ml
+dynlink.mli
index 3ff1b54aa457dda26a8613b45723d8a4967401cd..cd623dcf56d6644369beaec9eddab4d6fdfdc075 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 8955 2008-07-29 08:31:41Z xleroy $
 
 UNIXDIR=../otherlibs/unix
 include Makefile.shared
index 70263e94d87ad31f56b74a2d658cd7921ece3bef..793539d543096a7de28e6fab9c2c02259c57791b 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 9547 2010-01-22 12:48:24Z doligez $
 
 UNIXDIR=../otherlibs/win32unix
 include Makefile.shared
index 4372cf74c4e94f37ed51e21f27ac729e8cfff0c9..84aaa51183207c0313da90dbd6adfcddf69c7070 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.shared 10413 2010-05-17 15:49:53Z doligez $
 
 include ../config/Makefile
 
@@ -114,4 +114,13 @@ clean::
        rm -f parser.ml parser.mli
 beforedepend:: parser.ml parser.mli
 
+dynlink.ml: ../otherlibs/dynlink/dynlink.ml
+       grep -v 'REMOVE_ME for ../../debugger/dynlink.ml' \
+            ../otherlibs/dynlink/dynlink.ml >dynlink.ml
+dynlink.mli: ../otherlibs/dynlink/dynlink.mli
+       cp ../otherlibs/dynlink/dynlink.mli .
+clean::
+       rm -f dynlink.ml dynlink.mli
+beforedepend:: dynlink.ml dynlink.mli
+
 include .depend
index 1da4b74e2654796a3ad07f2e8313bd49daeacbed..2f607f1bdeb2daf1673f02c61590a138f5109b96 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: breakpoints.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (******************************* Breakpoints ***************************)
 
index 091f609981f680b95e4c0072699575413c1f1412..a4a1dc118971eaf9282022a07064d6651690095b 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: breakpoints.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (******************************* Breakpoints ***************************)
 
index ffcff35e3697f2bd12f95446da3049b29351f0ed..28aa76cb37166325ba41c3a4560c9141e12d1d4b 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: checkpoints.ml 5200 2002-10-29 17:53:24Z doligez $ *)
 
 (*************************** Checkpoints *******************************)
 
index 17c1037aa21a294bf62dfab3c1cf9ba9c4d0aca3..e489875d8f9e6a77b0fd9ea894f20b7d771804b3 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: checkpoints.mli 5200 2002-10-29 17:53:24Z doligez $ *)
 
 (***************************** Checkpoints *****************************)
 
index babb65bbe756181d300fdb9d49d4fce7911b64b1..c6680d7e5b0952470e74110c5d4a29b892f6cc85 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: command_line.ml 10287 2010-04-20 15:47:15Z doligez $ *)
 
 (************************ Reading and executing commands ***************)
 
index dd2349d2c4d4729833dd9c8333c36eb7bbe688bd..24d720eb7713f7a219bac6c1186a82c9986d28fc 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: command_line.mli 2919 2000-03-07 18:22:19Z weis $ *)
 
 (************************ Reading and executing commands ***************)
 
index dfe905bac4bf7dabbcb75fd3d000e4c97f8afde6..4f3ebfc78b5ccfe7d7eee24c4d761aaafc3444f0 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: debugcom.ml 10287 2010-04-20 15:47:15Z doligez $ *)
 
 (* Low-level communication with the debuggee *)
 
index abf4fd0b2c9fa3dc0dcfa3a325773ecc05645eb2..9153af408587b4e71797dc82419d76ee370a883f 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: debugcom.mli 10287 2010-04-20 15:47:15Z doligez $ *)
 
 (* Low-level communication with the debuggee *)
 
index 54d6b2d58390242fc59ecd50a7d04262c89349b3..0d050c22260d98be26e3ebe30836cbc8f990e959 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: debugger_config.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (**************************** Configuration file ***********************)
 
index 18faf9c62f6c94b322acb511c9d20e68a25508da..75e40febf3cc9594a59038edfa4ce13eda901083 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: debugger_config.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (********************** Configuration file *****************************)
 
diff --git a/debugger/dynlink.ml b/debugger/dynlink.ml
deleted file mode 100644 (file)
index a8b6efa..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-(***********************************************************************)
-(*                                                                     *)
-(*                           Objective Caml                            *)
-(*                                                                     *)
-(*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 1996 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file ../../LICENSE.  *)
-(*                                                                     *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(* Dynamic loading of .cmo files *)
-
-(* This is a copy of ../otherlibs/dynlink/dynlink.ml that does not
-   use Dynlinkaux (the module that packs some of the compiler modules). *)
-
-open Cmo_format
-
-type linking_error =
-    Undefined_global of string
-  | Unavailable_primitive of string
-  | Uninitialized_global of string
-
-type error =
-    Not_a_bytecode_file of string
-  | Inconsistent_import of string
-  | Unavailable_unit of string
-  | Unsafe_file
-  | Linking_error of string * linking_error
-  | Corrupted_interface of string
-  | File_not_found of string
-  | Cannot_open_dll of string
-  | Inconsistent_implementation of string
-
-exception Error of error
-
-(* Management of interface CRCs *)
-
-let crc_interfaces = ref (Consistbl.create ())
-let allow_extension = ref true
-
-(* Check that the object file being loaded has been compiled against
-   the same interfaces as the program itself. In addition, check that
-   only authorized compilation units are referenced. *)
-
-let check_consistency file_name cu =
-  try
-    List.iter
-      (fun (name, crc) ->
-        if name = cu.cu_name then
-          Consistbl.set !crc_interfaces name crc file_name
-        else if !allow_extension then
-          Consistbl.check !crc_interfaces name crc file_name
-        else
-          Consistbl.check_noadd !crc_interfaces name crc file_name)
-      cu.cu_imports
-  with Consistbl.Inconsistency(name, user, auth) ->
-         raise(Error(Inconsistent_import name))
-     | Consistbl.Not_available(name) ->
-         raise(Error(Unavailable_unit name))
-
-(* Empty the crc_interfaces table *)
-
-let clear_available_units () =
-  Consistbl.clear !crc_interfaces;
-  allow_extension := false
-
-(* Allow only access to the units with the given names *)
-
-let allow_only names =
-  Consistbl.filter (fun name -> List.mem name names) !crc_interfaces;
-  allow_extension := false
-
-(* Prohibit access to the units with the given names *)
-
-let prohibit names =
-  Consistbl.filter (fun name -> not (List.mem name names)) !crc_interfaces;
-  allow_extension := false
-
-(* Initialize the crc_interfaces table with a list of units with fixed CRCs *)
-
-let add_available_units units =
-  List.iter (fun (unit, crc) -> Consistbl.set !crc_interfaces unit crc "")
-            units
-
-(* Default interface CRCs: those found in the current executable *)
-let default_crcs = ref []
-
-let default_available_units () =
-  clear_available_units();
-  add_available_units !default_crcs;
-  allow_extension := true
-
-(* Initialize the linker tables and everything *)
-
-let inited = ref false
-
-let init () =
-  if not !inited then begin
-    default_crcs := Symtable.init_toplevel();
-    default_available_units ();
-    inited := true;
-  end
-
-let clear_available_units () = init(); clear_available_units ()
-let allow_only l = init(); allow_only l
-let prohibit l = init(); prohibit l
-let add_available_units l = init(); add_available_units l
-let default_available_units () = init(); default_available_units ()
-
-(* Read the CRC of an interface from its .cmi file *)
-
-let digest_interface unit loadpath =
-  let filename =
-    let shortname = unit ^ ".cmi" in
-    try
-      Misc.find_in_path_uncap loadpath shortname
-    with Not_found ->
-      raise (Error(File_not_found shortname)) in
-  let ic = open_in_bin filename in
-  try
-    let buffer = String.create (String.length Config.cmi_magic_number) in
-    really_input ic buffer 0 (String.length Config.cmi_magic_number);
-    if buffer <> Config.cmi_magic_number then begin
-      close_in ic;
-      raise(Error(Corrupted_interface filename))
-    end;
-    ignore (input_value ic);
-    let crc =
-      match input_value ic with
-        (_, crc) :: _ -> crc
-      | _             -> raise(Error(Corrupted_interface filename))
-    in
-    close_in ic;
-    crc
-  with End_of_file | Failure _ ->
-    close_in ic;
-    raise(Error(Corrupted_interface filename))
-
-(* Initialize the crc_interfaces table with a list of units.
-   Their CRCs are read from their interfaces. *)
-
-let add_interfaces units loadpath =
-  add_available_units
-    (List.map (fun unit -> (unit, digest_interface unit loadpath)) units)
-
-(* Check whether the object file being loaded was compiled in unsafe mode *)
-
-let unsafe_allowed = ref false
-
-let allow_unsafe_modules b =
-  unsafe_allowed := b
-
-let check_unsafe_module cu =
-  if (not !unsafe_allowed) && cu.cu_primitives <> []
-  then raise(Error(Unsafe_file))
-
-(* Load in-core and execute a bytecode object file *)
-
-let load_compunit ic file_name compunit =
-  check_consistency file_name compunit;
-  check_unsafe_module compunit;
-  seek_in ic compunit.cu_pos;
-  let code_size = compunit.cu_codesize + 8 in
-  let code = Meta.static_alloc code_size in
-  unsafe_really_input ic code 0 compunit.cu_codesize;
-  String.unsafe_set code compunit.cu_codesize (Char.chr Opcodes.opRETURN);
-  String.unsafe_set code (compunit.cu_codesize + 1) '\000';
-  String.unsafe_set code (compunit.cu_codesize + 2) '\000';
-  String.unsafe_set code (compunit.cu_codesize + 3) '\000';
-  String.unsafe_set code (compunit.cu_codesize + 4) '\001';
-  String.unsafe_set code (compunit.cu_codesize + 5) '\000';
-  String.unsafe_set code (compunit.cu_codesize + 6) '\000';
-  String.unsafe_set code (compunit.cu_codesize + 7) '\000';
-  let initial_symtable = Symtable.current_state() in
-  begin try
-    Symtable.patch_object code compunit.cu_reloc;
-    Symtable.check_global_initialized compunit.cu_reloc;
-    Symtable.update_global_table()
-  with Symtable.Error error ->
-    let new_error =
-      match error with
-        Symtable.Undefined_global s -> Undefined_global s
-      | Symtable.Unavailable_primitive s -> Unavailable_primitive s
-      | Symtable.Uninitialized_global s -> Uninitialized_global s
-      | _ -> assert false in
-    raise(Error(Linking_error (file_name, new_error)))
-  end;
-  begin try
-    ignore((Meta.reify_bytecode code code_size) ())
-  with exn ->
-    Symtable.restore_state initial_symtable;
-    raise exn
-  end
-
-let loadfile file_name =
-  init();
-  let ic = open_in_bin file_name in
-  try
-    let buffer = String.create (String.length Config.cmo_magic_number) in
-    really_input ic buffer 0 (String.length Config.cmo_magic_number);
-    if buffer = Config.cmo_magic_number then begin
-      let compunit_pos = input_binary_int ic in  (* Go to descriptor *)
-      seek_in ic compunit_pos;
-      load_compunit ic file_name (input_value ic : compilation_unit)
-    end else
-    if buffer = Config.cma_magic_number then begin
-      let toc_pos = input_binary_int ic in  (* Go to table of contents *)
-      seek_in ic toc_pos;
-      let lib = (input_value ic : library) in
-      begin try
-        Dll.open_dlls Dll.For_execution
-                      (List.map Dll.extract_dll_name lib.lib_dllibs)
-      with Failure reason ->
-        raise(Error(Cannot_open_dll reason))
-      end;
-      List.iter (load_compunit ic file_name) lib.lib_units
-    end else
-      raise(Error(Not_a_bytecode_file file_name));
-    close_in ic
-  with exc ->
-    close_in ic; raise exc
-
-let loadfile_private file_name =
-  init();
-  let initial_symtable = Symtable.current_state()
-  and initial_crc = !crc_interfaces in
-  try
-    loadfile file_name;
-    Symtable.hide_additions initial_symtable;
-    crc_interfaces := initial_crc
-  with exn ->
-    Symtable.hide_additions initial_symtable;
-    crc_interfaces := initial_crc;
-    raise exn
-
-(* Error report *)
-
-let error_message = function
-    Not_a_bytecode_file name ->
-      name ^ " is not a bytecode object file"
-  | Inconsistent_import name ->
-      "interface mismatch on " ^ name
-  | Unavailable_unit name ->
-      "no implementation available for " ^ name
-  | Unsafe_file ->
-      "this object file uses unsafe features"
-  | Linking_error (name, Undefined_global s) ->
-      "error while linking " ^ name ^ ".\n" ^
-      "Reference to undefined global `" ^ s ^ "'"
-  | Linking_error (name, Unavailable_primitive s) ->
-      "error while linking " ^ name ^ ".\n" ^
-      "The external function `" ^ s ^ "' is not available"
-  | Linking_error (name, Uninitialized_global s) ->
-      "error while linking " ^ name ^ ".\n" ^
-      "The module `" ^ s ^ "' is not yet initialized"
-  | Corrupted_interface name ->
-      "corrupted interface file " ^ name
-  | File_not_found name ->
-      "cannot find file " ^ name ^ " in search path"
-  | Cannot_open_dll reason ->
-      "error loading shared library: " ^ reason
-  | Inconsistent_implementation name ->
-      "implementation mismatch on " ^ name
-
-let is_native = false
-let adapt_filename f = f
diff --git a/debugger/dynlink.mli b/debugger/dynlink.mli
deleted file mode 100644 (file)
index 7cca68c..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-(***********************************************************************)
-(*                                                                     *)
-(*                           Objective Caml                            *)
-(*                                                                     *)
-(*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 1996 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the GNU Library General Public License, with    *)
-(*  the special exception on linking described in file ../../LICENSE.  *)
-(*                                                                     *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(** Dynamic loading of object files. *)
-
-val is_native: bool
-(** [true] if the program is native,
-    [false] if the program is bytecode. *)
-
-(** {6 Dynamic loading of compiled files} *)
-
-val loadfile : string -> unit
-(** In bytecode: load the given bytecode object file ([.cmo] file) or
-    bytecode library file ([.cma] file), and link it with the running
-    program. In native code: load the given OCaml plugin file (usually
-    [.cmxs]), and link it with the running
-    program.
-    All toplevel expressions in the loaded compilation units
-    are evaluated. No facilities are provided to
-    access value names defined by the unit. Therefore, the unit
-    must register itself its entry points with the main program,
-    e.g. by modifying tables of functions. *)
-
-val loadfile_private : string -> unit
-(** Same as [loadfile], except that the compilation units just loaded
-    are hidden (cannot be referenced) from other modules dynamically
-    loaded afterwards. *)
-
-val adapt_filename : string -> string
-(** In bytecode, the identity function. In native code, replace the last
-    extension with [.cmxs]. *)
-
-(** {6 Access control} *)
-
-val allow_only: string list -> unit
-(** [allow_only units] restricts the compilation units that dynamically-linked
-    units can reference: it only allows references to the units named in
-    list [units].  References to any other compilation unit will cause
-    a [Unavailable_unit] error during [loadfile] or [loadfile_private].
-
-    Initially (just after calling [init]), all compilation units composing
-    the program currently running are available for reference from
-    dynamically-linked units.  [allow_only] can be used to grant access
-    to some of them only, e.g. to the units that compose the API for
-    dynamically-linked code, and prevent access to all other units,
-    e.g. private, internal modules of the running program. *)
-
-val prohibit: string list -> unit
-(** [prohibit units] prohibits dynamically-linked units from referencing
-    the units named in list [units].  This can be used to prevent
-    access to selected units, e.g. private, internal modules of
-    the running program. *)
-
-val default_available_units: unit -> unit
-(** Reset the set of units that can be referenced from dynamically-linked
-    code to its default value, that is, all units composing the currently
-    running program. *)
-
-val allow_unsafe_modules : bool -> unit
-(** Govern whether unsafe object files are allowed to be
-    dynamically linked. A compilation unit is ``unsafe'' if it contains
-    declarations of external functions, which can break type safety.
-    By default, dynamic linking of unsafe object files is
-    not allowed. In native code, this function does nothing; object files
-    with external functions are always allowed to be dynamically linked. *)
-
-(** {6 Deprecated, low-level API for access control} *)
-
-(** @deprecated  The functions [add_interfaces], [add_available_units]
-    and [clear_available_units] should not be used in new programs,
-    since the default initialization of allowed units, along with the
-    [allow_only] and [prohibit] function, provides a better, safer
-    mechanism to control access to program units.  The three functions
-    below are provided for backward compatibility only and are not
-    available in native code. *)
-
-val add_interfaces : string list -> string list -> unit
-(** [add_interfaces units path] grants dynamically-linked object
-    files access to the compilation  units named in list [units].
-    The interfaces ([.cmi] files) for these units are searched in
-    [path] (a list of directory names). *)
-
-val add_available_units : (string * Digest.t) list -> unit
-(** Same as {!Dynlink.add_interfaces}, but instead of searching [.cmi] files
-    to find the unit interfaces, uses the interface digests given
-    for each unit. This way, the [.cmi] interface files need not be
-    available at run-time. The digests can be extracted from [.cmi]
-    files using the [extract_crc] program installed in the
-    Objective Caml standard library directory. *)
-
-val clear_available_units : unit -> unit
-(** Empty the list of compilation units accessible to dynamically-linked
-    programs. *)
-
-(** {6 Deprecated, initialization} *)
-
-val init : unit -> unit
-(** @deprecated Initialize the [Dynlink] library. This function is called
-    automatically when needed. *)
-
-(** {6 Error reporting} *)
-
-type linking_error =
-    Undefined_global of string
-  | Unavailable_primitive of string
-  | Uninitialized_global of string
-
-type error =
-    Not_a_bytecode_file of string
-  | Inconsistent_import of string
-  | Unavailable_unit of string
-  | Unsafe_file
-  | Linking_error of string * linking_error
-  | Corrupted_interface of string
-  | File_not_found of string
-  | Cannot_open_dll of string
-  | Inconsistent_implementation of string
-
-exception Error of error
-(** Errors in dynamic linking are reported by raising the [Error]
-    exception with a description of the error. *)
-
-val error_message : error -> string
-(** Convert an error description to a printable message. *)
-
-
-(**/**)
-
-(** {6 Internal functions} *)
-
-val digest_interface : string -> string list -> Digest.t
index 8d462e2f874abdb4203829f2de6950caadd2e8df..9d7c8946b90d65957c270aac686cef5e7e510e4b 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: envaux.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Misc
 open Types
index 8b122cc347aa74d3379dbcb4457c620761f9b240..3b9d77156b483ad0347abc936c2fa73950c4c454 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: envaux.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 open Format
 
index 7ee1339f010f0dbcc6fcc3f3f6bbdadcb9566c65..daba02b4ccd9f549dddc022310f5bd13f3c3f735 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: eval.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Misc
 open Path
index b2a2998f149d612349ec4c14d0094f1566dfefb2..f9888488be0537178669ceececc39255369922d7 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: eval.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 open Types
 open Parser_aux
index 2521c064dbe82506b1253626cf5ac7c343f7e9ef..0e5b263baac58802a38229dde563d656b4b040fd 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: events.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (********************************* Events ******************************)
 
index 7166f2c9d0fa185fad8e2c51a29c5f40bca33a17..be4a92d93770d9da0911c53bd7eac2dc8a9bf0e7 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: events.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Instruct
 
index 1ea165978fc9a41abc4bfcb9293a526d6003ec47..6390f2a53354a4690c3d47c5d506498c3ef07181 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: exec.ml 8955 2008-07-29 08:31:41Z xleroy $ *)
 
 (* Handling of keyboard interrupts *)
 
index 9d3b98604848086c9aff7f369db05180208c7fe7..c6c3ab4f09f97479fb70b8c802987d70bc287ed1 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: exec.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* Handling of keyboard interrupts *)
 
index c533782fc4e0020c914856180bbef5eb46931ce0..44eb08c1e2fed8d6ecd374f1419d2e3369601e94 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: frames.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (***************************** Frames **********************************)
 
index b4863433ddc653f817943f4cc802b69bf0ad693d..0f2b38b3ea1e29eb3f8fff7a323a92a226710216 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: frames.mli 9540 2010-01-20 16:26:46Z doligez $ *)
 
 (****************************** Frames *********************************)
 
index e8c5ed8ff5b029326345b72d413be57718a870e4..40781b1601d60c7c72bec4e5ad32010d144fa896 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: history.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 open Int64ops
 open Checkpoints
index 249629fdb9aa1ab865c1d69cafa8957a21e0ddd7..2c217b779b87c62f7d971b124964f933b37617a1 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: history.mli 5200 2002-10-29 17:53:24Z doligez $ *)
 
 val empty_history : unit -> unit
 
index f25d474266cbd5aad69d2cf369b70cacab593396..e1081df21adbf1cf5fd11439fa3be43ac9155c35 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: input_handling.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (**************************** Input control ****************************)
 
index 959547df79ec1443394abb9d7d36d47066689035..227ae833eb40b7200c98f199900794e215b50e2f 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: input_handling.mli 7767 2006-12-09 13:49:10Z ertai $ *)
 
 (***************************** Input control ***************************)
 
index b854a6c34319cb042a6a419dbda17159bab85e88..667d6c072a1b040b0896c52ff940cfb3a321ab42 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: int64ops.ml 5200 2002-10-29 17:53:24Z doligez $ *)
 
 (****************** arithmetic operators for Int64 *********************)
 
index 98f7228d3d25e2ac80df2f33604fd5c9c6c289e9..b6edfbc3d21411912f3b0ac11553aca1e42c8a89 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: int64ops.mli 5200 2002-10-29 17:53:24Z doligez $ *)
 
 (****************** arithmetic operators for Int64 *********************)
 
index 7214ed2be94e97d0beb997da524ff5512cfc3eae..cc04aca8f9299cae096d428c7d7a8605811e37a0 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer.mli 6394 2004-06-13 12:46:11Z xleroy $ *)
 
 val line: Lexing.lexbuf -> string
 val lexeme: Lexing.lexbuf -> Parser.token
index eea8ed02843f2ff6303f79a3ecb94079cee329ef..307a59643f494e0960db62c06edf58da2b6206dd 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer.mll 9270 2009-05-20 11:52:42Z doligez $ *)
 
 {
 
index ac5aa0187df9f4ff02890898cca3ffe8024687f6..42e55c0524807ae0a8ca2432beb2a5a3c1510af1 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: loadprinter.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Loading and installation of user-defined printer functions *)
 
index bdaf77a28522cf196c8dd01a0b1d771c194e8b4f..ffc94a583b9061fc772b44e3f290f6d38050cc18 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: loadprinter.mli 2919 2000-03-07 18:22:19Z weis $ *)
 
 (* Loading and installation of user-defined printer functions *)
 
index f836bf9f0eb449f7aa2f8cd47dc5d9fb3a2732df..cc23febb4b00372246430c4b69d3bbdd2771b4d6 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: main.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Input_handling
 open Question
@@ -161,6 +161,10 @@ let print_version () =
   printf "The Objective Caml debugger, version %s@." Sys.ocaml_version;
   exit 0;
 ;;
+let print_version_num () =
+  printf "%s@." Sys.ocaml_version;
+  exit 0;
+;;
 
 let speclist = [
    "-c", Arg.Int set_checkpoints,
@@ -175,6 +179,8 @@ let speclist = [
       "<filename>  Set the name of the communication socket";
    "-version", Arg.Unit print_version,
       " Print version and exit";
+   "-vnum", Arg.Unit print_version_num,
+      " Print version number and exit";
    ]
 
 let main () =
index 9d518e54941fec11a6e7bfc18e713302bed2ccd4..b8a50ad7365caf456ff19e1070a49c283df49dcf 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parameters.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (* Miscellaneous parameters *)
 
index 8f750e68a6e61c586b37dae737012694996f8bae..fe7830c8594822fa789dfb30e43ac00cf2faeab2 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parameters.mli 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (* Miscellaneous parameters *)
 
index 6fc8392a86a56e9fa8e71859a75a262aea5281ec..f48502bfd89971368c41775bc8da82bf2e1e8349 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: parser.mly 9547 2010-01-22 12:48:24Z doligez $ */
 
 %{
 
index a68e08d5c8727d260255696da3a78c01625dcb75..a9b95520e29cfaa3a49a5101346af03e74f07ce4 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parser_aux.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (*open Globals*)
 
index 97af9326b5139c865cb334207878d6c0aa26d74c..0b1632d31c7d7daf36d9c573f6ed43487646e2e5 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pattern_matching.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (************************ Simple pattern matching **********************)
 
index 3490edef69239c8270e78b171396d55fc618dd8d..b386219029ffc3ecdd90963064a8d245af4891a5 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pattern_matching.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (************************ Simple pattern matching **********************)
 
index 4beba3de0fcf2540b15f94285b339dc8415c5f6d..f790ab6ed22ceedc0f2dc5e5599909b5380071da 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pos.ml 7767 2006-12-09 13:49:10Z ertai $ *)
 
 open Instruct;;
 open Lexing;;
index e7632e4274c6c707cdc1f7c27762f1a8a5016234..ee0832722f28e8aaa41064df64ffa0a305653b27 100644 (file)
@@ -10,6 +10,6 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pos.mli 5966 2003-11-21 16:10:57Z doligez $ *)
 
 val get_desc : Instruct.debug_event -> string;;
index d4ba22e5f8f75ec54e9205668a05df2b40c89457..9d1354335ac157a20c8850f95186f612c20e58c3 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: primitives.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (*********************** Basic functions and types *********************)
 
index 4333128fb66e98ed4addedb2e3c80140f8776223..4711c10ad60909427153c553904c3070fa7ddc2a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: primitives.mli 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (********************* Basic functions and types ***********************)
 
index 5f36e1a7cc52b1116e3384cca1e44d18ea459b2e..915dba09b2d17e3038308341cf66edeb25329e08 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printval.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* To print values *)
 
index bb6318880c0e223a461940de898a8da50e29fdb3..dd27e0ef5d15d1890e91c89ea22e701a58d4bc81 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printval.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Format
 
index 79577ff4b9838169094cd8a885e15b6370716f37..a4e456adf11838c600f4303a4d86573abe22dbe8 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: program_loading.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (* Program loading *)
 
index d1210d1ab0d683febb507dbd882748cab7c65e18..48847ea1d34c8cbb115b9999a12e96f7e219e761 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: program_loading.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (*** Debugging. ***)
 
index cc908b4d6aac02866fafeebca5719a2123e2195d..780b57ed276e1f6d5c9562b7f0e41e9f07461b92 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: program_management.ml 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (* Manage the loading of the program *)
 
@@ -117,7 +117,7 @@ let ask_kill_program () =
 
 let initialize_loading () =
   if !debug_loading then
-    prerr_endline "Loading debugging informations...";
+    prerr_endline "Loading debugging information...";
   begin try access !program_name [F_OK]
   with Unix_error _ ->
     prerr_endline "Program not found.";
index 8e2f28e54ec71468125c1c6c08eb73406130b8c5..2ec0209e48b4ebca121bff4cec863e12e93e2bdf 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: program_management.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (*** Program loading and initializations. ***)
 
index bd746eb7f85566eb3a432ad6af1fa9f86d378fe1..c8efffaeaf596f3cda5c5ed2974e034ad7581c88 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: show_information.ml 9540 2010-01-20 16:26:46Z doligez $ *)
 
 open Instruct
 open Format
index 3069f93321db3be5e18503554f96bb1a3530e46a..e7ef20e291a1f768dbfaf123a1a5dd45f2d1e7c5 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: show_information.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 open Format;;
 
index 2826c9e686dc09438ac15b7d19b30dd24595259a..9a72270c42d933506582d2e14e7f6dac82152ebd 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: show_source.ml 9540 2010-01-20 16:26:46Z doligez $ *)
 
 open Debugger_config
 open Instruct
index 5ba418af583bb081efce337ad95cda5319b74cb2..0d4106feb4d8d388f75ed24007046a14ec731dfc 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: show_source.mli 7767 2006-12-09 13:49:10Z ertai $ *)
 
 (* Print the line containing the point *)
 val show_point : Instruct.debug_event -> bool -> unit;;
index f0d3d48fb9ce4ed7a67c691a58d681094b17df66..a7ddda0171ff56372bfae5a2f9ba0e7703caba7a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: source.ml 9540 2010-01-20 16:26:46Z doligez $ *)
 
 (************************ Source management ****************************)
 
index 273cb517b34c3c4f03933922e4f97aa441c66a18..fa5337bf051d0d9cb9fc80e44efc648583c8b439 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: source.mli 9540 2010-01-20 16:26:46Z doligez $ *)
 
 (************************ Source management ****************************)
 
index 392da976aa3227fd6828da2961469e3242938022..d734775d2d68e5f6cc4eb23ba5877c8336b1186b 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: symbols.ml 9540 2010-01-20 16:26:46Z doligez $ *)
 
 (* Handling of symbol tables (globals and events) *)
 
index 57ac8007b1b958c16d3247c223c91a0f4fdcb542..f1ec054449add85550e93db6b18582c0e3ccce94 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: symbols.mli 7031 2005-08-25 15:35:16Z doligez $ *)
 
 (* Modules used by the program. *)
 val modules : string list ref
index a4a4c83fa0c1f74dcd08934f460486a122d60c6d..221fbb4aed0f62be8de7a61d9e39b7b7e6be350a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: time_travel.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (**************************** Time travel ******************************)
 
index 453e4df05248d46120bedd99b1e50c73be26a800..c5d81154fabfd1a9ce2c909b6f6005c60666c51b 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: time_travel.mli 7745 2006-11-20 10:29:45Z ertai $ *)
 
 (**************************** Time travel ******************************)
 
index dba9c929f702e182742ec03a7df13e20023713db..ecdfe893df7d2742a7af309f68c097c0950076e6 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: trap_barrier.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (************************** Trap barrier *******************************)
 
index 28bba5a3ebdafd5b305461b561f6c0c5a763a882..e72a9f7cd01d825a67df850f1886a74819b8c433 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: trap_barrier.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (************************* Trap barrier ********************************)
 
index 9926e05d5a497bd05015bd822936d40e43e50d86..cf035184acad85d6a82c80fb1d17e76dd5c9cc6c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unix_tools.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (****************** Tools for Unix *************************************)
 
index b5e4ee6ca483387b4a7ac6824eb38ff3dc265392..3a702b9d188adc49004b010806440912c1c638c8 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unix_tools.mli 5232 2002-11-02 22:36:46Z doligez $ *)
 
 (**************************** Tools for Unix ***************************)
 
index 4e2d8566ec07bdf089d2461a54930fc64a941460..8e14272f2fd8e104ba72ff2bb0771f6e5672d5b9 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: compile.ml 9074 2008-10-06 13:53:54Z doligez $ *)
 
 (* The batch compiler *)
 
index 507d61bbd77b75cac39c952f7b633dd7ce046659..de9ebb2697b4b64df1d566872494d2588f9b1a54 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: compile.mli 6395 2004-06-13 12:46:41Z xleroy $ *)
 
 (* Compile a .ml or .mli file *)
 
index 22dd1fc6a0b5681cdf27c056f889e6dd453e5397..e7cd26483e82a4d9a58a41051c839ad00d99b157 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: errors.ml 8705 2007-12-04 13:38:58Z doligez $ *)
 
 (* WARNING: if you change something in this file, you must look at
    opterrors.ml and ocamldoc/odoc_analyse.ml
index ac203a53ef4e9b822da2ac0a0d1cfb6a7d1e42ad..7abc0d720dfcbebaa08b801ed79d49bf4c0f5612 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: errors.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 (* Error report *)
 open Format
index 18480739f0e63e69f04154736aa85713ac92b272..48c9647e9131787e3551792c64fa087bcd5d3c95 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: main.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Config
 open Clflags
@@ -127,6 +127,7 @@ module Options = Main_args.Make_bytecomp_options (struct
   let _use_runtime s = use_runtime := s
   let _v = print_version_and_library
   let _version = print_version_string
+  let _vnum = print_version_string
   let _w = (Warnings.parse_options false)
   let _warn_error = (Warnings.parse_options true)
   let _warn_help = Warnings.help_warnings
index d175a3ca264478f0c70b0f6eb5d050645f86ff48..f7f414f7cf7e129e467f8e32f096100114dfaa92 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: main.mli 2740 2000-01-07 16:03:04Z doligez $ *)
 
 (*
   this "empty" file is here to speed up garbage collection in ocamlc.opt
index 8af91932890d6e6e5947ee2ce5b3f586c6622031..e70f91bf83d08ca832c4fc28d1ee0057434931cd 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: main_args.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 let mk_a f =
   "-a", Arg.Unit f, " Build a library"
@@ -246,6 +246,10 @@ let mk_version f =
   "-version", Arg.Unit f, " Print version and exit"
 ;;
 
+let mk_vnum f =
+  "-vnum", Arg.Unit f, " Print version number and exit"
+;;
+
 let mk_verbose f =
   "-verbose", Arg.Unit f, " Print calls to external commands"
 ;;
@@ -405,6 +409,7 @@ module type Bytecomp_options = sig
   val _use_runtime : string -> unit
   val _v : unit -> unit
   val _version : unit -> unit
+  val _vnum : unit -> unit
   val _verbose : unit -> unit
   val _w : string -> unit
   val _warn_error : string -> unit
@@ -435,6 +440,7 @@ module type Bytetop_options = sig
   val _strict_sequence : unit -> unit
   val _unsafe : unit -> unit
   val _version : unit -> unit
+  val _vnum : unit -> unit
   val _w : string -> unit
   val _warn_error : string -> unit
   val _warn_help : unit -> unit
@@ -486,6 +492,7 @@ module type Optcomp_options = sig
   val _unsafe : unit -> unit
   val _v : unit -> unit
   val _version : unit -> unit
+  val _vnum : unit -> unit
   val _verbose : unit -> unit
   val _w : string -> unit
   val _warn_error : string -> unit
@@ -530,6 +537,7 @@ module type Opttop_options = sig
   val _S : unit -> unit
   val _unsafe : unit -> unit
   val _version : unit -> unit
+  val _vnum : unit -> unit
   val _w : string -> unit
   val _warn_error : string -> unit
   val _warn_help : unit -> unit
@@ -603,6 +611,7 @@ struct
     mk_use_runtime_2 F._use_runtime;
     mk_v F._v;
     mk_version F._version;
+    mk_vnum F._vnum;
     mk_verbose F._verbose;
     mk_vmthread F._vmthread;
     mk_w F._w;
@@ -637,6 +646,7 @@ struct
     mk_strict_sequence F._strict_sequence;
     mk_unsafe F._unsafe;
     mk_version F._version;
+    mk_vnum F._vnum;
     mk_w F._w;
     mk_warn_error F._warn_error;
     mk_warn_help F._warn_help;
@@ -692,6 +702,7 @@ struct
     mk_unsafe F._unsafe;
     mk_v F._v;
     mk_version F._version;
+    mk_vnum F._vnum;
     mk_verbose F._verbose;
     mk_w F._w;
     mk_warn_error F._warn_error;
@@ -736,6 +747,7 @@ module Make_opttop_options (F : Opttop_options) = struct
     mk_strict_sequence F._strict_sequence;
     mk_unsafe F._unsafe;
     mk_version F._version;
+    mk_vnum F._vnum;
     mk_w F._w;
     mk_warn_error F._warn_error;
     mk_warn_help F._warn_help;
index e0a7e2fa969a2aae95a3f88d3350216164abe3ee..ac6beb21ee60f1eb545855ae8f8694264ab0c72c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: main_args.mli 10444 2010-05-20 14:06:29Z doligez $ *)
 
 module type Bytecomp_options =
   sig
@@ -51,6 +51,7 @@ module type Bytecomp_options =
     val _use_runtime : string -> unit
     val _v : unit -> unit
     val _version : unit -> unit
+    val _vnum : unit -> unit
     val _verbose : unit -> unit
     val _w : string -> unit
     val _warn_error : string -> unit
@@ -82,6 +83,7 @@ module type Bytetop_options = sig
   val _strict_sequence : unit -> unit
   val _unsafe : unit -> unit
   val _version : unit -> unit
+  val _vnum : unit -> unit
   val _w : string -> unit
   val _warn_error : string -> unit
   val _warn_help : unit -> unit
@@ -133,6 +135,7 @@ module type Optcomp_options = sig
   val _unsafe : unit -> unit
   val _v : unit -> unit
   val _version : unit -> unit
+  val _vnum : unit -> unit
   val _verbose : unit -> unit
   val _w : string -> unit
   val _warn_error : string -> unit
@@ -177,6 +180,7 @@ module type Opttop_options = sig
   val _S : unit -> unit
   val _unsafe : unit -> unit
   val _version : unit -> unit
+  val _vnum : unit -> unit
   val _w : string -> unit
   val _warn_error : string -> unit
   val _warn_help : unit -> unit
index 29afc628dca94557b83ba95bf037dfa81548fb8e..282a39c6315d204aa21b51b808504bcadd229883 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: optcompile.ml 9153 2008-12-03 18:09:09Z doligez $ *)
 
 (* The batch compiler *)
 
index 507d61bbd77b75cac39c952f7b633dd7ce046659..47eb065637a8a774d9149fe00a20939a0b65380e 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: optcompile.mli 6395 2004-06-13 12:46:41Z xleroy $ *)
 
 (* Compile a .ml or .mli file *)
 
index 581781997d4c497e193f20e756412b181ba004e6..ba83ab3ce12854d01da12c0d885b4b6f9695dc8e 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opterrors.ml 8705 2007-12-04 13:38:58Z doligez $ *)
 
 (* WARNING: if you change something in this file, you must look at
    errors.ml to see if you need to make the same changes there.
index d09dc733b6472f363aa6f0a58c8a97a330bdd345..44ea1dd313f9e6f11d9b4bf45beca480a653afc7 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opterrors.mli 2910 2000-03-07 05:02:33Z garrigue $ *)
 
 (* Error report *)
 
index 51a9162d635ddcbce128fb792fe48f1575076e7c..4ca44711c1b1d658b6defbb0a7edfcc8b0879439 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: optmain.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Config
 open Clflags
@@ -135,6 +135,7 @@ module Options = Main_args.Make_optcomp_options (struct
   let _unsafe = set fast
   let _v () = print_version_and_library ()
   let _version () = print_version_string ()
+  let _vnum () = print_version_string ()
   let _verbose = set verbose
   let _w s = Warnings.parse_options false s
   let _warn_error s = Warnings.parse_options true s
index 628d2d398b949579a2fdc41ba6ee4fc8bb632827..08ca44ff0f036f06bfad9b8a1b40cb41416d3aab 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: optmain.mli 2740 2000-01-07 16:03:04Z doligez $ *)
 
 (*
   this "empty" file is here to speed up garbage collection in ocamlopt.opt
index 0622ddad9fe18527eef96dba9d8d078806cc6e24..1ce335b5de637135127a150f0d20f0510f6b1a22 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pparse.ml 6415 2004-06-16 16:58:46Z doligez $ *)
 
 open Format
 
index 0ed0391360d5585f98328fcd282bb28fa6c58e84..db2e56127df248f34da47c51f555a779d9e75a2f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pparse.mli 4365 2002-02-08 10:14:31Z ddr $ *)
 
 open Format
 
index 9519b396a5062f861a69cb32fd823dc13074d8d6..1572b77b13676b929651fbb0da4333c8e07565e1 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 9547 2010-01-22 12:48:24Z doligez $
 
 include ../config/Makefile
 
index 7ddb362b4e183be9d44f67a7f4f45ffc5c5865ba..a1e4782a9cfea194904508074e7a4b4bdb87a729 100644 (file)
@@ -1,4 +1,4 @@
-        O'Caml emacs mode, snapshot of $Date$
+        O'Caml emacs mode, snapshot of $Date: 2008-01-11 17:13:18 +0100 (Fri, 11 Jan 2008) $
 
 The files in this archive define a caml-mode for emacs, for editing
 Objective Caml and Objective Label programs, as well as an
index 8ba7a99c7ebd6f6d0ed68923393d159441863ecc..8c4ba63d337c20295dc7846b9c5582d07b2df54e 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: caml-compat.el 9547 2010-01-22 12:48:24Z doligez $ *)
 
 ;; function definitions for old versions of emacs
 
index d034ff304aac25e8c1c84e4ca58c68a2bb7c2cac..c7eacfd1294c94136a00cc7859a1475a16f55a3a 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: caml-emacs.el 6612 2004-08-20 17:04:35Z doligez $ *)
 
 ;; for caml-help.el
 (defalias 'caml-info-other-window 'info-other-window)
index 8faa542f050edf7837bb25b2fab9723e6490ed9a..c578ea82a290d675bf3a594fd03c4afab0dc02f6 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: caml-font-old.el 9547 2010-01-22 12:48:24Z doligez $ *)
 
 ;; useful colors
 
index 2adba6752f2dd7db60a911d274afbe9e6d1feb0c..150fa6134d953a293c39641542d23f09ea8f072c 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: caml-help.el 10323 2010-04-28 11:11:07Z remy $ *)
 
 ;; caml-info.el --- contextual completion and help to caml-mode
 
index 697e58173d8a03da1748e1e087679cf8afe53479..8c973ff64293d9b09efd2a8dd728b2475f980e18 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: caml-hilit.el 6612 2004-08-20 17:04:35Z doligez $ *)
 
 ; Highlighting patterns for hilit19 under caml-mode
 
index 05b1a2c0a6b40cedd8dbdd1a2a1f33807b15c8d5..59066c1b94ca4d89a78b3daa3756d72fc9046a09 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: caml-types.el 9540 2010-01-20 16:26:46Z doligez $ *)
 
 ; An emacs-lisp complement to the "-annot" option of ocamlc and ocamlopt.
 
index fe141c5ce284185183b712f749e399e7a34094c8..9a9d84542bef1688341b24c51a652644f6012ef9 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: caml-xemacs.el 6824 2005-03-24 17:20:54Z doligez $ *)
 
 (require 'overlay)
 
index 4f03b5a582d91db2c123306f55aa4b5589cd9ca0..c323625327602578c37745798263236dd2ffaa09 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: caml.el 9153 2008-12-03 18:09:09Z doligez $ *)
 
 ;;; caml.el --- O'Caml code editing commands for Emacs
 
index d5ba599cc78c81b4e0467cb00b2dd4012ec7149b..49b987d08f4f72e3ff05d06deefefd9f013d9e43 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: camldebug.el 10322 2010-04-28 10:33:43Z remy $ *)
 
 ;;; Run camldebug under Emacs
 ;;; Derived from gdb.el.
index ba2eb0390b7b369b37c0a7333983c0bca337a68c..2da73b72a041ad7692b7b6bcd38e2b1504baac6a 100644 (file)
@@ -10,7 +10,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: inf-caml.el 10317 2010-04-27 08:45:18Z remy $ *)
 
 ;;; inf-caml.el --- run the Caml toplevel in an Emacs buffer
 
index aa3f8df1d2651739ef19f9bbbac6b026c58c8e0f..55edab33876c52717c148099978ea4235c8cc2ab 100644 (file)
@@ -12,7 +12,7 @@
 ;(*                                                                     *)
 ;(***********************************************************************)
 
-;(* $Id$ *)
+;(* $Id: ocamltags.in 6612 2004-08-20 17:04:35Z doligez $ *)
 
 ;; Copyright (C) 1998 Ian Zimmerman <itz@transbay.net>
 ;;  This program is free software; you can redistribute it and/or
@@ -24,7 +24,7 @@
 ;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 ;;  General Public License for more details.
-;; $Id$
+;; $Id: ocamltags.in 6612 2004-08-20 17:04:35Z doligez $
 
 (require 'caml)
 
index f190ed89255c926f1a7d718c65037569652b2074..feae7bbd48600d7cbe0e2a504012094f14cbab6a 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 9467 2009-12-09 09:52:47Z weis $
 
 # The lexer generator
 CAMLC=../boot/ocamlrun ../boot/ocamlc -strict-sequence -nostdlib -I ../boot
index cb1ef94a5dffc853feb640ecd1905ad5de1b9659..6645bd3f53d1d046af255bfc844bae691b2a3083 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 9540 2010-01-20 16:26:46Z doligez $
 
 # The lexer generator
 
index abbf5a5036dc9412f0da34d78e227c67de1dab63..4b02094310765bf1f24dd9970640676506c68699 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: compact.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Compaction of an automata *)
 
index 18363c3d4d40ce7b4f5154cf7a0dae1af249ff2d..ca0efd257c6461ff7fe947dba24e517f67e9ce4a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: compact.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Compaction of an automata *)
 type lex_tables =
index c4594540ece24385f2c4974b33d7035e5c5a716d..0fdefb634dea931515912f149e834755d7dc7be4 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: cset.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 
 exception Bad
index 53b58995914d4ff874664dc68d9e5a76d3c5d62f..370d7c9ca939e7c7d3425da78914ad2c390feebe 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: cset.mli 10268 2010-04-18 09:02:40Z xleroy $ *)
 
 (* Set of characters encoded as list of intervals *)
 
index be34674eb3855f32fbbbedd53455692a73f3e36a..0a5dd2573a2a1a5cab310c7e5c8db2f3a2d278a6 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer.mli 6244 2004-04-21 23:26:06Z doligez $ *)
 
 val main: Lexing.lexbuf -> Parser.token
 
index b72804287e4da2b45783d0c4d8436c1c19442d70..46569beb9fa4030911376277aa6430f62f016497 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer.mll 7307 2006-01-04 16:55:50Z doligez $ *)
 
 (* The lexical analyzer for lexer definitions. Bootstrapped! *)
 
index 775e78b0563ce507a66efdf36991ea1761227def..52ebfe57b1670546ddfa1f02326eaa72b2fee03d 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexgen.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Compiling a lexer definition *)
 
index 5136f8f28300792e7ccd4e8b5c4f43c3e3b01470..4f77f4dea9ea11cdf7fab2818ac4f392d6abd75c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexgen.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 
 (* raised when there are too many bindings (>= 254 memory cells) *)
index 5540c97285d30b4b15297f187096073c00efaf00..84a220d40968f6e1e29567d2dc4c5f4e0d1c590b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: main.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 (* The lexer generator. Command-line parsing. *)
 
@@ -28,6 +28,11 @@ let print_version_string () =
   print_string Sys.ocaml_version ; print_newline();
   exit 0
 
+let print_version_num () =
+  print_endline Sys.ocaml_version;
+  exit 0;
+;;
+
 let specs =
   ["-ml", Arg.Set ml_automata,
     " Output code that does not use the Lexing module built-in automata interpreter";
@@ -36,6 +41,7 @@ let specs =
    "-q", Arg.Set Common.quiet_mode, " Do not display informational messages";
    "-v",  Arg.Unit print_version_string, " Print version and exit";
    "-version",  Arg.Unit print_version_string, " Print version and exit";
+   "-vnum",  Arg.Unit print_version_num, " Print version number and exit";
   ]
 
 let _ =
index 620f67f65af8271d2dafa1351d3e44145783a223..847106ceef876978796e0c234ad75549247203f0 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: output.ml 9512 2010-01-07 15:15:07Z doligez $ *)
 
 (* Output the DFA tables and its entry points *)
 
index 85f89b30cec391e2ad79f6961cdf58eb8d43e085..46ef258b02a9b09e5d17edd41152e1655fe85661 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: output.mli 5323 2002-12-09 10:44:46Z maranget $ *)
 
 (* Output the DFA tables and its entry points *)
 
index 266c0acbd4f7adc65873a5bdf94839ea94667326..7e97db0d0cf7a0b796cb7d516f62cdcd1d21b658 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: outputbis.ml 9512 2010-01-07 15:15:07Z doligez $ *)
 
 (* Output the DFA tables and its entry points *)
 
index 76f00672bfa55c8ec1a0f738d18a1afb19b64eb2..9c6004136e410effa90ba670fc26cd74cfed1b58 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: outputbis.mli 5323 2002-12-09 10:44:46Z maranget $ *)
 val output_lexdef :
   string ->
   in_channel ->
index 9bc0906afd8083dc06d8ff1b05cfa46f9137b7ba..6290e55dac83615f9e36726309528e50f09115c6 100644 (file)
@@ -10,7 +10,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: parser.mly 10271 2010-04-19 12:25:06Z maranget $ */
 
 /* The grammar for lexer definitions */
 
index d1daa02dbd93bc64f23255f8b4e977c5e41e9db0..356c56121544f936e8babccc6f3ef4d9c0fc558d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: syntax.ml 7815 2007-01-29 16:44:16Z maranget $ *)
 
 (* This apparently useless implmentation file is in fact required
    by the pa_ocamllex syntax extension *)
index 4864b50ee9421a068a403efd984947e7d93be5a9..19dbdcd1fd501b571916f802ac342a765755ebb1 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: syntax.mli 7815 2007-01-29 16:44:16Z maranget $ *)
 
 (* The shallow abstract syntax *)
 
index 4753c202ea831f94bd4f405bd6ba48984113abff..ebd058d14f44879b8f8960a2cda124234bdd7aaf 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 4733 2002-04-24 09:09:35Z xleroy $
 
 include ../config/Makefile
 
index 299f3fa36e8962ddc6ead63d22753fd20ac03c5d..fc1bc9ca6431c88a3fa5f7a1f05cdf1bfe3c3048 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocaml.m 10444 2010-05-20 14:06:29Z doligez $
 
 .TH OCAML 1
 
@@ -135,6 +135,9 @@ accesses an array or string outside of its bounds.
 .B \-version
 Print version string and exit.
 .TP
+.B \-vnum
+Print short version number and exit.
+.TP
 .BI \-w \ warning-list
 Enable or disable warnings according to the argument
 .IR warning-list .
index 8ef3ddfc9616d7e7d12378a41ef326c150cf7481..20c2c6b4bf54e3fb7063bf8c64104836a21edc03 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamlc.m 10450 2010-05-21 12:00:49Z doligez $
 
 .TH OCAMLC 1
 
@@ -476,7 +476,7 @@ invocations of the C compiler and linker in
 .B \-custom
 mode.  Useful to debug C library problems.
 .TP
-.B \-version
+.BR \-vnum or \-version
 Print the version number of the compiler in short form (e.g. "3.11.0"),
 then exit.
 .TP
@@ -565,7 +565,7 @@ function type and is ignored.
 \ \ \ Label omitted in function application.
 
 7
-\ \ \ Some methods are overriden in the class where they are defined.
+\ \ \ Some methods are overridden in the class where they are defined.
 
 8
 \ \ \ Partial match: missing cases in pattern-matching.
index d3559ad308f07acbd1d6ef5821364846101865cb..a7b6a574d90b14c068a8314702fc10b5ae9ac2b9 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamlcp.m 9025 2008-09-15 14:05:30Z doligez $
 
 .TH OCAMLCP 1
 
index eb8619ba40f41eb527c99b639c86d3902fe1d2dd..80b520e2ffb55ed27d9e0efdaa136f8f9d9c2c1f 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamldebug.m 10444 2010-05-20 14:06:29Z doligez $
 
 .TH OCAMLDEBUG 1
 
@@ -6,7 +6,7 @@
 ocamldebug \- the Objective Caml source-level replay debugger.
 .SH SYNOPSIS
 .B ocamldebug
-.I "[options] program [arguments]"
+.RI [\  options \ ]\  program \ [\  arguments \ ]
 .SH DESCRIPTION
 .B ocamldebug
 is the Objective Caml source-level replay debugger.
@@ -69,7 +69,10 @@ for the format of
 .IR socket .
 .TP
 .B \-version
-Print version and exit.
+Print version string and exit.
+.TP
+.B \-vnum
+Print short version number and exit.
 .TP
 .BR \-help \ or \ \-\-help
 Display a short usage summary and exit.
index 9dfd55db95fffd7f761f9961554a9b555e3be74a..febabcdacc4ecf52192e683ba84245f901a298db 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamldep.m 10444 2010-05-20 14:06:29Z doligez $
 
 .TH OCAMLDEP 1
 
@@ -99,7 +99,10 @@ as a preprocessor for each source file.
 Under Unix, this option does nothing.
 .TP
 .B \-version
-Print version and exit.
+Print version string and exit.
+.TP
+.B \-vnum
+Print short version number and exit.
 .TP
 .BR \-help \ or \ \-\-help
 Display a short usage summary and exit.
index 19a7f033217a137cd81026dc11913b82da67e01b..d6e5273f93b9e01951d19976a8fadf3edc19bf32 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamldoc.m 10450 2010-05-21 12:00:49Z doligez $
 
 .TH OCAMLDOC 1
 
@@ -243,7 +243,10 @@ For HTML, the file is used to create the whole "index.html" file.
 Verbose mode. Display progress information.
 .TP
 .B \-version
-Print the version string and exit.
+Print version string and exit.
+.TP
+.B \-vnum
+Print short version number and exit.
 .TP
 .B \-warn\-error
 Treat Ocamldoc warnings as errors.
@@ -255,7 +258,7 @@ Do not print OCamldoc warnings.
 Display a short usage summary and exit.
 .SS "Type-checking options"
 .BR ocamldoc (1)
-calls the Objective Caml type-checker to obtain type informations. The
+calls the Objective Caml type-checker to obtain type information. The
 following options impact the type-checking phase. They have the same meaning
 as for the
 .BR ocamlc (1)\ and \ ocamlopt (1)
index c3b3e308a9f1d7fa17433c5f428a18f58884b15c..aa9b576e6056b44fd146952f2899bcc80fb78dbb 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamllex.m 10444 2010-05-20 14:06:29Z doligez $
 .TH OCAMLLEX 1
 
 .SH NAME
@@ -72,7 +72,10 @@ to standard output.  They are suppressed if option
 is used.
 .TP
 .BR \-v \ or \ \-version
-Print version and exit.
+Print version string and exit.
+.TP
+.B \-vnum
+Print short version number and exit.
 .TP
 .BR \-help \ or \ \-\-help
 Display a short usage summary and exit.
index 8127d70d58d656bee6f9491777e93d2d52b58d7e..1388794271fba30ddd843ccc9165bc1168aa0b3e 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamlmktop.m 10444 2010-05-20 14:06:29Z doligez $
 .TH OCAMLMKTOP 1
 
 .SH NAME
@@ -7,7 +7,7 @@ ocamlmktop \- Building custom toplevel systems
 .SH SYNOPSIS
 .B ocamlmktop
 [
-.B \-v
+.BR \-v | \-version | \-vnum
 ]
 [
 .BI \-cclib \ libname
@@ -49,7 +49,10 @@ The following command-line options are recognized by
 .BR ocamlmktop (1).
 .TP
 .B \-v
-Print the version number of the compiler.
+Print the version string of the compiler and exit.
+.TP
+.BR \-vnum or \-version
+Print the version number of the compiler in short form and exit.
 .TP
 .BI \-cclib\ \-l libname
 Pass the
index 831f30d0d448cba6d126b39acc38dc3a767db1db..9f3bbe99a44653f65d4468cad54b2a0be0d9e826 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamlopt.m 10444 2010-05-20 14:06:29Z doligez $
 
 .TH OCAMLOPT 1
 
@@ -457,7 +457,7 @@ standard library directory, then exit.
 Print all external commands before they are executed, in particular
 invocations of the assembler, C compiler, and linker.
 .TP
-.B \-version
+.BR \-vnum or \-version
 Print the version number of the compiler in short form (e.g. "3.11.0"),
 then exit.
 .TP
index 84d01b0631b2b26ce7ee24ad79fab3c8a6a01192..7b84ca60b5fecdf65ac8398fca8bb0c857dfe169 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamlprof.m 10444 2010-05-20 14:06:29Z doligez $
 .TH OCAMLPROF 1
 
 .SH NAME
@@ -7,10 +7,7 @@ ocamlprof \- The Objective Caml profiler
 .SH SYNOPSIS
 .B ocamlprof
 [
-.BI \-f \ dump-file
-]
-[
-.BI \-F \ text
+.I options
 ]
 .I filename ...
 
@@ -61,7 +58,10 @@ Compile the file
 as an interface file, even if its extension is not .mli.
 .TP
 .B \-version
-Print the version number of ocamlprof and exit.
+Print version string and exit.
+.TP
+.B \-vnum
+Print short version number and exit.
 .TP
 .BR \-help \ or \ \-\-help
 Display a short usage summary and exit.
index 6b7c5dfc955b1d37e00528e9fa3ab73a3efdbe34..a9e21def3f22df39d6175ab87ccc1b107c28c438 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamlrun.m 10444 2010-05-20 14:06:29Z doligez $
 
 .TH OCAMLRUN 1
 
@@ -72,7 +72,10 @@ This is equivalent to setting
 in the OCAMLRUNPARAM environment variable (see below).
 .TP
 .B \-version
-Print version and exit.
+Print version string and exit.
+.TP
+.B \-vnum
+Print short version number and exit.
 
 .SH ENVIRONMENT VARIABLES
 
index e3b69441fd6eade87151f35a2d4b15aaa5cb0e12..5ff33ca02e4fa9b09a64d45742bd2e582b4ec76b 100644 (file)
@@ -1,4 +1,4 @@
-\" $Id$
+\" $Id: ocamlyacc.m 10444 2010-05-20 14:06:29Z doligez $
 .TH OCAMLYACC 1
 
 .SH NAME
@@ -7,10 +7,15 @@ ocamlyacc \- The Objective Caml parser generator
 .SH SYNOPSIS
 .B ocamlyacc
 [
-.B -v
-]
-[
 .BI \-b prefix
+] [
+.B \-q
+] [
+.B \-v
+] [
+.B \-version
+] [
+.B \-vnum
 ]
 .I filename.mly
 
@@ -67,7 +72,10 @@ file
 .IR grammar .output.
 .TP
 .B \-version
-Print version and exit.
+Print version string and exit.
+.TP
+.B \-vnum
+Print short version number and exit.
 .TP
 .B \-
 Read the grammar specification from standard input.  The default
index 2ee15ff942379238e48cfce2309b3f4ee1b41444..7a5a7043659ba8f65d2f98be98dfa8454b9d2a79 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: myocamlbuild.ml 10542 2010-06-08 09:50:56Z pouillar $ *)
 
 open Ocamlbuild_plugin
 open Command
@@ -196,6 +196,8 @@ let cold_camlp4o = "camlp4o" (* The installed version *);;
 
 flag ["ocaml"; "ocamlyacc"] (A"-v");;
 
+flag ["ocaml"; "compile"; "strict_sequence"] (A"-strict-sequence");;
+
 non_dependency "otherlibs/threads/pervasives.ml" "Unix";;
 non_dependency "otherlibs/threads/pervasives.ml" "String";;
 
@@ -281,7 +283,7 @@ Pathname.define_context "toplevel" ["toplevel"; "parsing"; "typing"; "bytecomp";
 Pathname.define_context "driver" ["driver"; "asmcomp"; "bytecomp"; "typing"; "utils"; "parsing"; "stdlib"];;
 Pathname.define_context "debugger" ["bytecomp"; "utils"; "typing"; "parsing"; "toplevel"; "stdlib"];;
 Pathname.define_context "otherlibs/dynlink" ["otherlibs/dynlink"; "bytecomp"; "utils"; "typing"; "parsing"; "stdlib"];;
-Pathname.define_context "otherlibs/dynlink/nat" ["otherlibs/dynlink/nat"; "stdlib"];;
+Pathname.define_context "otherlibs/dynlink/nat" ["otherlibs/dynlink/nat"; "asmcomp"; "stdlib"];;
 Pathname.define_context "asmcomp" ["asmcomp"; "bytecomp"; "parsing"; "typing"; "utils"; "stdlib"];;
 Pathname.define_context "ocamlbuild" ["ocamlbuild"; "stdlib"; "."];;
 Pathname.define_context "lex" ["lex"; "stdlib"];;
@@ -583,6 +585,17 @@ rule "camlheader"
             A"cp"; A"stdlib/camlheader"; A"stdlib/camlheader_ur"])
   end;;
 
+(* Private copy of dynlink.{ml,mli} in debugger/ *)
+copy_rule "otherlibs/dynlink/dynlink.mli -> debugger/dynlink.mli" "otherlibs/dynlink/dynlink.mli" "debugger/dynlink.mli";;
+rule "debugger/dynlink.ml"
+  ~prod: "debugger/dynlink.ml"
+  ~dep: "otherlibs/dynlink/dynlink.ml"
+  begin fun _ _ ->
+    Cmd(Sh"grep -v 'REMOVE_ME for ../../debugger/dynlink.ml' \
+           < otherlibs/dynlink/dynlink.ml >debugger/dynlink.ml")
+  end;;
+
+
 copy_rule "win32unix use some unix files" "otherlibs/unix/%" "otherlibs/win32unix/%";;
 
 (* Temporary rule *)
index 0f1903369773f49e631408a415d1391bae3bfe17..22c467299d2ca49dc8d5c5e34668f0921e243a8b 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 10286 2010-04-20 15:38:58Z doligez $
 
 .PHONY: all byte native profile debug ppcache doc
 
diff --git a/ocamlbuild/manual/.cvsignore b/ocamlbuild/manual/.cvsignore
deleted file mode 100644 (file)
index a7bf093..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-*.aux
-*.haux
-*.html
-*.htoc
-*.log
-*.pdf
diff --git a/ocamlbuild/manual/Makefile b/ocamlbuild/manual/Makefile
deleted file mode 100644 (file)
index 055d42e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# Makefile
-
-all: manual.pdf manual.html
-
-%.pdf: %.tex
-       pdflatex $<
-       pdflatex $<
-
-%.html: %.tex manual.hva
-       hevea -fix -O manual.hva $<
-
-.PHONY: clean
-
-clean:
-       rm -f *.pdf *.log *.aux *.ps *.dvi manual.h{tml,aux,toc}
diff --git a/ocamlbuild/manual/manual.hva b/ocamlbuild/manual/manual.hva
deleted file mode 100644 (file)
index d175fdb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-\newcommand{\mathscr}[1]{{\mathcal{#1}}}
\ No newline at end of file
diff --git a/ocamlbuild/manual/manual.tex b/ocamlbuild/manual/manual.tex
deleted file mode 100644 (file)
index 62d9004..0000000
+++ /dev/null
@@ -1,1054 +0,0 @@
-%                                                                -*- LaTeX -*-
-%(*** preamble
-\documentclass[9pt]{article}
-\usepackage[utf8]{inputenc}
-\usepackage{palatino}
-\usepackage{mathrsfs}
-\usepackage{xspace}
-\usepackage[T1]{fontenc}
-\usepackage[english]{babel}
-\usepackage[a4paper,lmargin=1cm,rmargin=1cm,tmargin=1cm,bmargin=2cm]{geometry}
-\newcommand{\ocb}{\texttt{ocamlbuild}\xspace}
-\newcommand{\tags}{\texttt{\_tags}\xspace}
-%***)
-%(*** title
-\begin{document}
-\title{The \ocb users manual}
-\author{Berke \textsc{Durak}, Nicolas \textsc{Pouillard}}
-\date{February 2007}
-\maketitle
-%***)
-%(*** abstract
-\begin{abstract}
-\ocb is a tool automating the compilation of most OCaml projects with minimal
-user input.  Its use is not restricted to projects having a simple structure --
-the extra effort needed to make it work with the more complex projects is in
-reasonable proportion with their added complexity.  In practice, one will use a
-set of small text files, and, if needed, an OCaml compilation module that can
-fine-tune the behaviour and define custom rules.
-\end{abstract}
-%***)
-%(*** Features of ocamlbuild
-\section{Features of \ocb}
-{\em This section is intended to read like a sales brochure or a datasheet.}
-
-\begin{itemize}
-\item Built-in compilation rules for OCaml projects handle all the nasty cases:
-native and byte-code, missing \texttt{.mli} files, preprocessor rules,
-libraries, package (-pack) debugging and profiling flags, C stubs.
-\item Plugin mechanism for writing compilation rules and actions in a real programming language,
-OCaml itself.
-\item Automatic inference of dependencies.
-\item Correct handling of dynamically discovered dependencies.
-\item Object files and other temporary files are created in a specific directory, leaving your main directory uncluttered.
-\item Sanity checks ensure that object files are where they are supposed to be: in the build directory.
-\item Regular projects are built using a single command with no extra files.
-\item Parallel compilation to speed up things on multi-core systems.
-\item Sophisticated display mode to keep your screen free of boring and repetitive compilation message
-while giving you important progress information in a glimpse, and correctly multiplexing the error messages.
-\item Tags and flags provide a concise and convenient mechanism for automatic selection of compilation, preprocessing and
-other options.
-\item Extended shell-like glob patterns, that can be combined using boolean operators,
-allow you to concisely define the tags that apply to a given file.
-\item Mechanisms for defining the mutual visibility of subdirectories.
-\item Cache mechanism avoiding unnecessary compilations where reasonably computable.
-\end{itemize}
-%***)
-%(*** Limitations
-\section{Limitations}
-{\em Not perfect nor complete yet, but already pretty damn useful.}
-
-We were not expecting to write the ultimate compilation tool in a few man-months, however we believe we have
-a tool that solves many compilation problems, especially our own, in a satisfactory way.  Hence there are a
-lot of missing features, incomplete options and hideous bugs lurking in \ocb, and we hope that the OCaml community
-will find our first try at \ocb useful and hopefully help it grow into a tool that satisfies most needs of most users
-by providing feedback, bug reports and patches.
-
-The plugin API maybe somewhat lacking in maturity, as it has only been tested
-by a few people.  We believe a good API can only evolve under pressure from
-many peers and the courage to rewrite things cleanly when time is ripe by the
-developers.  Most of the important functions a user will need are encapsulated
-in the plugin API, which is the \texttt{Ocamlbuild\_plugin} module pack.  We
-intend to keep that API backwards compatible.  It may happen that intricate
-projects need features not available in that module -- you may then use
-functions or values directly from the core \ocb modules.  We ask you to report
-such usage to the authors so that we may make the necessary changes to the API;
-you may also want to isolate calls to the non-API parts of the \ocb library
-from the rest of your plugin to be able to keep the later when incompatible
-changes arise.
-
-The way that \ocb handles the command-line options, the \tags file,
-the target names, names of the tags, and so on, are not expected to change in
-incompatible ways.  We intend to keep a project that compiles without a plugin
-compilable without modifications in the future.
-%***)
-%(*** Using ocamlbuild
-\section{Using \ocb}
-{\em Learn how to use \ocb with short, specific, straight-to-the-point examples.}
-
-The amount of time and effort spent on the compilation process of a project
-should be proportionate to that spent on the project itself.  It should be easy
-to set up a small project, maybe a little harder for a medium-sized project,
-and it may take some more time, but not too much, for a big project.  Ideally
-setting up a big project would be as easy as setting up a small project.  However,
-as projects grow, modularization techniques start to be used, and the probability
-of using meta programming or multiple programming languages increases, thus making
-the compilation process more delicate.
-
-\ocb is intended to be very easy to use for projects, large or small, with a simple
-compilation process: typing
-\texttt{ocamlbuild foo.native} should be enough to compile the native version
-of a program whose top module is \texttt{foo.ml} and whose dependencies are in
-the same directory.  As your project gets more complex, you will gradually
-start to use command-line options to specify libraries to link with, then
-configuration files, ultimately culminating in a custom OCaml plugin for
-complex projects with arbitrary dependencies and actions.
-
-%(*** Hygiene *)
-\subsection{Hygiene \& where is my code ?}
-Your code is in the \texttt{\_build} directory, but \ocb automatically creates
-a symbolic link to the executables it produces in the current directory.
-\ocb copies the source files and compiles them in a separate directory
-which is \texttt{\_build} by default.
-
-For \ocb, any file that is not in the build directory is a source file.
-It is not unreasonable to think that some users may have bought binary object files
-they keep in their project directory.  Usually binary files cluttering the project
-directory are due to previous builds using other systems.  \ocb has so-called
-``hygiene'' rules that state that object files (\texttt{.cmo}, \texttt{.cmi},
-or \texttt{.o} files, for instance) must not appear outside of the build
-directory.  These rules are enforced at startup; any violations will be reported
-and \ocb will exit.  You must then remove these files by hand or run, with caution,
-the script \texttt{sanitize.sh}, which is generated in your source directory.
-This script will contain commands to remove them for you.
-
-To disable these checks, you can use the \texttt{-no-hygiene} flag.  If you have
-files that must elude the hygiene squad, just tag them with \texttt{precious}
-or \texttt{not\_hygienic}.
-%***)
-%(*** Hello, world !
-\subsection{Hello, world !}
-Assuming we are in a directory named \texttt{example1} containing one file \texttt{hello.ml}
-whose contents are
-\begin{verbatim}
-let _ =
-  Printf.printf "Hello, %s ! My name is %s\n"
-    (if Array.length Sys.argv > 1 then Sys.argv.(1) else "stranger")
-    Sys.argv.(0)
-;;
-\end{verbatim}
-we can compile and link it into a native executable by invoking \texttt{ocamlbuild hello.native}.
-Here, \texttt{hello} is the basename of the top-level module and \texttt{native} is an extension used
-by \ocb to denote native code executables.
-\begin{verbatim}
-% ls
-hello.ml
-% ocamlbuild hello.native
-Finished, 4 targets (0 cached) in 00:00:00.
-% ls -l
-total 12
-drwxrwx--- 2 linus gallium 4096 2007-01-17 16:24 _build/
--rw-rw---- 1 linus gallium   43 2007-01-17 16:23 hello.ml
-lrwxrwxrwx 1 linus gallium   19 2007-01-17 16:24 hello.native -> _build/hello.native*
-\end{verbatim}
-What's this funny \texttt{\_build} directory ?  Well that's where \ocb does its dirty work
-of compiling.  You usually won't have to look very often into this directory.  Source files are be copied
-into \texttt{\_build} and this is where the compilers will be run.  Various cache files are also stored
-there.  Its contents may look like this:
-\begin{verbatim}
-% ls -l _build
-total 208
--rw-rw---- 1 linus gallium    337 2007-01-17 16:24 _digests
--rw-rw---- 1 linus gallium    191 2007-01-17 16:24 hello.cmi
--rw-rw---- 1 linus gallium    262 2007-01-17 16:24 hello.cmo
--rw-rw---- 1 linus gallium    225 2007-01-17 16:24 hello.cmx
--rw-rw---- 1 linus gallium     43 2007-01-17 16:23 hello.ml
--rw-rw---- 1 linus gallium     17 2007-01-17 16:24 hello.ml.depends
--rwxrwx--- 1 linus gallium 173528 2007-01-17 16:24 hello.native*
--rw-rw---- 1 linus gallium    936 2007-01-17 16:24 hello.o
--rw-rw---- 1 linus gallium     22 2007-01-17 16:24 ocamlc.where
-\end{verbatim}
-%***)
-%(*** Executing my code
-\subsection{Executing my code}
-You can execute your code the old-fashioned way (\texttt{./hello.native}).
-You may also type
-\begin{verbatim}
-ocamlbuild hello.native -- Caesar
-\end{verbatim}
-and it will compile and then run \texttt{hello.native} with the arguments following \texttt{-{}-},
-which should display:
-\begin{verbatim}
-% ocamlbuild hello.native -- Caesar
-Finished, 4 targets (0 cached) in 00:00:00.
-Hello, Caesar ! My name is _build/hello.native
-\end{verbatim}
-%***)
-%(*** The log file, verbosity and debugging
-\subsection{The log file, verbosity and debugging}
-By default, if you run \ocb on a terminal, it will use some ANSI escape sequences
-to display a nice, one-line progress indicator.  To see what commands \ocb has actually run,
-you can check the contents of the \texttt{\_build/\_log} file.  To change the name of the
-log file or to disable logging, use the \texttt{-log <file>} or \texttt{-no-log} options.
-Note that the log file is truncated at each execution of \ocb.
-
-The log file contains all the external commands that \ocb ran or intended to
-run along with the target name and the computed tags.  With the
-\texttt{-verbose <level>} option, \ocb will also write more or less useful
-debugging information;  a verbosity level of $1$ (which can also be specified
-using the \texttt{-verbose} switch) prints generally useful information; higher
-levels produce much more output.
-%***)
-%(*** Cleaning
-\subsection{Cleaning}
-\ocb may leave a \texttt{\_build} directory and symbolic links to executables in
-that directory (unless when using -no-links). All of these can be removed safely
-by hand, or by invoking \ocb with the \texttt{-clean} flag.
-%***)
-%(*** Where and how to run \ocb
-\subsection{Where and how to run \ocb ?}
-An important point is that \ocb must be invoked from the root of the project,
-even if this project has multiple, nested subdirectories.  This is because \ocb
-likes to store the object files in a single \texttt{\_build} directory.  You
-can change the name of that directory with the \texttt{-build-dir} option.
-
-\ocb can be either invoked manually from the UNIX or Windows shell, or
-automatically from a build script or a Makefile.  Unless run with the
-\texttt{-no-hygiene} option, there is the possibility that \ocb will prompt the
-user for a response.  By default, on UNIX systems, if \ocb senses that the
-standard output is a terminal, it will use a nice progress indicator using ANSI
-codes, instrumenting the output of the processes it spawns to have a consistent
-display.  Under non-UNIX systems, or if the standard output is not a terminal,
-it will run in classic mode where it will echo the executed commands on its
-standard output.  This selection can be overridden with the \texttt{-classic-display} option.
-%***)
-%(*** Dependencies
-\subsection{Dependencies}
-{\em Dependencies are automatically discovered.}
-
-Most of the value of \ocb lies in the fact that it often needs no extra
-information to compile a project besides the name of the top-level module.
-\ocb calls \texttt{ocamldep} to automatically find the dependencies of any
-modules it wants to compile.  These dependencies are dynamically incorporated
-in the dependency graph, something \texttt{make} cannot do.
-For instance, let's add a module \texttt{Greet} that implements various ways of
-greeting people.
-\begin{verbatim}
-% cat greet.ml
-type how = Nicely | Badly;;
-
-let greet how who =
-  match how with Nicely -> Printf.printf "Hello, %s !\n" who
-               | Badly  -> Printf.printf "Oh, here is that %s again.\n" who
-;;
-% cat hello.ml
-open Greet
-
-let _ =
-  let name =
-    if Array.length Sys.argv > 1 then
-      Sys.argv.(1)
-    else
-      "stranger"
-  in
-  greet
-    (if name = "Caesar" then Nicely else Badly)
-    name;
-  Printf.printf "My name is %s\n" Sys.argv.(0)
-;;
-\end{verbatim}
-Then the module \texttt{Hello} depends on the module \texttt{Greet} and \ocb can
-figure this out for himself -- we still only have to invoke \texttt{\ocb
-hello.native}.  Needless to say, this works for any number of modules.
-%***)
-%(*** Native and byte code
-\subsection{Native and byte-code}
-If we want to compile byte-code instead of native, we just a target name of
-\texttt{hello.byte} instead of \texttt{hello.native}, i.e., we type
-\texttt{\ocb hello.byte}.
-%***)
-%(*** Compile flags
-\subsection{Compile flags}
-To pass a flag to the compiler, such as the \texttt{-rectypes} option,
-use the \texttt{-cflag} option as in:
-\begin{verbatim}
-ocamlbuild -cflag -rectypes hello.native
-\end{verbatim}
-You can put multiple \texttt{-cflag} options, they will be passed to the compiler
-in the same order.  You can also given them in a comma-separated list with the
-\texttt{-cflags} option (notice the plural):
-\begin{verbatim}
-ocamlbuild -cflags -I,+lablgtk,-rectypes hello.native
-\end{verbatim}
-These flags apply when compiling, that is, when producing \texttt{.cmi},
-\texttt{.cmo},\texttt{.cmx} and \texttt{.o} files from \texttt{.ml} or
-\texttt{.mli} files.
-%***)
-%(*** Link flags
-\subsection{Link flags}
-Link flags apply when the various object files are collected and linked into
-one executable.  These will typically be include directories for libraries.
-They are given using the \texttt{-lflag} and \texttt{-lflags} options, which
-work in the same way as the \texttt{-cflag} and \texttt{-cflags} options.
-%***)
-%(*** Linking with external libraries
-\subsection{Linking with external libraries}
-In our third example, we use one Unix system call and functions from the \texttt{num}
-library:
-\begin{verbatim}
-% cat epoch.ml
-let _ =
-  let s = Num.num_of_string (Printf.sprintf "%.0f" (Unix.gettimeofday ())) in
-  let ps = Num.mult_num (Num.num_of_string "1000000000000") s in
-  Printf.printf "%s picoseconds have passed since January 1st, 1970.\n"
-    (Num.string_of_num ps)
-;;
-\end{verbatim}
-This requires linking with the \texttt{unix} and \texttt{num} modules, which is accomplished
-by using the \texttt{-lib unix} and \texttt{-lib num} flags, or, alternatively, \texttt{-libs unix,num}:
-\begin{verbatim}
-% ocamlbuild -libs nums,unix epoch.native --
-Finished, 4 targets (4 cached) in 00:00:00.
-1169051647000000000000 picoseconds have passed since January 1st, 1970.
-\end{verbatim}
-You may need to add options such as \texttt{-cflags -I,/usr/local/lib/ocaml/}
-and \texttt{-lflags -I,/usr/local/lib/ocaml/} if the libraries you wish to
-link with are not in OCaml's default search path.
-%***)
-%(*** The _tags files
-\subsection{The \tags files}
-Finer control over the compiler flags applied to each source file, such as
-preprocessing, debugging, profiling and linking options, can be gained using
-\ocb's tagging mechanism.
-
-Every source file has a set of tags which tells \ocb what kind of file it is
-and what to do with it.  A tag is simply a string, usually lowercase, for
-example \texttt{ocaml} or \texttt{native}.  The set of tags attached to a file
-is computed by applying the tagging rules to the filename.  Tagging rules are
-defined in \tags files in any parent directory of a file, up to the main
-project directory.
-
-Each line in the \tags file is made of a glob pattern (see subsection
-\ref{subsec:glob}) and a list of tags.  More than one rule can apply to a file
-and rules are applied in the order in which they appear in a file.
-By preceding a tag with a minus sign, one may remove tags from one or more files.
-
-\subsubsection{Example: the built-in \tags file}
-\begin{verbatim}
-     <**/*.ml> or <**/*.mli> or <**/*.mlpack> or <**/*.ml.depends>: ocaml
-     <**/*.byte>: ocaml, byte, program
-     <**/*.odoc>: ocaml, doc
-     <**/*.native>: ocaml, native, program
-     <**/*.cma>: ocaml, byte, library
-     <**/*.cmxa>: ocaml, native, library
-     <**/*.cmo>: ocaml, byte
-     <**/*.cmi>: ocaml, byte, native
-     <**/*.cmx>: ocaml, native
-\end{verbatim}
-
-A special tag made from the path name of the file relative to the toplevel
-of the project is automatically defined for each file.  For a file
-\texttt{foo/bar.ml} this tag will be \texttt{file:foo/bar.ml}.
-
-If you do not have subdirectories, you can put \texttt{*.ml} instead of
-\texttt{**/*.ml}.
-%***)
-%(*** Glob patterns and expressions
-\subsection{Glob patterns and expressions}
-\label{subsec:glob}
-Glob patterns have a syntax similar to those used by UNIX shells to select path
-names (like \texttt{foo\_*.ba?}).  They are used in \ocb to define the files
-and directories to which tags apply.  Glob expressions are glob patterns
-enclosed in brackets \texttt{<} and \texttt{>} combined using the standard
-boolean operators \texttt{and}, \texttt{or}, \texttt{not}.  This allows one to
-describe sets of path names in more concise and more readable ways.
-
-Please note that file and directory names are supposed to be made of the
-following characters: $\texttt{a}$, $\dots$, $\texttt{z}$, $\texttt{A}$,
-$\dots$, $\texttt{Z}$, $\texttt{0}$, $\dots$, $\texttt{9}$, $\texttt{\_}$,
-$\texttt{-}$ and $\texttt{.}$.  This is called the pathname alphabet $P$.
-
-\begin{table}[h]
-  \begin{center}
-    \small
-    \begin{tabular}{|p{3cm}|l|p{3cm}|p{3cm}|p{5cm}|}
-    \hline
-    {\em Formal syntax} &
-    {\em Example} & {\em Matches} & {\em Does not match} &
-    {\em Meaning (formal meaning)} \\
-    \hline
-    \hline
-%%
-    {$u$ \vspace*{0.5em} A string of pathname characters} &
-    \texttt{foo.ml} &
-    \texttt{foo.ml} &
-    \texttt{fo.ml}, \texttt{bar/foo.ml} &
-    The exact string $u$
-    ($\{ u \}$, where $u \in P^*$) \\
-    \hline
-%%
-    {\texttt{*} \vspace*{0.5em} The wild-card star}&
-    \texttt{*}&
-    $\varepsilon$, \texttt{foo}, \texttt{bar} &
-    \texttt{foo/bar}, \texttt{/bar} &
-    Any string not containing a slash
-    ($P^*$) \\
-    \hline
-%%
-    {\texttt{?} \vspace*{0.5em} The joker}&
-    \texttt{?}&
-    \texttt{a}, \texttt{b}, \texttt{z} &
-    \texttt{/}, \texttt{bar} &
-    Any one-letter string, excluding the slash \\
-    \hline
-%%
-    {\texttt{**/} \vspace*{0.5em} The prefix inter-directory star}&
-    \texttt{**/foo.ml}&
-    \texttt{foo.ml}, \texttt{bar/foo.ml}, \texttt{bar/baz/foo.ml} &
-    \texttt{foo/bar}, \texttt{/bar} &
-    The empty string, or any string ending with a slash
-    ($\varepsilon \cup P^*\mathtt{/}$) \\
-    \hline
-%%
-    {\texttt{/**} \vspace*{0.5em} The suffix inter-directory star}&
-    \texttt{foo/**}&
-    \texttt{foo}, \texttt{foo/bar} &
-    \texttt{bar/foo} &
-    Any string starting with a slash, or the empty string
-    ($\varepsilon \cup \mathtt{/}P^*$) \\
-    \hline
-%%
-    {\texttt{/**/} \vspace*{0.5em} The infix inter-directory star}&
-    \texttt{bar/**/foo.ml}&
-    \texttt{bar/foo.ml}, \texttt{bar/baz/foo.ml} &
-    \texttt{foo.ml} &
-    Any string starting and ending with a slash
-    ($\varepsilon \cup \mathtt{/}P^*\mathtt{/}$) \\
-    \hline
-%%
-    {$\mathtt{[} r_1 r_2 \cdots r_k \mathtt{]}$
-    where $r_i$ is either $c$ or $c_1-c_2$ $(1 \leq i \leq k)$
-    \vspace*{0.5em} The positive character class}&
-    \texttt{[a-fA-F0-9\_.]}&
-    \texttt{3}, \texttt{F}, \texttt{.} &
-    \texttt{z}, \texttt{bar} &
-    Any one-letter string made of characters from one of the ranges
-    $r_i$ ($1 \leq i \leq n$).
-    ($\mathscr L(r_1) \cup \cdots \cup \mathscr L(r_n)$) \\
-    \hline
-%%
-    {\texttt{[\char`\^}$r_1 r_2 \cdots r_k \mathtt{]}$
-    where $r_i$ is either $c$ or $c_1-c_2$ $(1 \leq i \leq k)$
-    \vspace*{0.5em} The negative character class}&
-    \texttt{[\char`\^a-fA-F0-9\_.]}&
-    \texttt{z}, \texttt{bar} &
-    \texttt{3}, \texttt{F}, \texttt{.} &
-    Any one-letter string NOT made of characters from one of the ranges
-    $r_i$ ($1 \leq i \leq n$).
-    ($\Sigma^* \setminus \left(\mathscr L(r_1) \cup \cdots \cup \mathscr L(r_n)\right)$) \\
-    \hline
-%%
-    {$p_1 p_2$ \vspace*{0.5em} A concatenation of patterns}&
-    \texttt{foo*}&
-    \texttt{foo}, \texttt{foob}, \texttt{foobar} &
-    \texttt{fo}, \texttt{bar} &
-    Any string with a prefix matching $p_1$ and the corresponding suffix
-    matching $p_2$,
-    ($\{ uv \mid u \in \mathscr L(p_1), v \in \mathscr L(p_2) \}$) \\
-    \hline
-%%
-    {$\mathtt{\{} p_1 \mathtt{,} p_2 \mathtt{,} \cdots \mathtt{,} p_k \mathtt{\}}$ \vspace*{0.5em} A union of patterns}&
-    \texttt{toto.\{ml,mli\}}&
-    \texttt{toto.ml}, \texttt{toto.mli} &
-    \texttt{toto.} &
-    Any string matching one of the patterns $p_i$ for $1 \leq i \leq k$.
-    ($\mathscr L(p_1) \cup \cdots \cup \mathscr L(p_k)$) \\
-    \hline
-%%
-    \end{tabular}
-  \end{center}
-  \caption{
-    Syntax and semantics of glob patterns.
-  }
-\end{table}
-\begin{table}
-  \begin{center}
-    \small
-    \begin{tabular}{|p{2cm}|l|p{7cm}|}
-    \hline
-      {\em Formal syntax} &
-      {\em Example} &
-      {\em Meaning (formal meaning)} \\
-    \hline
-    \hline
-      {$\mathtt{<}p\mathtt{>}$} &
-      \texttt{<foo.ml>} &
-      Pathnames matching the pattern $p$ \\
-    \hline
-      {$e_1 \; \mathtt{or} \; e_2$} &
-      \texttt{<*.ml> or <foo/bar.ml>} &
-      Pathnames matching at least one of the expressions $e_1$ and $e_2$ \\
-    \hline
-      {$e_1 \; \mathtt{and} \; e_2$} &
-      \texttt{<*.ml> and <foo\_*>} &
-      Pathnames matching both expressions $e_1$ and $e_2$ \\
-    \hline
-      {$\mathtt{not} \; e$} &
-      \texttt{not <*.mli>} &
-      Pathnames not matching the expression $e$ \\
-    \hline
-      {$\mathtt{true}$} &
-      \texttt{true} &
-      All pathnames \\
-    \hline
-      {$\mathtt{false}$} &
-      \texttt{false} &
-      No pathnames \\
-    \hline
-    \end{tabular}
-  \end{center}
-  \caption{
-    Syntax and semantics of glob expressions.
-  }
-\end{table}
-%***)
-%(*** Subdirectories
-\subsection{Subdirectories}
-If the files of your project are held in one or more subdirectories,
-\ocb must be made aware of that fact using the \texttt{-I} or \texttt{-Is} options
-or by adding an \texttt{include} tag.  For instance, assume your project is made
-of three subdirectories, \texttt{foo}, \texttt{bar} and \texttt{baz} containing
-various \texttt{.ml} files, the main file being \texttt{foo/main.ml}.  Then you can
-either type:
-\begin{verbatim}
-% ocamlbuild -Is foo,bar,baz foo/main.native
-\end{verbatim}
-or add the following line in the \tags file
-\begin{verbatim}
-<foo> or <bar> or <baz>: include
-\end{verbatim}
-and call
-\begin{verbatim}
-% ocamlbuild foo/main.native
-\end{verbatim}
-
-There are then two cases.  If no other modules named \texttt{Bar} or
-\texttt{Baz} exist elsewhere in the project, then you are done.  Just use
-\texttt{Foo}, \texttt{Foo.Bar} and \texttt{Foo.Baz} in your code.
-Otherwise, you will need to use the plugin mechanism and define the mutual
-visibility of the subdirectories using the \texttt{Pathname.define\_context}
-function.
-
-\subsubsection{Note on subdirectory traversal}
-\ocb  used  to  traverse  by  default any subdirectory not explicitly excluded.
-This  is  no  longer  the  case.  Note  that  you can still have a fine grained
-control using your \tags file and the \texttt{traverse} tag.
-
-There  is  no longer the \texttt{true: traverse} tag declaration by default. To
-make \ocb recursive use one of these:
-\begin{enumerate}
-\item Give the \texttt{-r} flag to ocamlbuild.
-\item Have a \tags or myocamlbuild.ml file in your top directory.
-\end{enumerate}
-
-%***)
-%(*** Grouping targets
-\subsection{Grouping targets with \texttt{.itarget}}
-You can create a file named \texttt{foo.itarget} containing
-a list of targets, one per line, such as
-\begin{verbatim}
-main.native
-main.byte
-stuff.docdir/index.html
-\end{verbatim}
-Requesting the target \texttt{foo.otarget} will then build every target
-listed in the file \texttt{foo.itarget}. Blank lines and lines starting
-with a sharp (\texttt{\#}) are ignored.
-%***)
-%(*** Packing subdirectories into modules
-\subsection{Packing subdirectories into modules}
-OCaml's \texttt{-pack} option allows you to structure the contents of a
-module in a subdirectory.  For instance, assume you have a directory
-\texttt{foo} containing two modules \texttt{bar.ml} and \texttt{baz.ml}.
-You want from these to build a module \texttt{Foo} containing \texttt{Bar}
-and \texttt{Baz} as submodules.  In the case where no modules named
-\texttt{Bar} or \texttt{Baz} exist outside of \texttt{Foo}, to do this you
-must write a file \texttt{foo.mlpack}, preferably sitting in the same
-directory as the directory \texttt{Foo} and containing the list of modules
-(one per line) it must contain:
-\begin{verbatim}
-Bar
-Baz
-\end{verbatim}
-Then when you will request for building \texttt{foo.cmo} the package will be
-made from \texttt{bar.cmo} and \texttt{baz.cmo}.
-%***)
-%(*** Making an OCaml library
-\subsection{Making an OCaml library}
-In  a  similar  way than for packaged modules you can make a library by putting
-it's  contents  in  a file (with the mllib extension). For instance, assume you
-have  a two modules \texttt{bar.ml} and \texttt{baz.ml}. You want from these to
-build  a  library  \texttt{foo.cmx?a}  containing \texttt{Bar} and \texttt{Baz}
-modules.  To  do  this  you must write a file \texttt{foo.mllib} containing the
-list of modules (one per line) it must contain:
-\begin{verbatim}
-Bar
-Baz
-\end{verbatim}
-Then  when  you  will request for building \texttt{foo.cma} the library will be
-made from \texttt{bar.cmo} and \texttt{baz.cmo}.
-%***)
-%(*** Making an OCaml toplevel
-\subsection{Making an OCaml toplevel}
-Making  a  toplevel is almost the same thing than making a packaged module or a
-library.   Just   write   a   file  with  the  \texttt{mltop}  extension  (like
-\texttt{foo.mltop})   and   request   for   building  the  toplevel  using  the
-\texttt{top} extension (\texttt{foo.top} in this example).
-%***)
-%(*** Preprocessor options
-\subsection{Preprocessor options and tags}
-You can specify preprocessor options with \texttt{-pp} followed by the
-preprocessor string, for instance \texttt{ocamlbuild -pp "camlp4o.opt -unsafe"}
-would run your sources thru CamlP4 with the \texttt{-unsafe} option.
-Another way is to use the tags file.
-\begin{center}
-  \begin{tabular}{|l|l|l|}
-    \hline
-    \textbf{Tag}        & \textbf{Preprocessor command} & \textbf{Remark} \\
-    \hline
-    \hline
-    \texttt{pp(cmd...)} & \texttt{cmd...}               & Arbitrary
-        preprocessor command\footnote{The command must not contain newlines or parentheses.} \\
-    \hline
-    \texttt{camlp4o}    & \texttt{camlp4o}              & Original OCaml syntax \\
-    \hline
-    \texttt{camlp4r}    & \texttt{camlp4r}              & Revised OCaml syntax \\
-    \hline
-    \texttt{camlp4of}   & \texttt{camlp4of}             & Original OCaml syntax with extensions \\
-    \hline
-    \texttt{camlp4rf}   & \texttt{camlp4rf}             & Revised OCaml syntax with extensions \\
-    \hline
-  \end{tabular}
-\end{center}
-
-%%%%% \subsubsection{An example, dealing with some configuration variables}
-%%%%%
-%%%%% It's quite common to have in your sources some files that you want to access
-%%%%% when your program is running. One often uses some variables that are setup by
-%%%%% the end user. Now suppose that there is only two files that use these variables
-%%%%% (mylib.ml and parseopt.ml).
-%%%%%
-%%%%% In the \tags file:
-%%%%% \begin{verbatim}
-%%%%% "mylib.ml" or "parseopt.ml": pp(sed -e "s,LIBDIR,/usr/local/lib/FOO,g")
-%%%%% \end{verbatim}
-%%%%%
-%%%%% In fact that solution is not really acceptable, since the variable is hardcoded
-%%%%% in the \tags file. Trying to workaround this issue by using some shell variable
-%%%%% does not work either since the -pp argument will be escaped in simple quotes.
-%%%%% Note also that using some script shell that will do that sed and use \verb'$LIBDIR'
-%%%%% as a shell variable is not a good idea since \ocb don't know this dependency on that
-%%%%% shell script.
-%%%%%
-%%%%% There is in fact at least two good solutions. The first is to tell that dependency
-%%%%% using the \texttt{dep} function in your plugin. The second is simpler it just consist
-%%%%% on generating some OCaml file at configure time. By naming this configuration file
-%%%%% \texttt{myocamlbuild_config.ml} \ocb will make it also available to your plugin.
-%%%%%
-%%%%% In your \texttt{myocamlbuild_config.mli} interface:
-%%%%% \begin{verbotim}
-%%%%% val prefix : string
-%%%%% val libdir : string
-%%%%% \end{verbotim}
-%%%%%
-%%%%% And in your \texttt{configure} script
-%%%%% \begin{verbatim}
-%%%%% #!/bin/sh
-%%%%%
-%%%%% # Setting defaults values
-%%%%% PREFIX=/usr/local
-%%%%% LIBDIR=$PREFIX/lib/FOO
-%%%%% CONF=myocamlbuild_config.ml
-%%%%%
-%%%%% # ... some shell to parse option and check configuration ...
-%%%%%
-%%%%% # Dumping the configuration as an OCaml file.
-%%%%% rm -f $CONF
-%%%%% echo "let prefix = \"$PREFIX\";;" >> $CONF
-%%%%% echo "let libdir = \"$LIBDIR\";;" >> $CONF
-%%%%% chmod -w $CONF
-%%%%% \end{verbatim}
-
-%***)
-%(*** Debugging and profiling
-\subsection{Debugging byte code and profiling native code}
-The preferred way of compiling code suitable for debugging with \texttt{ocamldebug} or
-profiling native code with \texttt{ocamlprof} is to use the appropriate target
-extensions, \texttt{.d.byte} for debugging or \texttt{.p.native}.
-
-Another way is to add use the \texttt{debug} or \texttt{profile} tags.
-Note that these tags must be applied at the compilation and linking stages.
-Hence you must either use \texttt{-tag debug} or \texttt{-tag profile}
-on the command line, or add a
-\begin{verbatim}
-true: debug
-\end{verbatim}
-line to your \tags file.
-Please note that the byte-code profiler works in a wholly different way
-and is not supported by \ocb.
-%***)
-%(*** Generating documentation using \texttt{ocamldoc}
-\subsection{Generating documentation using \texttt{ocamldoc}}
-Write the names of the modules whose interfaces will be documented in a file
-whose extension is \texttt{.odocl}, for example \texttt{foo.odocl}, then invoke
-\ocb on the target \texttt{foo.docdir/index.html}.  This will collect all the
-documentation from the interfaces (which will be build, if necessary) using
-\texttt{ocamldoc} and generate a set of HTML files under the directory
-\texttt{foo.docdir/}, which is actually a link to \texttt{\_build/foo.docdir/}.
-As for packing subdirectories into modules, the module names must be written
-one per line, without extensions and correctly capitalized.  Note that
-generating documentation in formats other than HTML or from implementations is
-not supported.
-%***)
-%(*** The display line
-\subsection{The display line}
-Provided \ocb runs in a terminal under a POSIX environment, it will
-display a sophisticated progress-indicator line that graciously interacts
-with the output of subcommands.  This line looks like this:
-\begin{verbatim}
-00:00:02 210  (180 ) main.cmx                             ONbp--il /
-\end{verbatim}
-Here, 00:00:02 is the elapsed time in hour:minute:second format since \ocb has
-been invoked; 210 is the number of external commands, typically calls to the
-compiler or the like, that may or may not have been invoked; 180 is the number
-of external commands that have not been invoked since their result is already
-in the build directory; \texttt{main.cmx} is the name of the last target built;
-\texttt{ONbp--il} is a short string that describes the tags that have been
-encountered and the slash at the end is a frame from a rotating ticker.  Hence,
-the display line has the following structure:
-\begin{verbatim}
-HH:MM:SS JOBS (CACHED) PATHNAME                           TAGS TICKER
-\end{verbatim}
-
-The tag string is made of 8 indicators which each monitor a tag. These tags
-are \texttt{ocaml}, \texttt{native}, \texttt{byte}, \texttt{program},
-\texttt{pp}, \texttt{debug}, \texttt{interf} and \texttt{link}.  Initially,
-each indicator displays a dash \texttt{-}.  If the current target has the
-monitored tag, then the indicator displays the corresponding character
-(see table \ref{tab:tag-chars}) in uppercase.  Otherwise, it displays that
-character in lowercase.  This allows you to see the set of tags that have
-been applied to files in your project during the current invocation of \ocb.
-
-Hence the tag string \texttt{ONbp--il} means that the current target
-\texttt{main.cmx} has the tags \texttt{ocaml} and \texttt{native}, and that
-the tags \texttt{ocaml}, \texttt{native}, \texttt{byte}, \texttt{program},
-\texttt{interf} and \texttt{link} have already been seen.
-
-\begin{table}
-  \begin{center}
-    \begin{tabular}{|l|c|}
-       \hline
-       \textbf{Tag} & \textbf{Display character} \\
-       \hline
-       \hline
-       ocaml    & O \\
-       \hline
-       native   & N \\
-       \hline
-       byte     & B \\
-       \hline
-       program  & P \\
-       \hline
-       pp       & R \\
-       \hline
-       debug    & D \\
-       \hline
-       interf   & I \\
-       \hline
-       link     & L \\
-       \hline
-    \end{tabular}
-  \end{center}
-  \caption{\label{tab:tag-chars} Relation between the characters displayed in
-    the tag string and the tags.}
-\end{table}
-%***)
-%(*** ocamllex, ocamlyacc and menhir
-\subsection{\texttt{ocamllex}, \texttt{ocamlyacc} and \texttt{menhir}}
-\ocb knows how to run the standard lexer and parser generator tools
-\texttt{ocamllex} and \texttt{ocamlyacc} when your files have the
-standard \texttt{.mll} and \texttt{.mly} extensions.  If you want to
-use \texttt{menhir} instead of \texttt{ocamlyacc}, you can either
-launch \ocb with the \texttt{-use-menhir} option or add a
-\begin{verbatim}
-true: use_menhir
-\end{verbatim}
-line to your \tags file.  Note that there is currently no way
-of using \texttt{menhir} and \texttt{ocamlyacc} in the same execution
-of \ocb.
-%***)
-%(*** Changing the compilers
-\subsection{Changing the compilers or tools}
-As \ocb is part of your OCaml distribution, it knows if it can call the
-native compilers and tools (\texttt{ocamlc.opt}, \texttt{ocamlopt.opt}...)
-or not.  However you may want \ocb to use another \texttt{ocaml} compiler
-for different reasons (such as cross-compiling or using a wrapper such as
-\texttt{ocamlfind}).  Here is the list of relevant options:
-\begin{itemize}
-  \item \texttt{-ocamlc <command>}
-  \item \texttt{-ocamlopt <command>}
-  \item \texttt{-ocamldep <command>}
-  \item \texttt{-ocamlyacc <command>}
-  \item \texttt{-menhir <command>}
-  \item \texttt{-ocamllex <command>}
-  \item \texttt{-ocamlmktop <command>}
-  \item \texttt{-ocamlrun <command>}
-\end{itemize}
-
-%***)
-\subsection{Writing a \texttt{myocamlbuild.ml} plugin}
-%(*** Interaction with version control systems
-\subsection{Interaction with version control systems}
-Here are tips for configuring your version control system to ignore the files
-and directories generated by \ocb.
-
-The directory \texttt{\_build} and any symbolic links
-pointing into \texttt{\_build} should be ignored.
-To do this, you must add the following ignore patterns to your version
-control system's ignore set:
-\begin{verbatim}
-_build
-*.native
-*.byte
-*.d.native
-*.p.byte
-\end{verbatim}
-
-For CVS, add the above lines to the \texttt{.cvsignore} file.
-For Subversion (SVN), type \texttt{svn propedit svn:ignore .} and add the
-above lines.
-%***)
-%(*** A shell script for driving it all?
-\subsection{A shell script for driving it all?}
-{\em To shell or to make ?}
-Traditionally, makefiles have two major functions.  The first one
-is the dependency-ordering, rule-matching logic used for compiling.
-The second one is as a dispatcher for various actions defined using
-phony targets with shell script actions.  These actions include cleaning,
-cleaning really well, archiving, uploading and so on.  Their characteristic
-is that they rely little or not on the building process -- they either need
-the building to have been completed, or they don't need anything.
-As \texttt{/bin/sh} scripts have been here for three to four decades and are
-not going anywhere, why not replace that functionality of makefiles with a
-shell script ?  We have thought of three bad reasons:
-\begin{itemize}
-  \item Typing \texttt{make} to compile is now an automatism,
-  \item We need to share variable definitions between rules and actions,
-  \item Escaping already way too special-character-sensitive shell code with
-  invisible tabs and backslashes is a dangerously fun game.
-\end{itemize}
-We also have bad reasons for not using an OCaml script to drive everything:
-\begin{itemize}
-  \item \texttt{Sys.command} calls the \texttt{/bin/sh} anyway,
-  \item Shell scripts can execute partial commands or commands with badly formed arguments.
-  \item Shell scripts are more concise for expressing...  shell scripts.
-\end{itemize}
-Anyway you are of course free to use a makefile or an OCaml script to call ocamlbuild.
-Here is an example shell driver script:
-\begin{verbatim}
-#!/bin/sh
-
-set -e
-
-TARGET=epoch
-FLAGS="-libs unix,nums"
-OCAMLBUILD=ocamlbuild
-
-ocb()
-{
-  $OCAMLBUILD $FLAGS $*
-}
-
-rule() {
-  case $1 in
-    clean)  ocb -clean;;
-    native) ocb $TARGET.native;;
-    byte)   ocb $TARGET.byte;;
-    all)    ocb $TARGET.native $TARGET.byte;;
-    depend) echo "Not needed.";;
-    *)      echo "Unknown action $1";;
-  esac;
-}
-
-if [ $# -eq 0 ]; then
-  rule all
-else
-  while [ $# -gt 0 ]; do
-    rule $1;
-    shift
-  done
-fi
-\end{verbatim}
-%***)
-%\subsection{Common errors}
-%***)
-\appendix
-%(*** Motivations
-\section{Motivations}
-{\em This inflammatory appendix describes the frustration that led us to write \ocb.}
-
-Many people have painfully found that the utilities of the \texttt{make}
-family, namely GNU Make, BSD Make, and their derivatives, fail to scale to
-large projects, especially when using multi-stage compilation rules, such as
-custom pre-processors, unless dependencies are hand-defined.  But as your
-project gets larger, more modular, and uses more diverse pre-processing tools,
-it becomes increasingly difficult to correctly define dependencies by hand.
-Hence people tend to use language-specific tools that attempt to extract
-dependencies.  However another problem then appears: \texttt{make} was designed
-with the idea of a static dependency graph.  Dependency extracting tools,
-however, are typically run by a rule in \texttt{make} itself; this means that
-make has to reload the dependency information.  This is the origin of the
-\texttt{make clean; make depend; make} mantra.  This approach tends to work
-quite well as long as all the files sit in a single directory and there is only
-one stage of pre-processing.  If there are two or more stages, then dependency
-extracting tools must be run two or more times - and this means multiple
-invocations of \texttt{make}.  Also, if one distributes the modules of a large
-project into multiple subdirectories, it becomes difficult to distribute the
-makefiles themselves, because the language of \texttt{make} was not conceived
-to be modular; the only two mechanisms permitted, inclusion of makefile
-fragments, and invocation of other make instances, must be skillfully
-coordinated with phony target names (\texttt{depend1, depend2...}) to insure
-inclusion of generated dependencies with multi-stage programming; changes in
-the structure of the project must be reflected by hand and the order of
-variable definitions must be well-thought ahead to avoid long afternoons spent
-combinatorially fiddling makefiles until it works but no one understands why.
-
-These problems become especially apparent with OCaml: to ensure type safety and
-to allow a small amount of cross-unit optimization when compiling native code,
-interface and object files include cryptographical digests of interfaces they
-are to be linked with.  This means that linking is safer, but that makefile sloppiness
-leads to messages such as:
-\begin{verbatim}
-Files foo.cmo and bar.cmo
-make inconsistent assumptions over interface Bar
-\end{verbatim}
-
-The typical reaction is then to issue the mantra \texttt{make clean; make
-depend; make} and everything compiles just fine... from the beginning.  Hence
-on medium projects, the programmer often has to wait for minutes instead of the
-few seconds that would be taken if \texttt{make} could correctly guess the
-small number of files that really had to be recompiled.
-
-It is not surprising that hacking a build tool such as \texttt{make} to include
-a programming language while retaining the original syntax and semantics gives
-an improvised and cumbersome macro language of dubious expressive power.  For
-example, using GNU make, suppose you have a list of \texttt{.ml}s that you want
-to convert into a list including both \texttt{.cmo}s and \texttt{.cmi}s, that
-is you want to transform \texttt{a.ml b.ml c.ml} into \texttt{a.cmi a.cmo b.cmi
-b.cmo c.cmi c.cmo} while preserving the dependency order which must be hand
-specified for linking \footnote{By the way, what's the point of having a
-declarative language if \texttt{make} can't sort the dependencies in
-topological order for giving them to \texttt{gcc} or whatever ?}.
-Unfortunately \texttt{\$patsubst \%.ml, \%.cmi \%.cmo, a.ml b.ml c.ml} won't
-work since the \%-sign in the right-hand of a \texttt{patsubst} gets
-substituted only once.  You then have to delve into something that is hardly
-lambda calculus: an intricate network of \texttt{foreach}, \texttt{eval},
-\texttt{call} and \texttt{define}s may get you the job done, unless you chicken
-out and opt for an external \texttt{awk}, \texttt{sed} or \texttt{perl} call.
-People who at this point have not lost their temper or sanity usually resort to
-metaprogramming by writing Makefile generators using a mixture of shell and m4.
-One such an attempt gave something that is the nightmare of wannabe package
-maintainers: it's called \texttt{autotools}.
-
-Note that it is also difficult to write \texttt{Makefiles} to build object
-files in a separate directory.  It is not impossible since the language of
-\texttt{make} is Turing-complete, a proof of which is left as an exercise.
-Note that building things in a separate directory is not necessarily a young
-enthusiast's way of giving a different look and feel to his projects -- it may
-be a good way of telling the computer that \texttt{foo.mli} is generated by
-\texttt{ocamlyacc} using \texttt{foo.mly} and can thus be removed.
-%***)
-%(*** Default rules
-\section{Summary of default rules}
-The contents of this table give a summary of the most important default rules.
-To get the most accurate and up-to-date information, launch \ocb with the
-\texttt{-documentation} option.
-\begin{center}
-\small
-\begin{tabular}{|l|l|p{5cm}|}
-  \hline
-   \textbf{Tags} & \textbf{Dependencies} & \textbf{Targets} \\
-  \hline
-  \hline
-   &  \%.itarget  &  \%.otarget  \\
-  \hline
-   ocaml &  \%.mli \%.mli.depends  &  \%.cmi  \\
-  \hline
-   byte, debug, ocaml &  \%.mlpack \%.cmi &  \%.d.cmo  \\
-  \hline
-   byte, ocaml &  \%.mlpack  &  \%.cmo \%.cmi  \\
-  \hline
-   byte, ocaml &  \%.mli \%.ml \%.ml.depends \%.cmi  & \%.d.cmo  \\
-  \hline
-   byte, ocaml &  \%.mli \%.ml \%.ml.depends \%.cmi  & \%.cmo  \\
-  \hline
-   native, ocaml, profile & \%.mlpack \%.cmi  &  \%.p.cmx \%.p.o  \\
-  \hline
-   native, ocaml &  \%.mlpack \%.cmi &  \%.cmx \%.o  \\
-  \hline
-   native, ocaml, profile &  \%.ml \%.ml.depends \%.cmi  & \%.p.cmx \%.p.o  \\
-  \hline
-   native, ocaml &  \%.ml \%.ml.depends \%.cmi  & \%.cmx \%.o  \\
-  \hline
-   debug, ocaml &  \%.ml \%.ml.depends \%.cmi  & \%.d.cmo  \\
-  \hline
-   ocaml &  \%.ml \%.ml.depends  &  \%.cmo \%.cmi  \\
-  \hline
-   byte, debug, ocaml, program &  \%.d.cmo  &  \%.d.byte \\
-  \hline
-   byte, ocaml, program &  \%.cmo  &  \%.byte  \\
-  \hline
-   native, ocaml, profile, program &  \%.p.cmx \%.p.o  & \%.p.native  \\
-  \hline
-   native, ocaml, program &  \%.cmx \%.o  & \%.native  \\
-  \hline
-   byte, debug, library, ocaml &  \%.mllib  & \%.d.cma  \\
-  \hline
-   byte, library, ocaml &  \%.mllib  &  \%.cma  \\
-  \hline
-   byte, debug, library, ocaml &  \%.d.cmo  &  \%.d.cma  \\
-  \hline
-   byte, library, ocaml &  \%.cmo  &  \%.cma  \\
-  \hline
-    & lib\%(libname).clib & lib\%(libname).a dll\%(libname).so  \\
-  \hline
-    & \%(path)/lib\%(libname).clib & \%(path)/lib\%(libname).a \%(path)/dll\%(libname).so \\
-  \hline
-   library, native, ocaml, profile & \%.mllib  &  \%.p.cmxa \%.p.a  \\
-  \hline
-   library, native, ocaml &  \%.mllib  & \%.cmxa \%.a  \\
-  \hline
-   library, native, ocaml, profile & \%.p.cmx \%.p.o  &  \%.p.cmxa \%.p.a  \\
-  \hline
-   library, native, ocaml &  \%.cmx \%.o  & \%.cmxa \%.a  \\
-  \hline
-    &  \%.ml  &  \%.ml.depends  \\
-  \hline
-    &  \%.mli  &  \%.mli.depends  \\
-  \hline
-   ocaml &  \%.mll  &  \%.ml  \\
-  \hline
-   doc, ocaml &  \%.mli \%.mli.depends  &  \%.odoc  \\
-  \hline
-    &  \%.odocl  & \%.docdir/index.html \\
-  \hline
-   ocaml &  \%.mly  &  \%.ml \%.mli  \\
-  \hline
-    &  \%.c  &  \%.o  \\
-  \hline
-    &  \%.ml \%.ml.depends  & \%.inferred.mli  \\
-  \hline
-\end{tabular}
-\end{center}
-%***)
-\end{document}
diff --git a/ocamlbuild/manual/myocamlbuild.ml b/ocamlbuild/manual/myocamlbuild.ml
deleted file mode 100644 (file)
index 9cc944e..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-(*p
-  \usepackage{xspace}
-  \newcommand{\ocb}{\texttt{ocamlbuild}\xspace}
-  \newcommand{\tags}{\texttt{\_tags}\xspace}
-*)
-let main = let module M = struct
-
-open Ocamlbuild_plugin;;
-open Command;;
-
-let pdflatex = ref (A"pdflatex");;
-let ocamlweb = ref (A"ocamlweb");;
-
-(*c dispatch is the main call of an \ocb plugin *)
-dispatch begin function
-
-  (*c Here one can change the default value of options, they can still be updated by a command line option. *)
-  | Before_options ->
-
-      (*c This will put all warnings to \texttt{ocaml\{c,opt\}} by default. *)
-      Options.ocaml_cflags := ["-w";"A"]
-
-  (*c Here one can change the final value of options. *)
-  | After_options ->
-
-      (*c This avoids the creation of symbolic links to the build directory. *)
-      Options.make_links := false
-
-  (*c This hook is called before the hygiene phase.
-      This phase also serve as collecting all the information about the
-      source tree. *)
-  | Before_hygiene ->
-
-      (*c Here you can dynamically tag some files or directories. *)
-      (*c This is done here by checking the [SOME_COND] variable which is
-          impossible in the \tags file. *)
-      if getenv "SOME_COND" ~default:"false" = "true" then
-
-        (*c By setting foo\_dir as not\_hygienic one say that the foo directory
-            can contains non hygienic files (such as \texttt{.cmi}, \texttt{.cmo}\ldots). *)
-        tag_file "foo_dir" ["not_hygienic"]
-
-  (*c One can also do things after the hygiene step. *)
-  | After_hygiene -> ()
-
-  (*c One can setup rules before the standard ones but that's not recommended. *)
-  | Before_rules -> ()
-
-  (*c Here one can add or override new rules *)
-  | After_rules ->
-
-      (*c Rules can be declared by a call of the form
-          [rule name ~prod ~dep action].
-          The first argument is the name of the rule.
-          [~prod:string] specifies the product of the rule.
-          Note that [~prods:string list] also exists.
-          [~dep] and [~deps] are for dependencies *)
-      rule "LaTeX to PDF conversion rule"
-        ~prod:"%.pdf"
-        ~dep:"%.tex"
-        begin fun env _build ->
-
-          (*c The action is a function that receive two arguments:
-               [env] is a conversion function that substitutes `\%' occurrences
-               according to the targets to which the rule applies.
-               [_build] can be called to build new things (dynamic dependencies). *)
-          let tex = env "%.tex" and _pdf = env "%.pdf" in
-
-          (*c Here we say: ``We compile the file tex form \LaTeX\xspace to PDF''.
-              Note that in fact that is a set of tags, thus the order does not
-              matter. But you got the idea. *)
-          let tags = tags_of_pathname tex++"compile"++"LaTeX"++"pdf" in
-
-          (*c Here we produce the command to run.
-              [S]  is for giving a sequence of command pieces.
-              [A]  is for atoms.
-              [P]  is for pathnames.
-              [Px] is a special pathname that should be the main product of the
-                   rule (for display purposes).
-              [T]  is for tags.
-
-              The other constructors are given in the documentation of the
-              [Command] module in [Signatures.COMMAND]. *)
-          let cmd = Cmd(S[!pdflatex; T tags; P tex; Sh"< /dev/null"]) in
-          (*c Hoping that \LaTeX will converge in two iterations *)
-          Seq[cmd; cmd]
-        end;
-
-      (*c Here we make an extension of any rule that produces a command
-          containing these tags. *)
-      flag ["compile"; "LaTeX"; "pdf"; "safe"] (A"-halt-on-error");
-
-      (*c Here we give an exception: the file ``manual.tex'' is tagged ``safe''.\ocweol
-          With this tag we add the -halt-on-error flag during the \LaTeX
-          compilation. *)
-      tag_file "manual.tex" ["safe"];
-
-      (*c The generic \LaTeX rule could look at the file searching for some
-          \verb'\input{}' command, but \LaTeX is so complex that it will
-          be hard to make this solution complete.
-          Here we manually inject some dependencies at one particular point. *)
-
-      (*c The [dep] function takes tags and pathnames. This will build pathnames
-          if a command contains these tags. Note that every file [some_file_name] is
-          tagged [file:some_file_name]. *)
-      dep ["compile"; "LaTeX"; "pdf"; "file:manual.tex"]
-          ["ocamlweb.sty"; "myocamlbuild.tex"];
-
-      rule "OCaml to LaTeX conversion rule (using ocamlweb)"
-        ~prod:"%.tex"
-        ~dep:"%.ml"
-        begin fun env _build ->
-          let tex = env "%.tex" and ml = env "%.ml" in
-          let tags = tags_of_pathname ml++"ocamlweb"++"LaTeX" in
-          Cmd(S[!ocamlweb; T tags; P ml; A"-o"; Px tex])
-        end;
-end;;
-
-end in ();;
\ No newline at end of file
diff --git a/ocamlbuild/manual/trace.out b/ocamlbuild/manual/trace.out
deleted file mode 100644 (file)
index cb2a355..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-00:00:00 0    (0) STARTING                -------- |
-00:00:00 1    (0) back.ml.depends         O------- |
-00:00:00 8    (0) keyword.mli.depends     O-b---i- |
-00:00:00 16   (0) mark.cmi                O-B---I- /
-00:00:00 20   (0) stringSet.cmi           O-B---I- /
-00:00:00 24   (0) time.mli.depends        O-b---i- /
-00:00:00 32   (0) stdlib.ml.depends       O-b---i- -
-00:00:00 35   (0) stringSet.cmx           ONb---i- -
-00:00:00 37   (0) settings.cmx            ONb---i- -
-00:00:00 44   (0) lineCount.cmx           ONb---i- \
-00:00:00 45   (0) interface.ml.depends    Onb---i- \
-00:00:00 45   (0) interface.ml.depends    Onb---i- \
-00:00:01 52   (0) stringMap.ml.depends    Onb---i- |
-00:00:01 53   (0) printer.cmx             ONb---i- |
-00:00:01 53   (0) printer.cmx             ONb---i- |
-00:00:01 57   (0) time.cmx                ONb---i- /
-00:00:01 64   (0) partialGrammar.cmi      OnB---I- /
-00:00:01 67   (0) parameters.ml.depends   Onb---i- /
-00:00:01 72   (0) misc.ml.depends         Onb---i- -
-00:00:01 74   (0) keyword.ml.depends      Onb---i- -
-00:00:01 77   (0) error.cmi               OnB---I- -
-00:00:01 82   (0) parameters.cmx          ONb---i- \
-00:00:01 84   (0) action.cmx              ONb---i- \
-00:00:01 87   (0) parser.mli.depends      Onb---i- \
-00:00:02 96   (0) parserAux.cmx           ONb---i- |
-00:00:02 103  (0) tarjan.ml.depends       Onb---i- |
-00:00:02 106  (0) unionFind.cmx           ONb---i- |
-00:00:02 108  (0) lexer.mll               Onb---i- /
-00:00:02 108  (0) lexer.mll               Onb---i- /
-00:00:02 110  (0) lexer.cmo               OnB---i- -
-00:00:02 111  (0) parser.cmx              ONb---i- -
-00:00:02 112  (0) partialGrammar.cmx      ONb---i- -
-00:00:02 114  (0) lexer.cmx               ONb---i- \
-00:00:02 116  (0) codeBits.mli.depends    Onb---i- \
-00:00:03 118  (0) preFront.cmx            ONb---i- |
-00:00:03 120  (0) tokenType.cmx           ONb---i- |
-00:00:03 123  (0) inliner.cmi             OnB---I- |
-00:00:03 126  (0) traverse.cmx            ONb---i- /
-00:00:03 126  (0) traverse.cmx            ONb---i- /
-00:00:03 129  (0) code.cmi                OnB---I- /
-00:00:03 131  (0) lr1.mli.depends         Onb---i- /
-00:00:03 134  (0) lookahead.mli.depends   Onb---i- -
-00:00:03 137  (0) gMap.ml.depends         Onb---i- -
-00:00:03 144  (0) lr1.cmi                 OnB---I- -
-00:00:03 146  (0) item.ml.depends         Onb---i- -
-00:00:03 149  (0) patricia.cmi            OnB---I- \
-00:00:03 151  (0) patricia.cmx            ONb---i- \
-00:00:03 151  (0) patricia.cmx            ONb---i- \
-00:00:04 154  (0) front.cmi               OnB---I- |
-00:00:04 164  (0) listMonad.ml.depends    Onb---i- |
-00:00:04 167  (0) listMonad.cmx           ONb---i- |
-00:00:04 170  (0) infer.cmi               OnB---I- /
-00:00:04 171  (0) lexmli.mll              Onb---i- /
-00:00:04 172  (0) lexmli.ml.depends       Onb---i- /
-00:00:04 174  (0) lexdep.mll              Onb---i- -
-00:00:04 177  (0) interface.cmx           ONb---i- -
-00:00:04 178  (0) IO.ml.depends           Onb---i- \
-00:00:04 181  (0) lexmli.cmx              ONb---i- \
-00:00:04 183  (0) IO.cmx                  ONb---i- \
-00:00:05 187  (0) infer.cmx               ONb---i- |
-00:00:05 190  (0) dot.cmi                 OnB---I- |
-00:00:05 193  (0) compressedBitSet.cmi    OnB---I- /
-00:00:05 195  (0) dot.cmx                 ONb---i- /
-00:00:05 197  (0) grammar.cmx             ONb---i- /
-00:00:05 197  (0) grammar.cmx             ONb---i- /
-00:00:05 197  (0) grammar.cmx             ONb---i- -
-00:00:05 200  (0) infiniteArray.cmi       OnB---I- -
-00:00:05 201  (0) item.cmx                ONb---i- -
-00:00:05 204  (0) breadth.mli.depends     Onb---i- \
-00:00:05 208  (0) invariant.ml.depends    Onb---i- \
-00:00:06 212  (0) invariant.cmx           ONb---i- |
-00:00:06 213  (0) inliner.cmx             ONb---i- |
-00:00:06 214  (0) code.cmx                ONb---i- /
-00:00:06 216  (0) back.native             ONbP--iL -
-Finished, 216 targets (0 cached) in 00:00:06.
-Finished, 216 targets (0 cached) in 00:00:06.
-Finished, 216 targets (0 cached) in 00:00:06.
-Finished, 216 targets (0 cached) in 00:00:06.
-Finished, 216 targets (0 cached) in 00:00:06.
-Finished, 216 targets (0 cached) in 00:00:06.
-Finished, 216 targets (0 cached) in 00:00:06.
-Finished, 216 targets (0 cached) in 00:00:06.
-Finished, 216 targets (0 cached) in 00:00:06.
index 3eaaf1743c0894198901f47cc504088d9ed413ad..cb2f0101ae6be91b8bf8ee67b13e2e1f4fdab0b1 100644 (file)
@@ -82,4 +82,4 @@ let setup () =
   implem.at_exit_once <- at_exit_once;
   implem.is_link <- is_link;
   implem.stat <- mkstat Unix.stat;
-  implem.lstat <- mkstat Unix.lstat;
+  implem.lstat <- mkstat Unix.lstat;;
index 9d3ed21cd371806fd9a4f862c9942a43c87bc9c4..0256d43acb48cb133f1a470cea21dc8d5498113b 100644 (file)
@@ -131,6 +131,8 @@ let spec =
   Arg.align
   [
    "-version", Unit (fun () -> print_endline version; raise Exit_OK), " Display the version";
+   "-vnum", Unit (fun () -> print_endline Sys.ocaml_version; raise Exit_OK),
+            " Display the version number";
    "-quiet", Unit (fun () -> Log.level := 0), " Make as quiet as possible";
    "-verbose", Int (fun i -> Log.level := i + 2), "<level> Set the verbosity level";
    "-documentation", Set show_documentation, " Show rules and flags";
index ac653c85a77068329c3799f106efe2f24ee1a4c8..e807ff7fd5cc69814ac408d3dbfaf44bb0e5fc24 100644 (file)
@@ -129,8 +129,9 @@ let rec add root path entries =
       else f :: add root path entries'
 
 let slurp_with_find path =
+  let find_cmd = try Sys.getenv "OCAMLBUILD_FIND" with _ -> "find" in
   let lines =
-    My_unix.run_and_open (Printf.sprintf "find %s" (Filename.quote path)) begin fun ic ->
+    My_unix.run_and_open (Printf.sprintf "%s %s" find_cmd (Filename.quote path)) begin fun ic ->
       let acc = ref [] in
       try while true do acc := input_line ic :: !acc done; []
       with End_of_file -> !acc
diff --git a/ocamlbuild/test/good-output b/ocamlbuild/test/good-output
deleted file mode 100644 (file)
index 5e8af9f..0000000
+++ /dev/null
@@ -1,1090 +0,0 @@
- _____         _   ____
-|_   _|__  ___| |_|___ \
-  | |/ _ \/ __| __| __) |
-  | |  __/\__ \ |_ / __/
-  |_|\___||___/\__|_____|
-
-+ CMDOPTS='-- -help'
-+ BUILD='../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display '
-+ BUILD1='../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display  -- -help'
-+ BUILD2='../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display  -verbose 0 -nothing-should-be-rebuilt -- -help'
-+ rm -rf _build
-+ cp vivi1.ml vivi.ml
-+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help
-ocamldep.opt -modules toto.ml > toto.ml.depends
-ocamldep.opt -modules tata.mli > tata.mli.depends
-ocamldep.opt -modules titi.ml > titi.ml.depends
-ocamldep.opt -modules tutu.mli > tutu.mli.depends
-ocamlc.opt -c -o tata.cmi tata.mli
-ocamlc.opt -c -o titi.cmo titi.ml
-ocamlc.opt -c -o tutu.cmi tutu.mli
-ocamlc.opt -c -o toto.cmo toto.ml
-ocamldep.opt -modules tata.ml > tata.ml.depends
-ocamldep.opt -modules tutu.ml > tutu.ml.depends
-ocamldep.opt -modules tyty.mli > tyty.mli.depends
-ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
-ocamlc.opt -c -o tyty.cmi tyty.mli
-ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
-ocamlc.opt -c -o tata.cmo tata.ml
-ocamlc.opt -c -o tutu.cmo tutu.ml
-ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
-ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
-ocamlopt.opt -c -o tata.cmx tata.ml
-ocamlopt.opt -c -o titi.cmx titi.ml
-ocamlopt.opt -c -o tutu.cmx tutu.ml
-ocamlopt.opt -c -o toto.cmx toto.ml
-ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
-Warning: Using -- only run the last target
-toto.native: _build/toto.native: Hello world!!!
-Tutu.tutu => 1
-Tata.tata => "TATA2"
-+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help
-[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends
-[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends
-[cache hit] ocamlc.opt -c -o tata.cmi tata.mli
-[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends
-[cache hit] ocamlc.opt -c -o titi.cmo titi.ml
-[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends
-[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli
-[cache hit] ocamlc.opt -c -o toto.cmo toto.ml
-[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends
-[cache hit] ocamlc.opt -c -o tata.cmo tata.ml
-[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends
-[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends
-[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli
-[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
-[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
-[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml
-[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
-[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml
-[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml
-[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
-[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml
-[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml
-[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
-Warning: Using -- only run the last target
-toto.native: _build/toto.native: Hello world!!!
-Tutu.tutu => 1
-Tata.tata => "TATA2"
-+ cp vivi2.ml vivi.ml
-+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help
-ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
-ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
-ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
-ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
-ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
-Warning: Using -- only run the last target
-toto.native: _build/toto.native: Hello world!!!
-Tutu.tutu => 1
-Tata.tata => "TATA2"
-+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help
-[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends
-[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends
-[cache hit] ocamlc.opt -c -o tata.cmi tata.mli
-[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends
-[cache hit] ocamlc.opt -c -o titi.cmo titi.ml
-[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends
-[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli
-[cache hit] ocamlc.opt -c -o toto.cmo toto.ml
-[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends
-[cache hit] ocamlc.opt -c -o tata.cmo tata.ml
-[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends
-[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends
-[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli
-[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
-[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
-[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml
-[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
-[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml
-[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml
-[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
-[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml
-[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml
-[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
-Warning: Using -- only run the last target
-toto.native: _build/toto.native: Hello world!!!
-Tutu.tutu => 1
-Tata.tata => "TATA2"
-+ cp vivi3.ml vivi.ml
-+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help
-ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
-ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
-ocamlc.opt -c -o tutu.cmo tutu.ml
-ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
-ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
-ocamlopt.opt -c -o tutu.cmx tutu.ml
-ocamlopt.opt -c -o toto.cmx toto.ml
-ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
-Warning: Using -- only run the last target
-toto.native: _build/toto.native: Hello world!!!
-Tutu.tutu => 2
-Tata.tata => "TATA2"
-+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help
-[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends
-[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends
-[cache hit] ocamlc.opt -c -o tata.cmi tata.mli
-[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends
-[cache hit] ocamlc.opt -c -o titi.cmo titi.ml
-[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends
-[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli
-[cache hit] ocamlc.opt -c -o toto.cmo toto.ml
-[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends
-[cache hit] ocamlc.opt -c -o tata.cmo tata.ml
-[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends
-[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends
-[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli
-[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
-[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
-[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml
-[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
-[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml
-[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml
-[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
-[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml
-[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml
-[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
-Warning: Using -- only run the last target
-toto.native: _build/toto.native: Hello world!!!
-Tutu.tutu => 2
-Tata.tata => "TATA2"
- _____         _   _____
-|_   _|__  ___| |_|___ /
-  | |/ _ \/ __| __| |_ \
-  | |  __/\__ \ |_ ___) |
-  |_|\___||___/\__|____/
-
-+ CMDOTPS=
-+ BUILD='../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display '
-+ BUILD1='../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display  '
-+ BUILD2='../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display  -verbose 0 -nothing-should-be-rebuilt '
-+ rm -rf _build
-+ ../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display
-ocamldep.opt -modules a.mli > a.mli.depends
-ocamlc.opt -c -o a.cmi a.mli
-ocamldep.opt -modules a.ml > a.ml.depends
-ocamldep.opt -modules b.mli > b.mli.depends
-ocamlc.opt -c -o b.cmi b.mli
-ocamlc.opt -c -o a.cmo a.ml
-ocamldep.opt -modules b.ml > b.ml.depends
-ocamldep.opt -modules c.mli > c.mli.depends
-ocamlc.opt -c -o c.cmi c.mli
-ocamlc.opt -c -o b.cmo b.ml
-ocamldep.opt -modules c.ml > c.ml.depends
-ocamldep.opt -modules d.mli > d.mli.depends
-ocamlc.opt -c -o d.cmi d.mli
-ocamlc.opt -c -o c.cmo c.ml
-ocamldep.opt -modules d.ml > d.ml.depends
-ocamldep.opt -modules e.mli > e.mli.depends
-ocamlc.opt -c -o e.cmi e.mli
-ocamlc.opt -c -o d.cmo d.ml
-ocamldep.opt -modules e.ml > e.ml.depends
-ocamldep.opt -modules f.mli > f.mli.depends
-ocamlc.opt -c -o f.cmi f.mli
-ocamlc.opt -c -o e.cmo e.ml
-ocamldep.opt -modules f.ml > f.ml.depends
-ocamlc.opt -c -o f.cmo f.ml
-ocamlc.opt unix.cma f.cmo e.cmo d.cmo c.cmo b.cmo a.cmo -o a.byte
-ocamlopt.opt -c -o f.cmx f.ml
-ocamlopt.opt -c -o e.cmx e.ml
-ocamlopt.opt -c -o d.cmx d.ml
-ocamlopt.opt -c -o c.cmx c.ml
-ocamlopt.opt -c -o b.cmx b.ml
-ocamlopt.opt -c -o a.cmx a.ml
-ocamlopt.opt unix.cmxa f.cmx e.cmx d.cmx c.cmx b.cmx a.cmx -o a.native
-ocamldoc.opt -dump a.odoc a.mli
-ocamldoc.opt -dump b.odoc b.mli
-ocamldoc.opt -dump c.odoc c.mli
-ocamldoc.opt -dump d.odoc d.mli
-ocamldoc.opt -dump e.odoc e.mli
-ocamldoc.opt -dump f.odoc f.mli
-rm -rf proj.docdir
-mkdir -p proj.docdir
-ocamldoc.opt -load a.odoc -load b.odoc -load c.odoc -load d.odoc -load e.odoc -load f.odoc -html -d proj.docdir
-+ ../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules a.mli > a.mli.depends
-[cache hit] ocamlc.opt -c -o a.cmi a.mli
-[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
-[cache hit] ocamldep.opt -modules b.mli > b.mli.depends
-[cache hit] ocamlc.opt -c -o b.cmi b.mli
-[cache hit] ocamlc.opt -c -o a.cmo a.ml
-[cache hit] ocamldep.opt -modules b.ml > b.ml.depends
-[cache hit] ocamldep.opt -modules c.mli > c.mli.depends
-[cache hit] ocamlc.opt -c -o c.cmi c.mli
-[cache hit] ocamlc.opt -c -o b.cmo b.ml
-[cache hit] ocamldep.opt -modules c.ml > c.ml.depends
-[cache hit] ocamldep.opt -modules d.mli > d.mli.depends
-[cache hit] ocamlc.opt -c -o d.cmi d.mli
-[cache hit] ocamlc.opt -c -o c.cmo c.ml
-[cache hit] ocamldep.opt -modules d.ml > d.ml.depends
-[cache hit] ocamldep.opt -modules e.mli > e.mli.depends
-[cache hit] ocamlc.opt -c -o e.cmi e.mli
-[cache hit] ocamlc.opt -c -o d.cmo d.ml
-[cache hit] ocamldep.opt -modules e.ml > e.ml.depends
-[cache hit] ocamldep.opt -modules f.mli > f.mli.depends
-[cache hit] ocamlc.opt -c -o f.cmi f.mli
-[cache hit] ocamlc.opt -c -o e.cmo e.ml
-[cache hit] ocamldep.opt -modules f.ml > f.ml.depends
-[cache hit] ocamlc.opt -c -o f.cmo f.ml
-[cache hit] ocamlc.opt unix.cma f.cmo e.cmo d.cmo c.cmo b.cmo a.cmo -o a.byte
-[cache hit] ocamlopt.opt -c -o f.cmx f.ml
-[cache hit] ocamlopt.opt -c -o e.cmx e.ml
-[cache hit] ocamlopt.opt -c -o d.cmx d.ml
-[cache hit] ocamlopt.opt -c -o c.cmx c.ml
-[cache hit] ocamlopt.opt -c -o b.cmx b.ml
-[cache hit] ocamlopt.opt -c -o a.cmx a.ml
-[cache hit] ocamlopt.opt unix.cmxa f.cmx e.cmx d.cmx c.cmx b.cmx a.cmx -o a.native
-[cache hit] ocamldoc.opt -dump a.odoc a.mli
-[cache hit] ocamldoc.opt -dump b.odoc b.mli
-[cache hit] ocamldoc.opt -dump c.odoc c.mli
-[cache hit] ocamldoc.opt -dump d.odoc d.mli
-[cache hit] ocamldoc.opt -dump e.odoc e.mli
-[cache hit] ocamldoc.opt -dump f.odoc f.mli
-[cache hit] rm -rf proj.docdir
-[cache hit] mkdir -p proj.docdir
-[cache hit] ocamldoc.opt -load a.odoc -load b.odoc -load c.odoc -load d.odoc -load e.odoc -load f.odoc -html -d proj.docdir
- _____         _   _  _
-|_   _|__  ___| |_| || |
-  | |/ _ \/ __| __| || |_
-  | |  __/\__ \ |_|__   _|
-  |_|\___||___/\__|  |_|
-
-+ CMDOTPS=
-+ BUILD='../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display '
-+ BUILD1='../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display  '
-+ BUILD2='../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display  -verbose 0 -nothing-should-be-rebuilt '
-+ rm -rf _build
-+ ../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display
-ocamldep.opt -modules a/aa.mli > a/aa.mli.depends
-ocamlc.opt -c -I a -I b -o a/aa.cmi a/aa.mli
-ocamldep.opt -modules a/aa.ml > a/aa.ml.depends
-ocamldep.opt -modules b/bb.ml > b/bb.ml.depends
-ocamlc.opt -c -I b -I a -o b/bb.cmo b/bb.ml
-ocamlc.opt -c -I a -I b -o a/aa.cmo a/aa.ml
-ocamlc.opt str.cma b/bb.cmo a/aa.cmo -o a/aa.byte
-ocamlopt.opt -c -I b -I a -o b/bb.cmx b/bb.ml
-ocamlopt.opt -c -I a -I b -o a/aa.cmx a/aa.ml
-ocamlopt.opt str.cmxa b/bb.cmx a/aa.cmx -o a/aa.native
-+ ../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules a/aa.mli > a/aa.mli.depends
-[cache hit] ocamlc.opt -c -I a -I b -o a/aa.cmi a/aa.mli
-[cache hit] ocamldep.opt -modules a/aa.ml > a/aa.ml.depends
-[cache hit] ocamldep.opt -modules b/bb.ml > b/bb.ml.depends
-[cache hit] ocamlc.opt -c -I b -I a -o b/bb.cmo b/bb.ml
-[cache hit] ocamlc.opt -c -I a -I b -o a/aa.cmo a/aa.ml
-[cache hit] ocamlc.opt str.cma b/bb.cmo a/aa.cmo -o a/aa.byte
-[cache hit] ocamlopt.opt -c -I b -I a -o b/bb.cmx b/bb.ml
-[cache hit] ocamlopt.opt -c -I a -I b -o a/aa.cmx a/aa.ml
-[cache hit] ocamlopt.opt str.cmxa b/bb.cmx a/aa.cmx -o a/aa.native
- _____         _   ____
-|_   _|__  ___| |_| ___|
-  | |/ _ \/ __| __|___ \
-  | |  __/\__ \ |_ ___) |
-  |_|\___||___/\__|____/
-
-+ CMDOPTS=
-+ BUILD='../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display '
-+ BUILD1='../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display  '
-+ BUILD2='../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display  -verbose 0 -nothing-should-be-rebuilt '
-+ rm -rf _build
-+ ../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display
-ocamldep.opt -modules d.ml > d.ml.depends
-ocamldep.opt -modules a.mli > a.mli.depends
-ocamlc.opt -c -o a.cmi a.mli
-ocamldep.opt -modules a.ml > a.ml.depends
-ocamldep.opt -modules stack.ml > stack.ml.depends
-ocamlc.opt -c -o stack.cmo stack.ml
-ocamldep.opt -modules b.ml > b.ml.depends
-ocamlc.opt -c -o a.cmo a.ml
-ocamlc.opt -c -o b.cmo b.ml
-ocamlc.opt -pack a.cmo b.cmo -o c.cmo
-ocamlc.opt -c -o d.cmo d.ml
-ocamlc.opt stack.cmo c.cmo d.cmo -o d.byte
-ocamlopt.opt -c -o stack.cmx stack.ml
-ocamlopt.opt -c -for-pack C -o a.cmx a.ml
-ocamlopt.opt -c -for-pack C -o b.cmx b.ml
-touch c.mli  ; if  ocamlopt.opt -pack a.cmx b.cmx -o c.cmx  ; then  rm -f c.mli  ; else  rm -f c.mli  ; exit 1; fi
-ocamlopt.opt -c -o d.cmx d.ml
-ocamlopt.opt stack.cmx c.cmx d.cmx -o d.native
-+ ../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules d.ml > d.ml.depends
-[cache hit] ocamldep.opt -modules a.mli > a.mli.depends
-[cache hit] ocamlc.opt -c -o a.cmi a.mli
-[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
-[cache hit] ocamldep.opt -modules stack.ml > stack.ml.depends
-[cache hit] ocamlc.opt -c -o stack.cmo stack.ml
-[cache hit] ocamlc.opt -c -o a.cmo a.ml
-[cache hit] ocamldep.opt -modules b.ml > b.ml.depends
-[cache hit] ocamlc.opt -c -o b.cmo b.ml
-[cache hit] ocamlc.opt -pack a.cmo b.cmo -o c.cmo
-[cache hit] ocamlc.opt -c -o d.cmo d.ml
-[cache hit] ocamlc.opt stack.cmo c.cmo d.cmo -o d.byte
-[cache hit] ocamlopt.opt -c -o stack.cmx stack.ml
-[cache hit] ocamlopt.opt -c -for-pack C -o a.cmx a.ml
-[cache hit] ocamlopt.opt -c -for-pack C -o b.cmx b.ml
-[cache hit] touch c.mli  ; if  ocamlopt.opt -pack a.cmx b.cmx -o c.cmx  ; then  rm -f c.mli  ; else  rm -f c.mli  ; exit 1; fi
-[cache hit] ocamlopt.opt -c -o d.cmx d.ml
-[cache hit] ocamlopt.opt stack.cmx c.cmx d.cmx -o d.native
- _____         _    __
-|_   _|__  ___| |_ / /_
-  | |/ _ \/ __| __| '_ \
-  | |  __/\__ \ |_| (_) |
-  |_|\___||___/\__|\___/
-
-+ rm -rf _build
-+ CMDOPTS=
-+ BUILD='../../_build/ocamlbuild.native -no-skip main.byte -classic-display '
-+ BUILD1='../../_build/ocamlbuild.native -no-skip main.byte -classic-display  '
-+ BUILD2='../../_build/ocamlbuild.native -no-skip main.byte -classic-display  -verbose 0 -nothing-should-be-rebuilt '
-+ cp b.mli.v1 b.mli
-+ cp d.mli.v1 d.mli
-+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display
-ocamldep.opt -modules main.mli > main.mli.depends
-ocamlc.opt -c -o main.cmi main.mli
-ocamldep.opt -modules main.ml > main.ml.depends
-ocamldep.opt -modules a.mli > a.mli.depends
-ocamldep.opt -modules d.mli > d.mli.depends
-ocamlc.opt -c -o a.cmi a.mli
-ocamlc.opt -c -o d.cmi d.mli
-ocamlc.opt -c -o main.cmo main.ml
-ocamldep.opt -modules a.ml > a.ml.depends
-ocamldep.opt -modules b.mli > b.mli.depends
-ocamlc.opt -c -o b.cmi b.mli
-ocamldep.opt -modules d.ml > d.ml.depends
-ocamlc.opt -c -o a.cmo a.ml
-ocamlc.opt -c -o d.cmo d.ml
-ocamldep.opt -modules b.ml > b.ml.depends
-ocamlc.opt -c -o b.cmo b.ml
-ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte
-+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules main.mli > main.mli.depends
-[cache hit] ocamlc.opt -c -o main.cmi main.mli
-[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
-[cache hit] ocamldep.opt -modules a.mli > a.mli.depends
-[cache hit] ocamlc.opt -c -o a.cmi a.mli
-[cache hit] ocamldep.opt -modules d.mli > d.mli.depends
-[cache hit] ocamlc.opt -c -o d.cmi d.mli
-[cache hit] ocamlc.opt -c -o main.cmo main.ml
-[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
-[cache hit] ocamldep.opt -modules b.mli > b.mli.depends
-[cache hit] ocamlc.opt -c -o b.cmi b.mli
-[cache hit] ocamlc.opt -c -o a.cmo a.ml
-[cache hit] ocamldep.opt -modules d.ml > d.ml.depends
-[cache hit] ocamlc.opt -c -o d.cmo d.ml
-[cache hit] ocamldep.opt -modules b.ml > b.ml.depends
-[cache hit] ocamlc.opt -c -o b.cmo b.ml
-[cache hit] ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte
-+ cp b.mli.v2 b.mli
-+ cp d.mli.v2 d.mli
-+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display
-ocamldep.opt -modules d.mli > d.mli.depends
-ocamlc.opt -c -o d.cmi d.mli
-ocamlc.opt -c -o main.cmo main.ml
-ocamldep.opt -modules b.mli > b.mli.depends
-+ ocamldep.opt -modules b.mli > b.mli.depends
-File "b.mli", line 1, characters 0-2:
-Syntax error
-Command exited with code 2.
-+ cp b.mli.v1 b.mli
-+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display
-ocamldep.opt -modules b.mli > b.mli.depends
-ocamlc.opt -c -o b.cmi b.mli
-ocamlc.opt -c -o d.cmo d.ml
-ocamlc.opt -c -o b.cmo b.ml
-ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte
-+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules main.mli > main.mli.depends
-[cache hit] ocamlc.opt -c -o main.cmi main.mli
-[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
-[cache hit] ocamldep.opt -modules a.mli > a.mli.depends
-[cache hit] ocamlc.opt -c -o a.cmi a.mli
-[cache hit] ocamldep.opt -modules d.mli > d.mli.depends
-[cache hit] ocamlc.opt -c -o d.cmi d.mli
-[cache hit] ocamlc.opt -c -o main.cmo main.ml
-[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
-[cache hit] ocamldep.opt -modules b.mli > b.mli.depends
-[cache hit] ocamlc.opt -c -o b.cmi b.mli
-[cache hit] ocamlc.opt -c -o a.cmo a.ml
-[cache hit] ocamldep.opt -modules d.ml > d.ml.depends
-[cache hit] ocamlc.opt -c -o d.cmo d.ml
-[cache hit] ocamldep.opt -modules b.ml > b.ml.depends
-[cache hit] ocamlc.opt -c -o b.cmo b.ml
-[cache hit] ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte
-+ echo PASS
-PASS
- _____         _  _____
-|_   _|__  ___| ||___  |
-  | |/ _ \/ __| __| / /
-  | |  __/\__ \ |_ / /
-  |_|\___||___/\__/_/
-
-+ CMDOPTS=
-+ BUILD='../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display '
-+ BUILD1='../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display  '
-+ BUILD2='../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display  -verbose 0 -nothing-should-be-rebuilt '
-+ rm -rf _build
-+ cp bb1.ml bb.ml
-+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display
-ocamlopt.opt -I /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild unix.cmxa /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
-ocamldep.opt -modules bb.mli > bb.mli.depends
-ocamlc.opt -c -o bb.cmi bb.mli
-ocamldep.opt -modules bb.ml > bb.ml.depends
-ocamldep.opt -modules cc.ml > cc.ml.depends
-ocamldep.opt -modules aa.ml > aa.ml.depends
-ocamldep.opt -modules c2.mli > c2.mli.depends
-ocamlc.opt -c -o aa.cmo aa.ml
-ocamlc.opt -c -o c2.cmi c2.mli
-ocamlc.opt -c -o bb.cmo bb.ml
-ocamlc.opt -c -o cc.cmo cc.ml
-ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
-ocamldep.opt -modules main.ml > main.ml.depends
-ocamldep.opt -modules c3.ml > c3.ml.depends
-ocamlc.opt -c -o c3.cmo c3.ml
-ocamlc.opt -c -o main.cmo main.ml
-ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
-ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
-ocamldep.opt -modules c2.ml > c2.ml.depends
-ocamlc.opt -c -o c2.cmo c2.ml
-ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
-ocamlopt.opt -c -o bb.cmx bb.ml
-ocamlopt.opt -c -o aa.cmx aa.ml
-ocamlopt.opt -c -o c2.cmx c2.ml
-ocamlopt.opt -c -o cc.cmx cc.ml
-ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
-ocamlopt.opt -c -o c3.cmx c3.ml
-ocamlopt.opt -c -o main.cmx main.ml
-ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
-+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
-[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
-[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends
-[cache hit] ocamlc.opt -c -o bb.cmo bb.ml
-[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
-[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
-[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
-[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
-[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
-[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
-[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
-[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
-[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
-[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
-[cache hit] ocamlc.opt -c -o main.cmo main.ml
-[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
-[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
-[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
-[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
-[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
-[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml
-[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
-[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
-[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml
-[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
-[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml
-[cache hit] ocamlopt.opt -c -o main.cmx main.ml
-[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
-+ cp bb2.ml bb.ml
-+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0
-[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
-[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
-ocamldep.opt -modules bb.ml > bb.ml.depends
-[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
-[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
-[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
-[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
-[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
-[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
-ocamlc.opt -c -o bb.cmo bb.ml
-ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
-[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
-[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
-[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
-[cache hit] ocamlc.opt -c -o main.cmo main.ml
-[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
-[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
-[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
-[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
-ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
-[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
-ocamlopt.opt -c -o bb.cmx bb.ml
-[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
-ocamlopt.opt -c -o cc.cmx cc.ml
-ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
-ocamlopt.opt -c -o c3.cmx c3.ml
-ocamlopt.opt -c -o main.cmx main.ml
-ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
-+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
-[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
-[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends
-[cache hit] ocamlc.opt -c -o bb.cmo bb.ml
-[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
-[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
-[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
-[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
-[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
-[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
-[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
-[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
-[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
-[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
-[cache hit] ocamlc.opt -c -o main.cmo main.ml
-[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
-[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
-[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
-[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
-[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
-[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml
-[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
-[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
-[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml
-[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
-[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml
-[cache hit] ocamlopt.opt -c -o main.cmx main.ml
-[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
-+ cp bb3.ml bb.ml
-+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0
-[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
-[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
-ocamldep.opt -modules bb.ml > bb.ml.depends
-[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
-[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
-[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
-[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
-[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
-[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
-ocamlc.opt -c -o bb.cmo bb.ml
-ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
-[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
-[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
-[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
-[cache hit] ocamlc.opt -c -o main.cmo main.ml
-[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
-[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
-[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
-[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
-ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
-[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
-ocamlopt.opt -c -o bb.cmx bb.ml
-[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
-[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml
-ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
-[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml
-[cache hit] ocamlopt.opt -c -o main.cmx main.ml
-ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
-+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
-[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
-[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends
-[cache hit] ocamlc.opt -c -o bb.cmo bb.ml
-[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
-[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
-[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
-[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
-[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
-[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
-[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
-[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
-[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
-[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
-[cache hit] ocamlc.opt -c -o main.cmo main.ml
-[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
-[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
-[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
-[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
-[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
-[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml
-[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
-[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
-[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml
-[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
-[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml
-[cache hit] ocamlopt.opt -c -o main.cmx main.ml
-[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
- _____         _   ___
-|_   _|__  ___| |_( _ )
-  | |/ _ \/ __| __/ _ \
-  | |  __/\__ \ || (_) |
-  |_|\___||___/\__\___/
-
-+ CMDOPTS=
-+ BUILD='../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display '
-+ BUILD1='../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display  '
-+ BUILD2='../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display  -verbose 0 -nothing-should-be-rebuilt '
-+ rm -rf _build
-+ ../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display
-ocamlopt.opt -I /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild unix.cmxa /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
-ocamldep.opt -modules a.ml > a.ml.depends
-ocamldep.opt -modules myconfig.ml > myconfig.ml.depends
-ocamlc.opt -c -o myconfig.cmo myconfig.ml
-ocamlc.opt -c -o a.cmo a.ml
-ocamlc.opt myconfig.cmo a.cmo -o a.byte
-ocamlopt.opt -c -o myconfig.cmx myconfig.ml
-ocamlopt.opt -c -o a.cmx a.ml
-ocamlopt.opt myconfig.cmx a.cmx -o a.native
-cp -p a.byte a
-cp -p a.native a.opt
-cp -p a.byte bin/a.byte
-cp -p bin/a.byte bin/a
-cp -p a.native bin/a.native
-cp -p bin/a.native bin/a.opt
-+ ../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
-[cache hit] ocamldep.opt -modules myconfig.ml > myconfig.ml.depends
-[cache hit] ocamlc.opt -c -o myconfig.cmo myconfig.ml
-[cache hit] ocamlc.opt -c -o a.cmo a.ml
-[cache hit] ocamlc.opt myconfig.cmo a.cmo -o a.byte
-[cache hit] ocamlopt.opt -c -o myconfig.cmx myconfig.ml
-[cache hit] ocamlopt.opt -c -o a.cmx a.ml
-[cache hit] ocamlopt.opt myconfig.cmx a.cmx -o a.native
-[cache hit] cp -p a.byte a
-[cache hit] cp -p a.native a.opt
-[cache hit] cp -p a.byte bin/a.byte
-[cache hit] cp -p bin/a.byte bin/a
-[cache hit] cp -p a.native bin/a.native
-[cache hit] cp -p bin/a.native bin/a.opt
- _____         _    ___
-|_   _|__  ___| |_ / _ \
-  | |/ _ \/ __| __| (_) |
-  | |  __/\__ \ |_ \__, |
-  |_|\___||___/\__|  /_/
-
-++ dirname ./test9/test.sh
-+ cd ./test9/../..
-+ ./_build/ocamlbuild.native -quiet -build-dir _buildtest -no-links test/test9/testglob.native
-+ ./_buildtest/test/test9/testglob.native
-Globexp for "\"hello\"" OK
-Globexp for "<hello>" OK
-Globexp for "<hel*lo>" OK
-Globexp for "<a> and <b> or <c>" OK
-Globexp for "<a> titi" OK
-Glob.eval "<[a]>" "a" = true OK
-Glob.eval "<[a]>" "b" = false OK
-Glob.eval "<[a]>" "a" = true OK
-Glob.eval "<[a]>" "b" = false OK
-Glob.eval "<[a]>" "a" = true OK
-Glob.eval "<[a]>" "b" = false OK
-Glob.eval "<[a-z]>" "a" = true OK
-Glob.eval "<[a-z]>" "e" = true OK
-Glob.eval "<[a-z]>" "k" = true OK
-Glob.eval "<[a-z]>" "z" = true OK
-Glob.eval "<[a-z]>" "0" = false OK
-Glob.eval "<[a-z]>" "A" = false OK
-Glob.eval "<[a-z]>" "~" = false OK
-Glob.eval "<[a-z]>" "a" = true OK
-Glob.eval "<[a-z]>" "e" = true OK
-Glob.eval "<[a-z]>" "k" = true OK
-Glob.eval "<[a-z]>" "z" = true OK
-Glob.eval "<[a-z]>" "0" = false OK
-Glob.eval "<[a-z]>" "A" = false OK
-Glob.eval "<[a-z]>" "~" = false OK
-Glob.eval "<[a-z]>" "a" = true OK
-Glob.eval "<[a-z]>" "e" = true OK
-Glob.eval "<[a-z]>" "k" = true OK
-Glob.eval "<[a-z]>" "z" = true OK
-Glob.eval "<[a-z]>" "0" = false OK
-Glob.eval "<[a-z]>" "A" = false OK
-Glob.eval "<[a-z]>" "~" = false OK
-Glob.eval "<[a-z][0-9]>" "a0" = true OK
-Glob.eval "<[a-z][0-9]>" "b9" = true OK
-Glob.eval "<[a-z][0-9]>" "a00" = false OK
-Glob.eval "<[a-z][0-9]>" "a0a" = false OK
-Glob.eval "<[a-z][0-9]>" "b0a" = false OK
-Glob.eval "<[a-z][0-9]>" "isduis" = false OK
-Glob.eval "<[a-z][0-9]>" "" = false OK
-Glob.eval "<[a-z][0-9]>" "a0" = true OK
-Glob.eval "<[a-z][0-9]>" "b9" = true OK
-Glob.eval "<[a-z][0-9]>" "a00" = false OK
-Glob.eval "<[a-z][0-9]>" "a0a" = false OK
-Glob.eval "<[a-z][0-9]>" "b0a" = false OK
-Glob.eval "<[a-z][0-9]>" "isduis" = false OK
-Glob.eval "<[a-z][0-9]>" "" = false OK
-Glob.eval "<[a-z][0-9]>" "a0" = true OK
-Glob.eval "<[a-z][0-9]>" "b9" = true OK
-Glob.eval "<[a-z][0-9]>" "a00" = false OK
-Glob.eval "<[a-z][0-9]>" "a0a" = false OK
-Glob.eval "<[a-z][0-9]>" "b0a" = false OK
-Glob.eval "<[a-z][0-9]>" "isduis" = false OK
-Glob.eval "<[a-z][0-9]>" "" = false OK
-Glob.eval "<hello>" "hello" = true OK
-Glob.eval "<hello>" "helli" = false OK
-Glob.eval "<hello>" "hello" = true OK
-Glob.eval "<hello>" "helli" = false OK
-Glob.eval "<hello>" "hello" = true OK
-Glob.eval "<hello>" "helli" = false OK
-Glob.eval "\"hello\"" "hello" = true OK
-Glob.eval "\"hello\"" "heidi" = false OK
-Glob.eval "\"hello\"" "hello" = true OK
-Glob.eval "\"hello\"" "heidi" = false OK
-Glob.eval "\"hello\"" "hello" = true OK
-Glob.eval "\"hello\"" "heidi" = false OK
-Glob.eval "<*>" "" = true OK
-Glob.eval "<*>" "a" = true OK
-Glob.eval "<*>" "ax" = true OK
-Glob.eval "<*>" "" = true OK
-Glob.eval "<*>" "a" = true OK
-Glob.eval "<*>" "ax" = true OK
-Glob.eval "<*>" "" = true OK
-Glob.eval "<*>" "a" = true OK
-Glob.eval "<*>" "ax" = true OK
-Glob.eval "<a*b>" "ab" = true OK
-Glob.eval "<a*b>" "acb" = true OK
-Glob.eval "<a*b>" "axxxxxb" = true OK
-Glob.eval "<a*b>" "ababbababb" = true OK
-Glob.eval "<a*b>" "abx" = false OK
-Glob.eval "<a*b>" "xxxxxab" = false OK
-Glob.eval "<a*b>" "xab" = false OK
-Glob.eval "<a*b>" "ab" = true OK
-Glob.eval "<a*b>" "acb" = true OK
-Glob.eval "<a*b>" "axxxxxb" = true OK
-Glob.eval "<a*b>" "ababbababb" = true OK
-Glob.eval "<a*b>" "abx" = false OK
-Glob.eval "<a*b>" "xxxxxab" = false OK
-Glob.eval "<a*b>" "xab" = false OK
-Glob.eval "<a*b>" "ab" = true OK
-Glob.eval "<a*b>" "acb" = true OK
-Glob.eval "<a*b>" "axxxxxb" = true OK
-Glob.eval "<a*b>" "ababbababb" = true OK
-Glob.eval "<a*b>" "abx" = false OK
-Glob.eval "<a*b>" "xxxxxab" = false OK
-Glob.eval "<a*b>" "xab" = false OK
-Glob.eval "<*.ml>" "hello.ml" = true OK
-Glob.eval "<*.ml>" ".ml" = true OK
-Glob.eval "<*.ml>" "ml" = false OK
-Glob.eval "<*.ml>" "" = false OK
-Glob.eval "<*.ml>" "toto.mli" = false OK
-Glob.eval "<*.ml>" "hello.ml" = true OK
-Glob.eval "<*.ml>" ".ml" = true OK
-Glob.eval "<*.ml>" "ml" = false OK
-Glob.eval "<*.ml>" "" = false OK
-Glob.eval "<*.ml>" "toto.mli" = false OK
-Glob.eval "<*.ml>" "hello.ml" = true OK
-Glob.eval "<*.ml>" ".ml" = true OK
-Glob.eval "<*.ml>" "ml" = false OK
-Glob.eval "<*.ml>" "" = false OK
-Glob.eval "<*.ml>" "toto.mli" = false OK
-Glob.eval "<a>" "a" = true OK
-Glob.eval "<a>" "" = false OK
-Glob.eval "<a>" "aa" = false OK
-Glob.eval "<a>" "ba" = false OK
-Glob.eval "<a>" "ab" = false OK
-Glob.eval "<a>" "abaa" = false OK
-Glob.eval "<a>" "a" = true OK
-Glob.eval "<a>" "" = false OK
-Glob.eval "<a>" "aa" = false OK
-Glob.eval "<a>" "ba" = false OK
-Glob.eval "<a>" "ab" = false OK
-Glob.eval "<a>" "abaa" = false OK
-Glob.eval "<a>" "a" = true OK
-Glob.eval "<a>" "" = false OK
-Glob.eval "<a>" "aa" = false OK
-Glob.eval "<a>" "ba" = false OK
-Glob.eval "<a>" "ab" = false OK
-Glob.eval "<a>" "abaa" = false OK
-Glob.eval "<ab>" "ab" = true OK
-Glob.eval "<ab>" "" = false OK
-Glob.eval "<ab>" "abab" = false OK
-Glob.eval "<ab>" "aba" = false OK
-Glob.eval "<ab>" "abx" = false OK
-Glob.eval "<ab>" "ab" = true OK
-Glob.eval "<ab>" "" = false OK
-Glob.eval "<ab>" "abab" = false OK
-Glob.eval "<ab>" "aba" = false OK
-Glob.eval "<ab>" "abx" = false OK
-Glob.eval "<ab>" "ab" = true OK
-Glob.eval "<ab>" "" = false OK
-Glob.eval "<ab>" "abab" = false OK
-Glob.eval "<ab>" "aba" = false OK
-Glob.eval "<ab>" "abx" = false OK
-Glob.eval "<ab?c>" "abac" = true OK
-Glob.eval "<ab?c>" "abxc" = true OK
-Glob.eval "<ab?c>" "abab" = false OK
-Glob.eval "<ab?c>" "ababab" = false OK
-Glob.eval "<ab?c>" "ababa" = false OK
-Glob.eval "<ab?c>" "abac" = true OK
-Glob.eval "<ab?c>" "abxc" = true OK
-Glob.eval "<ab?c>" "abab" = false OK
-Glob.eval "<ab?c>" "ababab" = false OK
-Glob.eval "<ab?c>" "ababa" = false OK
-Glob.eval "<ab?c>" "abac" = true OK
-Glob.eval "<ab?c>" "abxc" = true OK
-Glob.eval "<ab?c>" "abab" = false OK
-Glob.eval "<ab?c>" "ababab" = false OK
-Glob.eval "<ab?c>" "ababa" = false OK
-Glob.eval "<*ab?cd*>" "123abecd345" = true OK
-Glob.eval "<*ab?cd*>" "abccd" = true OK
-Glob.eval "<*ab?cd*>" "abccd345" = true OK
-Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK
-Glob.eval "<*ab?cd*>" "abcd" = false OK
-Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK
-Glob.eval "<*ab?cd*>" "123abecd345" = true OK
-Glob.eval "<*ab?cd*>" "abccd" = true OK
-Glob.eval "<*ab?cd*>" "abccd345" = true OK
-Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK
-Glob.eval "<*ab?cd*>" "abcd" = false OK
-Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK
-Glob.eval "<*ab?cd*>" "123abecd345" = true OK
-Glob.eval "<*ab?cd*>" "abccd" = true OK
-Glob.eval "<*ab?cd*>" "abccd345" = true OK
-Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK
-Glob.eval "<*ab?cd*>" "abcd" = false OK
-Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK
-Glob.eval "<*this*is*a*test*>" "this is a test" = true OK
-Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK
-Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK
-Glob.eval "<*this*is*a*test*>" "thisatest" = false OK
-Glob.eval "<*this*is*a*test*>" "this is a test" = true OK
-Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK
-Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK
-Glob.eval "<*this*is*a*test*>" "thisatest" = false OK
-Glob.eval "<*this*is*a*test*>" "this is a test" = true OK
-Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK
-Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK
-Glob.eval "<*this*is*a*test*>" "thisatest" = false OK
-Glob.eval "<b*>" "bxx" = true OK
-Glob.eval "<b*>" "bx" = true OK
-Glob.eval "<b*>" "aaab" = false OK
-Glob.eval "<b*>" "" = false OK
-Glob.eval "<b*>" "bxx" = true OK
-Glob.eval "<b*>" "bx" = true OK
-Glob.eval "<b*>" "aaab" = false OK
-Glob.eval "<b*>" "" = false OK
-Glob.eval "<b*>" "bxx" = true OK
-Glob.eval "<b*>" "bx" = true OK
-Glob.eval "<b*>" "aaab" = false OK
-Glob.eval "<b*>" "" = false OK
-Glob.eval "<*>" "" = true OK
-Glob.eval "<*>" "a" = true OK
-Glob.eval "<*>" "aaa" = true OK
-Glob.eval "<*>" "aaaaa" = true OK
-Glob.eval "<*>" "" = true OK
-Glob.eval "<*>" "a" = true OK
-Glob.eval "<*>" "aaa" = true OK
-Glob.eval "<*>" "aaaaa" = true OK
-Glob.eval "<*>" "" = true OK
-Glob.eval "<*>" "a" = true OK
-Glob.eval "<*>" "aaa" = true OK
-Glob.eval "<*>" "aaaaa" = true OK
-Glob.eval "<?>" "a" = true OK
-Glob.eval "<?>" "" = false OK
-Glob.eval "<?>" "aaa" = false OK
-Glob.eval "<?>" "aaaaa" = false OK
-Glob.eval "<?>" "a" = true OK
-Glob.eval "<?>" "" = false OK
-Glob.eval "<?>" "aaa" = false OK
-Glob.eval "<?>" "aaaaa" = false OK
-Glob.eval "<?>" "a" = true OK
-Glob.eval "<?>" "" = false OK
-Glob.eval "<?>" "aaa" = false OK
-Glob.eval "<?>" "aaaaa" = false OK
-Glob.eval "<{a,b}>" "a" = true OK
-Glob.eval "<{a,b}>" "b" = true OK
-Glob.eval "<{a,b}>" "" = false OK
-Glob.eval "<{a,b}>" "aa" = false OK
-Glob.eval "<{a,b}>" "ab" = false OK
-Glob.eval "<{a,b}>" "ba" = false OK
-Glob.eval "<{a,b}>" "bb" = false OK
-Glob.eval "<{a,b}>" "c" = false OK
-Glob.eval "<{a,b}>" "a" = true OK
-Glob.eval "<{a,b}>" "b" = true OK
-Glob.eval "<{a,b}>" "" = false OK
-Glob.eval "<{a,b}>" "aa" = false OK
-Glob.eval "<{a,b}>" "ab" = false OK
-Glob.eval "<{a,b}>" "ba" = false OK
-Glob.eval "<{a,b}>" "bb" = false OK
-Glob.eval "<{a,b}>" "c" = false OK
-Glob.eval "<{a,b}>" "a" = true OK
-Glob.eval "<{a,b}>" "b" = true OK
-Glob.eval "<{a,b}>" "" = false OK
-Glob.eval "<{a,b}>" "aa" = false OK
-Glob.eval "<{a,b}>" "ab" = false OK
-Glob.eval "<{a,b}>" "ba" = false OK
-Glob.eval "<{a,b}>" "bb" = false OK
-Glob.eval "<{a,b}>" "c" = false OK
-Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK
-Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK
-Glob.eval "<toto.{ml,mli}>" "toto." = false OK
-Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK
-Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK
-Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK
-Glob.eval "<toto.{ml,mli}>" "toto." = false OK
-Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK
-Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK
-Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK
-Glob.eval "<toto.{ml,mli}>" "toto." = false OK
-Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK
-Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK
-Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK
-Glob.eval "<*>" "alpha" = true OK
-Glob.eval "<*>" "beta" = true OK
-Glob.eval "<*>" "alpha/beta" = false OK
-Glob.eval "<*>" "gamma/delta" = false OK
-Glob.eval "<*>" "alpha" = true OK
-Glob.eval "<*>" "beta" = true OK
-Glob.eval "<*>" "alpha/beta" = false OK
-Glob.eval "<*>" "gamma/delta" = false OK
-Glob.eval "<*>" "alpha" = true OK
-Glob.eval "<*>" "beta" = true OK
-Glob.eval "<*>" "alpha/beta" = false OK
-Glob.eval "<*>" "gamma/delta" = false OK
-Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha" = false OK
-Glob.eval "<alpha/**/beta>" "beta" = false OK
-Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK
-Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha" = false OK
-Glob.eval "<alpha/**/beta>" "beta" = false OK
-Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK
-Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK
-Glob.eval "<alpha/**/beta>" "alpha" = false OK
-Glob.eval "<alpha/**/beta>" "beta" = false OK
-Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK
-Glob.eval "<**/*.ml>" "toto.ml" = true OK
-Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK
-Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK
-Glob.eval "<**/*.ml>" "toto.mli" = false OK
-Glob.eval "<**/*.ml>" "toto.ml" = true OK
-Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK
-Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK
-Glob.eval "<**/*.ml>" "toto.mli" = false OK
-Glob.eval "<**/*.ml>" "toto.ml" = true OK
-Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK
-Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK
-Glob.eval "<**/*.ml>" "toto.mli" = false OK
-Glob.eval "<toto/**>" "toto/" = true OK
-Glob.eval "<toto/**>" "toto/tata" = true OK
-Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK
-Glob.eval "<toto/**>" "toto" = true OK
-Glob.eval "<toto/**>" "toto2/tata" = false OK
-Glob.eval "<toto/**>" "tata/titi" = false OK
-Glob.eval "<toto/**>" "toto/" = true OK
-Glob.eval "<toto/**>" "toto/tata" = true OK
-Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK
-Glob.eval "<toto/**>" "toto" = true OK
-Glob.eval "<toto/**>" "toto2/tata" = false OK
-Glob.eval "<toto/**>" "tata/titi" = false OK
-Glob.eval "<toto/**>" "toto/" = true OK
-Glob.eval "<toto/**>" "toto/tata" = true OK
-Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK
-Glob.eval "<toto/**>" "toto" = true OK
-Glob.eval "<toto/**>" "toto2/tata" = false OK
-Glob.eval "<toto/**>" "tata/titi" = false OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/bar/libfoo.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibs/unix/libunix.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibsliblib/unlibix/libunix.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo/libbar.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "bar" = None OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libbar/foo.a" = None OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.b.a" = None OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/bar/libfoo.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibs/unix/libunix.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibsliblib/unlibix/libunix.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo/libbar.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "bar" = None OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libbar/foo.a" = None OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.b.a" = None OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/bar/libfoo.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibs/unix/libunix.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibsliblib/unlibix/libunix.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo/libbar.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.a" OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "bar" = None OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libbar/foo.a" = None OK
-Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.b.a" = None OK
- _____         _    __     ___      _               _
-|_   _|__  ___| |_  \ \   / (_)_ __| |_ _   _  __ _| |
-  | |/ _ \/ __| __|  \ \ / /| | '__| __| | | |/ _` | |
-  | |  __/\__ \ |_    \ V / | | |  | |_| |_| | (_| | |
-  |_|\___||___/\__|    \_/  |_|_|   \__|\__,_|\__,_|_|
-
- _____                    _
-|_   _|_ _ _ __ __ _  ___| |_ ___
-  | |/ _` | '__/ _` |/ _ \ __/ __|
-  | | (_| | | | (_| |  __/ |_\__ \
-  |_|\__,_|_|  \__, |\___|\__|___/
-               |___/
-+ CMDOPTS=
-+ BUILD='../../_build/ocamlbuild.native bar -no-skip -classic-display '
-+ BUILD1='../../_build/ocamlbuild.native bar -no-skip -classic-display  '
-+ BUILD2='../../_build/ocamlbuild.native bar -no-skip -classic-display  -verbose 0 -nothing-should-be-rebuilt '
-+ rm -rf _build
-+ cp foo1 foo
-+ ../../_build/ocamlbuild.native bar -no-skip -classic-display
-ocamlopt.opt -I /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild unix.cmxa /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
-cp foo bar
-+ ../../_build/ocamlbuild.native bar -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] cp foo bar
-+ cp foo2 foo
-+ ../../_build/ocamlbuild.native bar -no-skip -classic-display -verbose 0
-cp foo bar
-+ ../../_build/ocamlbuild.native bar -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
-[cache hit] cp foo bar
-+ rm foo
diff --git a/ocamlbuild/test/runtest.sh b/ocamlbuild/test/runtest.sh
deleted file mode 100755 (executable)
index 215360f..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-set -e
-cd `dirname $0`
-
-myfiglet() {
-  figlet $@ | sed 's/  *$//'
-}
-
-if figlet ""; then
-  BANNER=myfiglet
-else
-  echo "Install figlet to have a better output, press enter to continue with echo"
-  read
-  BANNER=echo
-fi
-
-HERE=`pwd`
-
-$BANNER Test2
-./test2/test.sh $@
-$BANNER Test3
-./test3/test.sh $@
-$BANNER Test4
-./test4/test.sh $@
-$BANNER Test5
-./test5/test.sh $@
-$BANNER Test6
-./test6/test.sh $@
-$BANNER Test7
-./test7/test.sh $@
-$BANNER Test8
-./test8/test.sh $@
-$BANNER Test9
-./test9/test.sh $@
-$BANNER Test Virtual Targets
-./test_virtual/test.sh $@
diff --git a/ocamlbuild/test/test1/foo.ml b/ocamlbuild/test/test1/foo.ml
deleted file mode 100644 (file)
index 43a5106..0000000
+++ /dev/null
@@ -1 +0,0 @@
-module MA1 = A1
diff --git a/ocamlbuild/test/test10/dbdi b/ocamlbuild/test/test10/dbdi
deleted file mode 100644 (file)
index 7f54810..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#load "discard_printf.cmo";;
-#load "debug.cmo";;
-#load "unix.cma";;
-#load "str.cma";;
-#load "my_unix.cmo";;
-#load "bool.cmo";;
-#load "glob_ast.cmo";;
-#load "glob_lexer.cmo";;
-#load "glob.cmo";;  
-#load "lexers.cmo";;
-#load "my_std.cmo";;
-#load "tags.cmo";;
diff --git a/ocamlbuild/test/test10/test.sh b/ocamlbuild/test/test10/test.sh
deleted file mode 100755 (executable)
index 1f96443..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-set -e
-set -x
-cd `dirname $0`/../..
-./_build/ocamlbuild.native -quiet -build-dir _buildtest -no-links test/test9/testglob.native
-./_buildtest/test/test9/testglob.native
diff --git a/ocamlbuild/test/test11/_tags b/ocamlbuild/test/test11/_tags
deleted file mode 100644 (file)
index 7e620a9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# a comment
-"a/aa.byte" or "a/aa.native": use_libb
diff --git a/ocamlbuild/test/test11/a/aa.ml b/ocamlbuild/test/test11/a/aa.ml
deleted file mode 100644 (file)
index 411d29b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let bar = 3 + List.length Bb.foo
diff --git a/ocamlbuild/test/test11/a/aa.mli b/ocamlbuild/test/test11/a/aa.mli
deleted file mode 100644 (file)
index 20f3c52..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val bar : int
diff --git a/ocamlbuild/test/test11/b/bb.ml b/ocamlbuild/test/test11/b/bb.ml
deleted file mode 100644 (file)
index fa80dc4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let foo = [2.2]
diff --git a/ocamlbuild/test/test11/b/libb.mllib b/ocamlbuild/test/test11/b/libb.mllib
deleted file mode 100644 (file)
index d0acbb7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Bb
diff --git a/ocamlbuild/test/test11/myocamlbuild.ml b/ocamlbuild/test/test11/myocamlbuild.ml
deleted file mode 100644 (file)
index b6966c7..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-open Ocamlbuild_plugin;;
-dispatch begin function
-| After_rules -> ocaml_lib "b/libb"
-| _ -> ()
-end
diff --git a/ocamlbuild/test/test11/test.sh b/ocamlbuild/test/test11/test.sh
deleted file mode 100755 (executable)
index ed3f908..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-cd `dirname $0`
-set -e
-set -x
-CMDOTPS="" # -- command args
-BUILD="../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display $@"
-BUILD1="$BUILD $CMDOPTS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS"
-rm -rf _build
-$BUILD1
-echo looks if libs are there
-ls _build/b/libb.cma _build/b/libb.cmxa _build/b/libb.a
-$BUILD2
diff --git a/ocamlbuild/test/test2/_tags b/ocamlbuild/test/test2/_tags
deleted file mode 100644 (file)
index fc23589..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-"vivi.ml": camlp4o
-
-# , some_useless_tag, \ more_useless_tags
diff --git a/ocamlbuild/test/test2/tata.ml b/ocamlbuild/test/test2/tata.ml
deleted file mode 100644 (file)
index 361fadd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let tata = "TATA2"
diff --git a/ocamlbuild/test/test2/tata.mli b/ocamlbuild/test/test2/tata.mli
deleted file mode 100644 (file)
index 7c7175c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-(* a comment *)
-val tata : string
diff --git a/ocamlbuild/test/test2/test.sh b/ocamlbuild/test/test2/test.sh
deleted file mode 100755 (executable)
index 8bbd7c7..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-cd `dirname $0`
-set -e
-set -x
-CMDOPTS="-- -help"
-BUILD="../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display $@"
-BUILD1="$BUILD $CMDOPTS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS"
-rm -rf _build
-cp vivi1.ml vivi.ml
-$BUILD1
-$BUILD2
-cp vivi2.ml vivi.ml
-$BUILD1
-$BUILD2
-cp vivi3.ml vivi.ml
-$BUILD1
-$BUILD2
diff --git a/ocamlbuild/test/test2/titi.ml b/ocamlbuild/test/test2/titi.ml
deleted file mode 100644 (file)
index 3abbf1d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let titi = []
diff --git a/ocamlbuild/test/test2/toto.ml b/ocamlbuild/test/test2/toto.ml
deleted file mode 100644 (file)
index dbb5a43..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-let i = Tutu.tutu + 10
-let s = Tata.tata ^ ".ml"
-let l = 3 :: Titi.titi
-let () = Format.printf "toto.native: %s: Hello world!!!@." Sys.argv.(0)
-let () = Format.printf "Tutu.tutu => %d@.Tata.tata => %S@." Tutu.tutu Tata.tata
diff --git a/ocamlbuild/test/test2/tutu.ml b/ocamlbuild/test/test2/tutu.ml
deleted file mode 100644 (file)
index 2e8015b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-let tutu = (Array.length Vivi.vivi : Tyty.t)
-let tutu' = 2.0 +. float_of_int tutu
diff --git a/ocamlbuild/test/test2/tutu.mli b/ocamlbuild/test/test2/tutu.mli
deleted file mode 100644 (file)
index 26657f8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-(* a comment *)
-val tutu : int
-val tutu' : float
diff --git a/ocamlbuild/test/test2/tyty.mli b/ocamlbuild/test/test2/tyty.mli
deleted file mode 100644 (file)
index 975adb5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-type t = int
diff --git a/ocamlbuild/test/test2/vivi1.ml b/ocamlbuild/test/test2/vivi1.ml
deleted file mode 100644 (file)
index 1c0517e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-let rec p i = [< '1; '2; p (i + 1) >]
-let vivi = [|2|]
diff --git a/ocamlbuild/test/test2/vivi2.ml b/ocamlbuild/test/test2/vivi2.ml
deleted file mode 100644 (file)
index 1fb48c1..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-let rec p i = [< '1; '2; p (i + 1) >]
-let vivi = [|3|]
diff --git a/ocamlbuild/test/test2/vivi3.ml b/ocamlbuild/test/test2/vivi3.ml
deleted file mode 100644 (file)
index 7849fad..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-let rec p i = [< '1; '2; p (i + 1) >]
-let vivi = [|2.1; 1.1|]
diff --git a/ocamlbuild/test/test3/_tags b/ocamlbuild/test/test3/_tags
deleted file mode 100644 (file)
index 4505f13..0000000
+++ /dev/null
@@ -1 +0,0 @@
-"a.byte" or "a.native": use_unix
diff --git a/ocamlbuild/test/test3/a.ml b/ocamlbuild/test/test3/a.ml
deleted file mode 100644 (file)
index d4586ea..0000000
+++ /dev/null
@@ -1 +0,0 @@
-module X = B
diff --git a/ocamlbuild/test/test3/a.mli b/ocamlbuild/test/test3/a.mli
deleted file mode 100644 (file)
index c17617a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(* Nothing *)
diff --git a/ocamlbuild/test/test3/b.ml b/ocamlbuild/test/test3/b.ml
deleted file mode 100644 (file)
index 58c510c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-module X = C
diff --git a/ocamlbuild/test/test3/b.mli b/ocamlbuild/test/test3/b.mli
deleted file mode 100644 (file)
index 5eea480..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(* nothing *)
diff --git a/ocamlbuild/test/test3/c.ml b/ocamlbuild/test/test3/c.ml
deleted file mode 100644 (file)
index 06f0fd9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-module X = D
diff --git a/ocamlbuild/test/test3/c.mli b/ocamlbuild/test/test3/c.mli
deleted file mode 100644 (file)
index 5eea480..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(* nothing *)
diff --git a/ocamlbuild/test/test3/d.ml b/ocamlbuild/test/test3/d.ml
deleted file mode 100644 (file)
index 42ab724..0000000
+++ /dev/null
@@ -1 +0,0 @@
-module X = E
diff --git a/ocamlbuild/test/test3/d.mli b/ocamlbuild/test/test3/d.mli
deleted file mode 100644 (file)
index 5eea480..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(* nothing *)
diff --git a/ocamlbuild/test/test3/e.ml b/ocamlbuild/test/test3/e.ml
deleted file mode 100644 (file)
index 863ea00..0000000
+++ /dev/null
@@ -1 +0,0 @@
-module X = F
diff --git a/ocamlbuild/test/test3/e.mli b/ocamlbuild/test/test3/e.mli
deleted file mode 100644 (file)
index 5eea480..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(* nothing *)
diff --git a/ocamlbuild/test/test3/f.ml b/ocamlbuild/test/test3/f.ml
deleted file mode 100644 (file)
index 00915fd..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-(* nothing *)
-let _ = Unix.stat
diff --git a/ocamlbuild/test/test3/f.mli b/ocamlbuild/test/test3/f.mli
deleted file mode 100644 (file)
index 5eea480..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(* nothing *)
diff --git a/ocamlbuild/test/test3/proj.odocl b/ocamlbuild/test/test3/proj.odocl
deleted file mode 100644 (file)
index 532c720..0000000
+++ /dev/null
@@ -1 +0,0 @@
-A B C D E F
diff --git a/ocamlbuild/test/test3/test.sh b/ocamlbuild/test/test3/test.sh
deleted file mode 100755 (executable)
index 396aaf2..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-cd `dirname $0`
-set -e
-set -x
-CMDOTPS="" # -- command args
-BUILD="../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display $@"
-BUILD1="$BUILD $CMDOPTS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS"
-rm -rf _build
-$BUILD1
-$BUILD2
diff --git a/ocamlbuild/test/test4/_tags b/ocamlbuild/test/test4/_tags
deleted file mode 100644 (file)
index 4b6e798..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# a comment
-"a/aa.byte" or "a/aa.native": use_str
diff --git a/ocamlbuild/test/test4/a/aa.ml b/ocamlbuild/test/test4/a/aa.ml
deleted file mode 100644 (file)
index 411d29b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let bar = 3 + List.length Bb.foo
diff --git a/ocamlbuild/test/test4/a/aa.mli b/ocamlbuild/test/test4/a/aa.mli
deleted file mode 100644 (file)
index 20f3c52..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val bar : int
diff --git a/ocamlbuild/test/test4/b/bb.ml b/ocamlbuild/test/test4/b/bb.ml
deleted file mode 100644 (file)
index 031031f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-let r = Str.regexp "r"
-let foo = [2.2]
diff --git a/ocamlbuild/test/test4/test.sh b/ocamlbuild/test/test4/test.sh
deleted file mode 100755 (executable)
index 4b2580a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-cd `dirname $0`
-set -e
-set -x
-CMDOTPS="" # -- command args
-BUILD="../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display $@"
-BUILD1="$BUILD $CMDOPTS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS"
-rm -rf _build
-$BUILD1
-$BUILD2
diff --git a/ocamlbuild/test/test5/_tags b/ocamlbuild/test/test5/_tags
deleted file mode 100644 (file)
index 2f66a28..0000000
+++ /dev/null
@@ -1 +0,0 @@
-"a.cmx" or "b.cmx": for-pack(C)
diff --git a/ocamlbuild/test/test5/a.ml b/ocamlbuild/test/test5/a.ml
deleted file mode 100644 (file)
index e659e73..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let a = 42 + Stack.stack
diff --git a/ocamlbuild/test/test5/a.mli b/ocamlbuild/test/test5/a.mli
deleted file mode 100644 (file)
index 3f79c81..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val a : int
diff --git a/ocamlbuild/test/test5/b.ml b/ocamlbuild/test/test5/b.ml
deleted file mode 100644 (file)
index 8db5ca3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let b = A.a + 1
diff --git a/ocamlbuild/test/test5/c.mlpack b/ocamlbuild/test/test5/c.mlpack
deleted file mode 100644 (file)
index 5decc2b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-A B
diff --git a/ocamlbuild/test/test5/d.ml b/ocamlbuild/test/test5/d.ml
deleted file mode 100644 (file)
index a5ec432..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Format.printf "C.B.b = %d@." C.B.b
diff --git a/ocamlbuild/test/test5/stack.ml b/ocamlbuild/test/test5/stack.ml
deleted file mode 100644 (file)
index 1820f85..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let stack = 42
diff --git a/ocamlbuild/test/test5/test.sh b/ocamlbuild/test/test5/test.sh
deleted file mode 100755 (executable)
index 9d78f19..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-cd `dirname $0` 
-set -e
-set -x
-CMDOPTS="" # -- command args
-BUILD="../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display $@"
-BUILD1="$BUILD $CMDOPTS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS"
-rm -rf _build
-$BUILD1
-$BUILD2
diff --git a/ocamlbuild/test/test6/a.ml b/ocamlbuild/test/test6/a.ml
deleted file mode 100644 (file)
index e09e5d0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let a = B.b
diff --git a/ocamlbuild/test/test6/a.mli b/ocamlbuild/test/test6/a.mli
deleted file mode 100644 (file)
index 451c586..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val a : 'a -> 'a
diff --git a/ocamlbuild/test/test6/b.ml b/ocamlbuild/test/test6/b.ml
deleted file mode 100644 (file)
index 362c8fc..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let b = D.d
diff --git a/ocamlbuild/test/test6/b.mli b/ocamlbuild/test/test6/b.mli
deleted file mode 100644 (file)
index 685b790..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val b : 'a -> 'a
diff --git a/ocamlbuild/test/test6/b.mli.v1 b/ocamlbuild/test/test6/b.mli.v1
deleted file mode 100644 (file)
index 685b790..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val b : 'a -> 'a
diff --git a/ocamlbuild/test/test6/b.mli.v2 b/ocamlbuild/test/test6/b.mli.v2
deleted file mode 100644 (file)
index a431698..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-....
-val b : 'a -> 'a
diff --git a/ocamlbuild/test/test6/d.ml b/ocamlbuild/test/test6/d.ml
deleted file mode 100644 (file)
index 61c7a9c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-type t
-let d x = x
diff --git a/ocamlbuild/test/test6/d.mli b/ocamlbuild/test/test6/d.mli
deleted file mode 100644 (file)
index 1db89bb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val d : 'a -> 'a
diff --git a/ocamlbuild/test/test6/d.mli.v1 b/ocamlbuild/test/test6/d.mli.v1
deleted file mode 100644 (file)
index 12fea1c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-type t
-val d : 'a -> 'a
diff --git a/ocamlbuild/test/test6/d.mli.v2 b/ocamlbuild/test/test6/d.mli.v2
deleted file mode 100644 (file)
index 1db89bb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val d : 'a -> 'a
diff --git a/ocamlbuild/test/test6/main.ml b/ocamlbuild/test/test6/main.ml
deleted file mode 100644 (file)
index 61acf12..0000000
+++ /dev/null
@@ -1 +0,0 @@
-A.a 2. +. D.d 1.
diff --git a/ocamlbuild/test/test6/main.mli b/ocamlbuild/test/test6/main.mli
deleted file mode 100644 (file)
index 5eea480..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(* nothing *)
diff --git a/ocamlbuild/test/test6/test.sh b/ocamlbuild/test/test6/test.sh
deleted file mode 100755 (executable)
index fedbc9c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-cd `dirname $0`
-set -x
-rm -rf _build
-CMDOPTS="" # -- command args
-BUILD="../../_build/ocamlbuild.native -no-skip main.byte -classic-display $@"
-BUILD1="$BUILD $CMDOPTS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS"
-cp b.mli.v1 b.mli
-cp d.mli.v1 d.mli
-$BUILD1
-$BUILD2
-cp b.mli.v2 b.mli
-cp d.mli.v2 d.mli
-$BUILD1
-cp b.mli.v1 b.mli
-if $BUILD1; then
-  if $BUILD2; then
-    echo PASS
-  else
-    echo "FAIL (-nothing-should-be-rebuilt)"
-  fi
-else
-  echo FAIL
-fi
-
diff --git a/ocamlbuild/test/test7/_tags b/ocamlbuild/test/test7/_tags
deleted file mode 100644 (file)
index 8501e32..0000000
+++ /dev/null
@@ -1 +0,0 @@
-"main.byte": my_cool_plugin
diff --git a/ocamlbuild/test/test7/aa.ml b/ocamlbuild/test/test7/aa.ml
deleted file mode 100644 (file)
index 877d0af..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let aa = "aa"
diff --git a/ocamlbuild/test/test7/bb.mli b/ocamlbuild/test/test7/bb.mli
deleted file mode 100644 (file)
index 9256de2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val bb : int
diff --git a/ocamlbuild/test/test7/bb1.ml b/ocamlbuild/test/test7/bb1.ml
deleted file mode 100644 (file)
index 9ac2d59..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let bb = 43
diff --git a/ocamlbuild/test/test7/bb2.ml b/ocamlbuild/test/test7/bb2.ml
deleted file mode 100644 (file)
index 2f91b98..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-let bb = 43
-let f x = x + 1
-let () = incr (ref 0)
diff --git a/ocamlbuild/test/test7/bb3.ml b/ocamlbuild/test/test7/bb3.ml
deleted file mode 100644 (file)
index b7ad4b5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-let bb = 43
-let f x = x + 1
-let () = incr (ref 1)
diff --git a/ocamlbuild/test/test7/bbcc.mllib b/ocamlbuild/test/test7/bbcc.mllib
deleted file mode 100644 (file)
index a97a0e6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Bb Cc
diff --git a/ocamlbuild/test/test7/c2.ml b/ocamlbuild/test/test7/c2.ml
deleted file mode 100644 (file)
index 36ff6d6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let c2 = 12
diff --git a/ocamlbuild/test/test7/c2.mli b/ocamlbuild/test/test7/c2.mli
deleted file mode 100644 (file)
index 19fe565..0000000
+++ /dev/null
@@ -1 +0,0 @@
-val c2 : int
diff --git a/ocamlbuild/test/test7/c3.ml b/ocamlbuild/test/test7/c3.ml
deleted file mode 100644 (file)
index 277e1ee..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let c3 = Bb.bb + 13
diff --git a/ocamlbuild/test/test7/cc.ml b/ocamlbuild/test/test7/cc.ml
deleted file mode 100644 (file)
index b39ef21..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let cc = (String.length Aa.aa) + Bb.bb + C2.c2
diff --git a/ocamlbuild/test/test7/cool_plugin.ml b/ocamlbuild/test/test7/cool_plugin.ml
deleted file mode 100644 (file)
index 3225186..0000000
+++ /dev/null
@@ -1 +0,0 @@
-print_endline "I am a cool plugin"
diff --git a/ocamlbuild/test/test7/main.ml b/ocamlbuild/test/test7/main.ml
deleted file mode 100644 (file)
index f121959..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let main = String.length Aa.aa - Bb.bb - C3.c3 - Cc.cc - 1
diff --git a/ocamlbuild/test/test7/myocamlbuild.ml b/ocamlbuild/test/test7/myocamlbuild.ml
deleted file mode 100644 (file)
index ab6a4b1..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-open Ocamlbuild_plugin;;
-dispatch begin function
-| After_rules ->
-    use_lib "main" "bbcc";
-    dep ["ocaml"; "link"; "byte"; "my_cool_plugin"] ["cool_plugin.cmo"];
-| _ -> ()
-end
diff --git a/ocamlbuild/test/test7/test.sh b/ocamlbuild/test/test7/test.sh
deleted file mode 100755 (executable)
index 1bbda4c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-cd `dirname $0`
-set -e
-set -x
-CMDOPTS="" # -- command args
-BUILD="../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display $@"
-BUILD1="$BUILD $CMDARGS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDARGS"
-rm -rf _build
-cp bb1.ml bb.ml
-$BUILD1
-$BUILD2
-cp bb2.ml bb.ml
-$BUILD1 -verbose 0
-$BUILD2
-cp bb3.ml bb.ml
-$BUILD1 -verbose 0
-$BUILD2
diff --git a/ocamlbuild/test/test8/a.ml b/ocamlbuild/test/test8/a.ml
deleted file mode 100644 (file)
index 35ac749..0000000
+++ /dev/null
@@ -1 +0,0 @@
-print_endline Myconfig.version;;
diff --git a/ocamlbuild/test/test8/myocamlbuild.ml b/ocamlbuild/test/test8/myocamlbuild.ml
deleted file mode 100644 (file)
index f2818b6..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-open Ocamlbuild_plugin;;
-let version = "0.1";;
-dispatch begin function
-  | After_rules ->
-      rule "myconfig.ml"
-        ~prod:"myconfig.ml"
-        begin fun _ _ ->
-          Echo(["let version = \""; version; "\";;\n"], "myconfig.ml")
-        end;
-
-      copy_rule "copy byte-code executables" "%(path).byte" "%(path:not <**/*.*>)";
-      copy_rule "copy native executables" "%(path).native" "%(path:not <**/*.*>).opt";
-      copy_rule "copy binaries to bin" "%(basename).%(extension)"
-                                       "bin/%(basename).%(extension:<{byte,native}>)";
-  | _ -> ()
-end
diff --git a/ocamlbuild/test/test8/test.sh b/ocamlbuild/test/test8/test.sh
deleted file mode 100755 (executable)
index 28825ea..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-cd `dirname $0`
-set -e
-set -x
-CMDOPTS="" # -- command args
-BUILD="../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display $@"
-BUILD1="$BUILD $CMDOPTS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS"
-rm -rf _build
-$BUILD1
-$BUILD2
diff --git a/ocamlbuild/test/test9/dbgl b/ocamlbuild/test/test9/dbgl
deleted file mode 100644 (file)
index ac61a3d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#load "unix.cma";;
-#load "str.cma";;
-#load "discard_printf.cmo";;
-#load "debug.cmo";;
-#load "bool.cmo";;
-#load "glob_ast.cmo";;
-#load "glob_lexer.cmo";;
-#load "my_unix.cmo";;
-#use "glob.ml";;
-#install_printer print_is;;
diff --git a/ocamlbuild/test/test9/test.sh b/ocamlbuild/test/test9/test.sh
deleted file mode 100755 (executable)
index 0feded2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-set -e
-set -x
-cd `dirname $0`/../..
-./_build/ocamlbuild.native -quiet -build-dir _buildtest -no-links test/test9/testglob.native $@
-./_buildtest/test/test9/testglob.native
diff --git a/ocamlbuild/test/test9/testglob.ml b/ocamlbuild/test/test9/testglob.ml
deleted file mode 100644 (file)
index 80f3466..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-(* Testglob *)
-
-open Bool;;
-open Glob;;
-
-let yep f x =
-  try
-    ignore (f x);
-    true
-  with
-  | _ -> false
-;;
-
-let tests1 = [
-  "\"hello\"",           true;
-  "<hello>",             true;
-  "<hel*lo>",            true;
-  "<a> and <b> or <c>",  true;
-  "<a> titi",            false
-];;
-
-let tests2 = [
-  "<[a]>",              ["a"], ["b"];
-  "<[a-z]>",            ["a";"e";"k";"z"], ["0";"A";"~"];
-  "<[a-z][0-9]>",       ["a0";"b9"], ["a00";"a0a";"b0a";"isduis";""];
-  "<hello>",            ["hello"], ["helli"];
-  "\"hello\"",          ["hello"], ["heidi"];
-  "<*>",                ["";"a";"ax"], [];
-  "<a*b>",              ["ab";"acb";"axxxxxb";"ababbababb"], ["abx";"xxxxxab";"xab"];
-  "<*.ml>",             ["hello.ml";".ml"], ["ml"; ""; "toto.mli"];
-  "<a>",                ["a"], ["";"aa";"ba";"ab";"abaa"];
-  "<ab>",               ["ab"], ["";"abab";"aba";"abx"];
-  "<ab?c>",             ["abac";"abxc"], ["abab";"ababab";"ababa"];
-  "<*ab?cd*>",          ["123abecd345";"abccd";"abccd345";"ababcababccdab"], ["abcd";"aaaaabcdababcd"];
-  "<*this*is*a*test*>", ["this is a test";"You know this is a test really";"thisisatest"], ["thisatest"];
-  "<b*>",               ["bxx";"bx"], ["aaab";""];
-  "<*>",                ["";"a";"aaa";"aaaaa"], [];
-  "<?>",                ["a"],["";"aaa";"aaaaa"];
-  "<{a,b}>",              ["a";"b"],["";"aa";"ab";"ba";"bb";"c"];
-  "<toto.{ml,mli}>",      ["toto.ml";"toto.mli"],["toto.";"toto.mll"];
-  "<{a,b}{c,[de]}{f,g}>", ["acf";"acg";"adf";"adg";"aef";"aeg";"bcf";"bcg";"bdf";"bdg";"bef";"beg"],
-                          ["afg";"af";"aee"];
-  "(<*.ml> or <*.mli>) and not \"hello.ml\"",
-     ["a.ml"; "b.ml"; "a.mli"],
-     ["hello.ml"; "a.mli.x"];
-  "<*>",   ["alpha";"beta"], ["alpha/beta";"gamma/delta"];
-  "<alpha/**/beta>",  ["alpha/beta";"alpha/gamma/beta";"alpha/gamma/delta/beta"],
-                      ["alpha";"beta";"gamma/delta"];
-  "<**/*.ml>",  ["toto.ml";"toto/tata.ml";"alpha/gamma/delta/beta.ml"],
-                ["toto.mli"];
-  "<toto/**>",  ["toto/";"toto/tata";"toto/alpha/gamma/delta/beta.ml";"toto"],
-                ["toto2/tata"; "tata/titi"]
-];;
-
-let tests3 = [
-  "%(path:<**/>)lib%(libname:<*> and not <*.*>).a",
-  ["libfoo.a","","foo";
-   "src/bar/libfoo.a","src/bar/","foo";
-   "otherlibs/unix/libunix.a","otherlibs/unix/","unix";
-   "otherlibsliblib/unlibix/libunix.a","otherlibsliblib/unlibix/","unix";
-   "libfoo/libbar.a","libfoo/","bar";
-   "src/libfoo/boo/libbar.a","src/libfoo/boo/","bar";
-  ],
-  ["bar"; "libbar/foo.a"; "libfoo.b.a"]
-];;
-
-let _ =
-  let times = 3 in
-  List.iter
-    begin fun (str, ast) ->
-      let ast' = yep Glob.parse str in
-      if ast <> ast' then
-        begin
-          Printf.printf "Globexp parsing failed for %S.\n%!" str;
-          exit 1
-        end
-      else
-        Printf.printf "Globexp for %S OK\n%!" str
-    end
-    tests1;
-  List.iter
-    begin fun (gstr, yes, no) ->
-      let globber = Glob.parse gstr in
-      let check polarity =
-        List.iter
-          begin fun y ->
-            if Glob.eval globber y = polarity then
-              Printf.printf "Glob.eval %S %S = %b OK\n%!" gstr y polarity
-            else
-              begin
-                Printf.printf "Glob.eval %S %S = %b FAIL\n%!" gstr y (not polarity);
-                exit 1
-              end
-          end
-      in
-      for k = 1 to times do
-        check true yes;
-        check false no
-      done
-    end
-    tests2;
-  List.iter begin fun (str, yes, no) ->
-    let resource = Resource.import_pattern str in
-    for k = 1 to times do
-      List.iter begin fun (y, path, libname) ->
-        let resource' = Resource.import y in
-        match Resource.matchit resource resource' with
-        | Some env ->
-            let path' = Resource.subst env "%(path)" in
-            let libname' = Resource.subst env "%(libname)" in
-            if path' = path && libname = libname' then
-              Printf.printf "Resource.matchit %S %S OK\n%!" str y
-            else begin
-              Printf.printf "Resource.matchit %S %S FAIL\n%!" str y;
-              exit 1
-            end
-        | None ->
-            begin
-              Printf.printf "Resource.matchit %S %S = None FAIL\n%!" str y;
-              exit 1
-            end
-      end yes;
-      List.iter begin fun y ->
-        let resource' = Resource.import y in
-        if Resource.matchit resource resource' = None then
-          Printf.printf "Resource.matchit %S %S = None OK\n%!" str y
-        else begin
-          Printf.printf "Resource.matchit %S %S <> None FAIL\n%!" str y;
-          exit 1
-        end
-      end no
-    done
-  end tests3
-;;
diff --git a/ocamlbuild/test/test_virtual/foo.itarget b/ocamlbuild/test/test_virtual/foo.itarget
deleted file mode 100644 (file)
index 257cc56..0000000
+++ /dev/null
@@ -1 +0,0 @@
-foo
diff --git a/ocamlbuild/test/test_virtual/foo1 b/ocamlbuild/test/test_virtual/foo1
deleted file mode 100644 (file)
index 1715acd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-foo1
diff --git a/ocamlbuild/test/test_virtual/foo2 b/ocamlbuild/test/test_virtual/foo2
deleted file mode 100644 (file)
index 54b060e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-foo2
diff --git a/ocamlbuild/test/test_virtual/myocamlbuild.ml b/ocamlbuild/test/test_virtual/myocamlbuild.ml
deleted file mode 100644 (file)
index 0c43d4c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-open Ocamlbuild_plugin;;
-dispatch begin function
-  | After_rules ->
-      rule "copy foo"
-        ~prod:"bar"
-        ~dep:"foo.otarget"
-        begin fun _env _build ->
-          cp "foo" "bar"
-        end
-  | _ -> ()
-end
diff --git a/ocamlbuild/test/test_virtual/test.sh b/ocamlbuild/test/test_virtual/test.sh
deleted file mode 100644 (file)
index dbb2be7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-cd `dirname $0`
-set -e
-set -x
-CMDOPTS="" # -- command args
-BUILD="../../_build/ocamlbuild.native bar -no-skip -classic-display $@"
-BUILD1="$BUILD $CMDOPTS"
-BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS"
-rm -rf _build
-cp foo1 foo
-$BUILD1
-$BUILD2
-cp foo2 foo
-$BUILD1 -verbose 0
-$BUILD2
-rm foo
index 851a3be007ddea7b4c60fa3303feb891eacb106d..355a0a2fc3f3896c981a2bcc341569ed5d2818a4 100644 (file)
@@ -55,11 +55,13 @@ odoc_class.cmo: ../typing/types.cmi odoc_value.cmo odoc_types.cmi \
 odoc_class.cmx: ../typing/types.cmx odoc_value.cmx odoc_types.cmx \
     odoc_parameter.cmx odoc_name.cmx
 odoc_comments.cmo: odoc_types.cmi odoc_text.cmi odoc_see_lexer.cmo \
-    odoc_parser.cmi odoc_misc.cmi odoc_messages.cmo odoc_lexer.cmo \
-    odoc_global.cmi odoc_cross.cmi odoc_comments_global.cmi odoc_comments.cmi
+    odoc_parser.cmi odoc_misc.cmi odoc_messages.cmo odoc_merge.cmi \
+    odoc_lexer.cmo odoc_global.cmi odoc_cross.cmi odoc_comments_global.cmi \
+    odoc_comments.cmi
 odoc_comments.cmx: odoc_types.cmx odoc_text.cmx odoc_see_lexer.cmx \
-    odoc_parser.cmx odoc_misc.cmx odoc_messages.cmx odoc_lexer.cmx \
-    odoc_global.cmx odoc_cross.cmx odoc_comments_global.cmx odoc_comments.cmi
+    odoc_parser.cmx odoc_misc.cmx odoc_messages.cmx odoc_merge.cmx \
+    odoc_lexer.cmx odoc_global.cmx odoc_cross.cmx odoc_comments_global.cmx \
+    odoc_comments.cmi
 odoc_comments_global.cmo: odoc_comments_global.cmi
 odoc_comments_global.cmx: odoc_comments_global.cmi
 odoc_config.cmo: ../utils/config.cmi odoc_config.cmi
index a9ce895918f029d6898639fcbb750a801ec67241..95b0f9d0705ec6732937f0500c89cf94b2dc7095 100644 (file)
@@ -9,7 +9,7 @@
 #(*                                                                     *)
 #(***********************************************************************)
 
-# $Id$
+# $Id: Makefile 9270 2009-05-20 11:52:42Z doligez $
 
 include ../config/Makefile
 
index 8130fe40e0eae9d7f8411bcae0f6807bb94a282a..aa010223099ffb0c86e435452c28155834ef3ef3 100644 (file)
@@ -9,13 +9,13 @@
 #(*                                                                     *)
 #(***********************************************************************)
 
-# $Id$
+# $Id: Makefile.nt 10472 2010-05-28 11:21:46Z garrigue $
 
 include ../config/Makefile
 
 CAMLRUN =../boot/ocamlrun
-OCAMLC   =$(CAMLRUN) ../ocamlc -warn-error A
-OCAMLOPT =$(CAMLRUN) ../ocamlopt
+OCAMLC   = ../ocamlcomp.sh
+OCAMLOPT = ../ocamlcompopt.sh
 OCAMLLEX =$(CAMLRUN) ../boot/ocamllex
 OCAMLYACC=../boot/ocamlyacc
 
index 5ecf70515cf614af7e5dabcccc15b39014318c2d..3a54d95d3b4ba09a686fa3a1d3ed5054a0f007c9 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Main module for bytecode. *)
 
index 143da019d34fa55f0b0d7bd287cd1b4c20eac729..9db82f1e030f703c07a397e51664c04213b4e8bf 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_analyse.ml 10355 2010-05-03 15:06:17Z guesdon $ *)
 
 (** Analysis of source files. This module is strongly inspired from
     driver/main.ml :-) *)
index e9be5ba5b768cdfc1998d74c9f9a3a01ffa73cb1..565879632dd06fca2e39360d95937fad90399e04 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_analyse.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Analysis of source files. *)
 
index 3ed7039f06e3f200b03d4baffc242253d88f19fa..74a3018dd34dd3ebe6c208eff49b5cd1111852a9 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* cvsid $Id$ *)
+(* cvsid $Id: odoc_args.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 (** Command-line arguments. *)
 
@@ -212,6 +212,8 @@ let default_dot_generator = ref (None : doc_generator option)
 (** The default option list *)
 let options = ref [
   "-version", Arg.Unit (fun () -> print_string M.message_version ; print_newline () ; exit 0) , M.option_version ;
+  "-vnum", Arg.Unit (fun () -> print_string M.config_version ;
+                               print_newline () ; exit 0) , M.option_version ;
   "-v", Arg.Unit (fun () -> verbose := true), M.verbose_mode ;
   "-I", Arg.String (fun s -> include_dirs := (Misc.expand_directory Config.standard_library s) :: !include_dirs), M.include_dirs ;
   "-pp", Arg.String (fun s -> preprocessor := Some s), M.preprocess ;
index 2e096ac3671a215208bcbd6afdffbac06b60c8f3..993e545f9b16c81b8181550f7fdfbe1324cd4a2d 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_args.mli 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (** Analysis of the command line arguments. *)
 
index 3456e14dea970b32c9c5064111785119cac37286..0d3472c68f1c208f8b81c2b131ede3119ce6acea 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_ast.ml 10355 2010-05-03 15:06:17Z guesdon $ *)
 
 (** Analysis of implementation files. *)
 open Misc
index 48ba98bfb39ef894e57aea8d26c5eff877e9bd18..b4c65bd01e013bf84cdbe76e04927cfb7316ef6e 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_ast.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** The module for analysing the typed abstract syntax tree and source code and creating modules, classes, ..., elements.*)
 
index 676d0ebc374fe227f13eb0479692ffba2b28be98..50361c63062268338da5a6e7f5cb0aeed5d22361 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_class.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Representation and manipulation of classes and class types.*)
 
@@ -250,4 +250,4 @@ let class_type_parameter_text_by_name clt label =
           None
 
 
-(* eof $Id$ *)
+(* eof $Id: odoc_class.ml 9547 2010-01-22 12:48:24Z doligez $ *)
index 51873e305d3953bb38d50e3ec7e4f9057a702014..5219f494d6ed39fb62210800e45b1e6a89fbfcc7 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_comments.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** Analysis of comments. *)
 
@@ -67,6 +67,10 @@ module Info_retriever =
                  i_version = !Odoc_comments_global.version;
                  i_sees = (List.map create_see !Odoc_comments_global.sees) ;
                  i_since = !Odoc_comments_global.since;
+                 i_before = Odoc_merge.merge_before_tags
+                     (List.map (fun (n, s) ->
+                         (n, MyTexter.text_of_string s)) !Odoc_comments_global.before)
+                   ;
                  i_deprecated =
                  (match !Odoc_comments_global.deprecated with
                    None -> None | Some s -> Some (MyTexter.text_of_string s));
@@ -320,6 +324,7 @@ let info_of_string s =
       i_version = None ;
       i_sees = [] ;
       i_since = None ;
+      i_before = [] ;
       i_deprecated = None ;
       i_params = [] ;
       i_raised_exceptions = [] ;
index 28122cda94790af41dfd5fb3b833018384d6264c..6e1a37689152e5382b545b8fe78cc0bc64dacb3a 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_comments.mli 7619 2006-09-20 11:14:37Z doligez $ *)
 
 (** Analysis of comments. *)
 
index 86663d58c74943907107471de836cadb610d0d12..0b5d92f6bdff64a78eab9724c49164e331fd2766 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_comments_global.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** The global variables used by the special comment parser.*)
 
@@ -23,6 +23,8 @@ let sees = ref ([] : string list)
 
 let since = ref (None : string option)
 
+let before = ref []
+
 let deprecated = ref (None : string option)
 
 let params = ref ([] : (string * string) list)
@@ -39,10 +41,11 @@ let init () =
   version := None;
   sees := [];
   since := None;
+  before := [];
   deprecated := None;
   params := [];
   raised_exceptions := [];
   return_value := None ;
   customs := []
 
-(* eof $Id$ *)
+(* eof $Id: odoc_comments_global.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
index 9e0474676e10fde2789677968802e13e9c024a8e..b00fdbc6519a1d5d59013df42f35dd8aadb83042 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_comments_global.mli 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** The global variables used by the special comment parser.*)
 
@@ -28,6 +28,9 @@ val sees : string list ref
 (** the since string *)
 val since : string option ref
 
+(** the before tag information *)
+val before : (string * string) list ref
+
 (** the deprecated flag *)
 val deprecated : string option ref
 
index 71769534dcb00e84e9be4c35442bacd5d55c7744..038b1caa82ad7340eb4bd7b070497aba74fc7463 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_config.ml 8416 2007-10-08 14:19:34Z doligez $ *)
 
 let custom_generators_path =
   Filename.concat Config.standard_library
index fb356084bba7f3ce095056683a212d2e18ecaa6f..f67a611788e878f5b73a72122cf199b14fdd7b9c 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_config.mli 8416 2007-10-08 14:19:34Z doligez $ *)
 
 (** Ocamldoc configuration contants. *)
 
index b73796bf8a40bf84a1c2b27f068d64cda0791766..a282a21e0b1bd76cbf4ba3749fe1033f79d1f3c5 100644 (file)
@@ -9,4 +9,4 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_control.ml 9547 2010-01-22 12:48:24Z doligez $ *)
index 4d9f3ca29142b2ae157ad8451716a009f1db68e4..1d76bec142159b0a34107ad834a43ab8d9b8f1d1 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_cross.ml 10565 2010-06-14 11:13:29Z guesdon $ *)
 
 (** Cross referencing. *)
 
@@ -646,6 +646,7 @@ let rec assoc_comments_text_elements parent_name module_list t_ele =
   | Ref (initial_name, None, text_option) ->
       (
        let rec iter_parent ?parent_name name =
+         let name = Odoc_name.normalize_name name in
          let res =
            match get_known_elements name with
              [] ->
index 2fce2c48c15e3f8d0e09afb2e83f9cd0d4dca6aa..35e70b6abe9fed3b0331ef63d3a7ccc9741fc607 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_cross.mli 7619 2006-09-20 11:14:37Z doligez $ *)
 
 (** Cross-referencing. *)
 
index cfdf9abcb439e260fbc412eeefbb1aaf990cafe7..4daf0f95951e085eb90087461d61ade8832ed19c 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_dag2html.ml 6723 2004-12-03 14:42:09Z guesdon $ *)
 
 (** The types and functions to create a html table representing a dag. Thanks to Daniel De Rauglaudre. *)
 
index d377bce2ee4e7d658f04c381fa5be990519b79f6..2da9607b9d13411f5af0687fa145db47e15d5c45 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_dag2html.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** The types and functions to create a html table representing a dag.
    Thanks to Daniel de Rauglaudre. *)
index 86a0f247c9b45b75226aa98e0fa4b2b215f870a2..517d0252b000088271776ed482c70b4cc1928586 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_dep.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Top modules dependencies. *)
 
index 452bf2bfa70676dd0e4c5cf514fb004d5f0212bf..e6c73fad1c789a93c693599c29105123f18bc26c 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_dot.ml 7619 2006-09-20 11:14:37Z doligez $ *)
 
 (** Definition of a class which outputs a dot file showing
    top modules dependencies.*)
index a108cf416a28bb1d13748bef52c128589c59213a..0d5f10e9629ea75749216e7e8c892ab98afddb48 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_env.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Environment for finding complete names from relative names. *)
 
@@ -246,4 +246,4 @@ let subst_class_type env t =
   in
   iter t
 
-(* eof $Id$ *)
+(* eof $Id: odoc_env.ml 9547 2010-01-22 12:48:24Z doligez $ *)
index 75c0b38a4d28de0b56f8afc59af77917bd37e367..5eb92dfb859e9fdac5e42d459ff089e247b683b7 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_env.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Environment for finding complete names from relative names. *)
 
index 74a2fb5a20dbce86db86808588fbd3ff99b7c848..5ff5c4007755f7829702d69d00138986e346c336 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_exception.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Representation and manipulation of exceptions. *)
 
index 4e0845661795e9b76907caf481a40c87ce03e8b1..45d7906e852b7b2b43f4adc815737e6bf8a91ba7 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_global.ml 5973 2003-11-24 10:44:07Z starynke $ *)
 
 (** Global variables. *)
 
index 3a9eab6514e3af60194f34f091693a9a84d90988..4889056b000053d65ce0c467f319caf2e7f7c184 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_global.mli 5973 2003-11-24 10:44:07Z starynke $ *)
 
 (** Global variables. *)
 
index 7cfb9890c92c986b561d0d2debbfab625021efcb..01a51e83091fc0848982c855b6c0d82e1e0d8169 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_html.ml 10493 2010-06-04 05:37:50Z guesdon $ *)
 
 (** Generation of html documentation.*)
 
@@ -550,6 +550,15 @@ class virtual info =
       | Some s ->
           bp b "<b>%s</b> %s<br>\n" Odoc_messages.since s
 
+    (** Print html code for the given "before" information.*)
+    method html_of_before b l =
+      let f (v, text) =
+        bp b "<b>%s %s </b> " Odoc_messages.before v;
+        self#html_of_text b text;
+        bs b "<br>\n"
+      in
+      List.iter f l
+
     (** Print html code for the given list of raised exceptions.*)
     method html_of_raised_exceptions b l =
       match l with
@@ -651,6 +660,7 @@ class virtual info =
           );
           self#html_of_author_list b info.M.i_authors;
           self#html_of_version_opt b info.M.i_version;
+          self#html_of_before b info.M.i_before;
           self#html_of_since_opt b info.M.i_since;
           self#html_of_raised_exceptions b info.M.i_raised_exceptions;
           self#html_of_return_opt b info.M.i_return_value;
index 4eca5fd2f5c90a88eb611aca534b0991566c9954..8f2c1fea6b18807f2931a3182cc99a06e4616ed6 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_info.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** Interface for analysing documented OCaml source files and to the collected information. *)
 
@@ -72,6 +72,7 @@ type info = Odoc_types.info = {
     i_version : string option;
     i_sees : see list;
     i_since : string option;
+    i_before : (string * text) list ;
     i_deprecated : text option;
     i_params : param list;
     i_raised_exceptions : raised_exception list;
index 4dc569547f4fe8eca363a503db14b657e97a758d..2d5cc345e93e1a945016ca68a457f691752ed00d 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_info.mli 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** Interface to the information collected in source files. *)
 
@@ -79,13 +79,16 @@ type param = (string * text)
 (** Raised exception name and description. *)
 type raised_exception = (string * text)
 
-(** Information in a special comment *)
+(** Information in a special comment
+@before 3.12.0 \@before information was not present.
+*)
 type info = Odoc_types.info = {
     i_desc : text option; (** The description text. *)
     i_authors : string list; (** The list of authors in \@author tags. *)
     i_version : string option; (** The string in the \@version tag. *)
     i_sees : see list; (** The list of \@see tags. *)
     i_since : string option; (** The string in the \@since tag. *)
+    i_before : (string * text) list ; (** the version number and text in \@before tag *)
     i_deprecated : text option; (** The of the \@deprecated tag. *)
     i_params : param list; (** The list of parameter descriptions. *)
     i_raised_exceptions : raised_exception list; (** The list of raised exceptions. *)
@@ -851,7 +854,7 @@ module Scan :
        (** This method scan the elements of the given class. *)
         method scan_class_elements : Class.t_class -> unit
 
-       (** Scan of a class. Should not be overriden. It calls [scan_class_pre]
+       (** Scan of a class. Should not be overridden. It calls [scan_class_pre]
           and if [scan_class_pre] returns [true], then it calls scan_class_elements.*)
         method scan_class : Class.t_class -> unit
 
@@ -868,7 +871,7 @@ module Scan :
         (** This method scan the elements of the given class type. *)
         method scan_class_type_elements : Class.t_class_type -> unit
 
-        (** Scan of a class type. Should not be overriden. It calls [scan_class_type_pre]
+        (** Scan of a class type. Should not be overridden. It calls [scan_class_type_pre]
            and if [scan_class_type_pre] returns [true], then it calls scan_class_type_elements.*)
         method scan_class_type : Class.t_class_type -> unit
 
@@ -885,7 +888,7 @@ module Scan :
         (** This method scan the elements of the given module. *)
         method scan_module_elements : Module.t_module -> unit
 
-       (** Scan of a module. Should not be overriden. It calls [scan_module_pre]
+       (** Scan of a module. Should not be overridden. It calls [scan_module_pre]
           and if [scan_module_pre] returns [true], then it calls scan_module_elements.*)
         method scan_module : Module.t_module -> unit
 
@@ -902,7 +905,7 @@ module Scan :
         (** This method scan the elements of the given module type. *)
         method scan_module_type_elements : Module.t_module_type -> unit
 
-        (** Scan of a module type. Should not be overriden. It calls [scan_module_type_pre]
+        (** Scan of a module type. Should not be overridden. It calls [scan_module_type_pre]
            and if [scan_module_type_pre] returns [true], then it calls scan_module_type_elements.*)
         method scan_module_type : Module.t_module_type -> unit
 
index b73796bf8a40bf84a1c2b27f068d64cda0791766..fa50fb04992f67a089b3c5ab0fd3a5b63e125b8f 100644 (file)
@@ -9,4 +9,4 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_inherit.ml 9547 2010-01-22 12:48:24Z doligez $ *)
index 3750996a452086de1adbdee5075ad21ea983ab9a..f7819e28c4e6907d796dae8090ee4dee6dcc9bb5 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_latex.ml 10355 2010-05-03 15:06:17Z guesdon $ *)
 
 (** Generation of LaTeX documentation. *)
 
index a689b268662bc7483ebafb625217066760c07e95..b194adb4efdfc5b53d2bcd29938a5964e1b7842d 100644 (file)
@@ -11,7 +11,7 @@
 
 (** The content of the LaTeX style to generate when generating LaTeX code. *)
 
-(* $Id$ *)
+(* $Id: odoc_latex_style.ml 9512 2010-01-07 15:15:07Z doligez $ *)
 
 let content ="\n\
 %% Support macros for LaTeX documentation generated by ocamldoc.\n\
index da66a00873b24f2a8929708772f27d0c072709b8..bfdede097c7d29bc0ca2512d4b284e940dcb34b7 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_lexer.mll 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** The lexer for special comments. *)
 
@@ -313,6 +313,8 @@ and elements = parse
              T_SEE
          | "since" ->
              T_SINCE
+         | "before" ->
+             T_BEFORE
          | "deprecated" ->
              T_DEPRECATED
          | "raise" ->
index 44d503f222e8339c216eec626575a4b93ec4662e..d85c6d9e55aafe12063ef2bd59d17fc74d6c772a 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_man.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** The man pages generator. *)
 open Odoc_info
@@ -58,6 +58,22 @@ class virtual info =
           bs b v;
           bs b "\n.sp\n"
 
+    (** Printf groff string for the \@before information. *)
+    method man_of_before b = function
+      [] -> ()
+    | l ->
+        List.iter
+          (fun (v, text) ->
+             bp b ".B \"%s" Odoc_messages.before;
+             bs b v;
+             bs b "\"\n";
+             self#man_of_text b text;
+             bs b "\n";
+             bs b "\n.sp\n"
+          )
+          l
+
+
     (** Print groff string for the given optional since information.*)
     method man_of_since_opt b s_opt =
       match s_opt with
@@ -178,6 +194,7 @@ class virtual info =
           );
           self#man_of_author_list b info.M.i_authors;
           self#man_of_version_opt b info.M.i_version;
+          self#man_of_before b info.M.i_before;
           self#man_of_since_opt b info.M.i_since;
           self#man_of_raised_exceptions b info.M.i_raised_exceptions;
           self#man_of_return_opt b info.M.i_return_value;
index fd046752e9824768d2c3b3c30c955c80bf6752ef..45048d81a591e706f8886c97200d6b2b967e9ee0 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_merge.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** Merge of information from [.ml] and [.mli] for a module.*)
 
@@ -23,6 +23,26 @@ open Odoc_exception
 open Odoc_class
 open Odoc_module
 
+let merge_before_tags l =
+  let rec iter acc = function
+    [] -> List.rev acc
+  | (v, text) :: q ->
+      let (l1, l2) = List.partition
+        (fun (v2,_) -> v = v2) q
+      in
+      let acc =
+        let text =
+          List.fold_left
+            (fun acc t -> acc @ [Raw " "] @ t)
+            text (List.map snd l1)
+        in
+        (v, text) :: acc
+      in
+      iter acc l2
+  in
+  iter [] l
+;;
+
 (** Merge two Odoctypes.info struture, completing the information of
    the first one with the information in the second one.
    The merge treatment depends on a given merge_option list.
@@ -83,6 +103,7 @@ let merge_info merge_options (m1 : info) (m2 : info) =
         else
           Some v1
   in
+  let new_before = merge_before_tags (m1.i_before @ m2.i_before) in
   let new_dep =
     match m1.i_deprecated, m2.i_deprecated with
       None, None -> None
@@ -170,6 +191,7 @@ let merge_info merge_options (m1 : info) (m2 : info) =
     Odoc_types.i_version = new_version ;
     Odoc_types.i_sees = new_sees ;
     Odoc_types.i_since = new_since ;
+    Odoc_types.i_before = new_before ;
     Odoc_types.i_deprecated = new_dep ;
     Odoc_types.i_params = new_params ;
     Odoc_types.i_raised_exceptions = new_raised_exceptions ;
index 52d39033d904c3f95dad4b985b8dcbce5bc728b3..7287a25743344a8505f8981431984eb6d17f6ed1 100644 (file)
@@ -9,10 +9,14 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_merge.mli 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** Merge of information from [.ml] and [.mli] for a module.*)
 
+(** Merging \@before tags. *)
+val merge_before_tags :
+    (string * Odoc_types.text) list -> (string * Odoc_types.text) list
+
 (** Merge of two optional info structures.
    Used to merge a comment before and a comment after
    an element in [Odoc_sig.Analyser.analyse_signature_item_desc]. *)
index 078f2d649ac5372b13dc3f3e55168c58688bbf32..5d3d792d86f39f90ac85953c4c58abf13576cbd7 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_messages.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** The messages of the application. *)
 
@@ -328,6 +328,7 @@ let methods = "Methods"
 let authors = "Author(s)"
 let version = "Version"
 let since = "Since"
+let before = "Before"
 let deprecated = "Deprecated."
 let raises = "Raises"
 let returns = "Returns"
index c439ef31636ece02f516ed7ed471727984bbbeb2..1e9f4961aa5078cf1bb9388a5cbf6f85f00fc168 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_misc.ml 9638 2010-03-08 16:54:13Z guesdon $ *)
 
 let no_blanks s =
   let len = String.length s in
index 4fc83fe89b8712754617cef63068a3aaf118c92d..06b66fc3c5fcad8da5b39cb84a3346f4f5f18bff 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_misc.mli 7307 2006-01-04 16:55:50Z doligez $ *)
 
 (** Miscelaneous functions *)
 
index cc1fe02ca8083ed739df19c0728ba3e2f4411073..72c1579b4b40e7d1bfdd6c1639fd328fee35c6cf 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_module.ml 10355 2010-05-03 15:06:17Z guesdon $ *)
 
 (** Representation and manipulation of modules and module types. *)
 
index 672203ff67586f35e71f56a461ebf28101181005..477aab6d1185e056879f8db774e34f4d23b91423 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_name.ml 10565 2010-06-14 11:13:29Z guesdon $ *)
 
 (** Representation of element names. *)
 
@@ -33,14 +33,39 @@ let infix_chars = [ '|' ;
 
 type t = string
 
+let strip_string s =
+  let len = String.length s in
+  let rec iter_first n =
+    if n >= len then
+      None
+    else
+      match s.[n] with
+        ' ' | '\t' | '\n' | '\r' -> iter_first (n+1)
+      | _ -> Some n
+  in
+  match iter_first 0 with
+    None -> ""
+  | Some first ->
+      let rec iter_last n =
+        if n <= first then
+          None
+        else
+          match s.[n] with
+            ' ' | '\t' | '\n' | '\r' -> iter_last (n-1)
+          |    _ -> Some n
+      in
+      match iter_last (len-1) with
+        None -> String.sub s first 1
+      |        Some last -> String.sub s first ((last-first)+1)
+
 let parens_if_infix name =
-  match name with
+  match strip_string name with
   | "" -> ""
   | s when s.[0] = '*' || s.[String.length s - 1] = '*' -> "( " ^ s ^ " )"
   | s when List.mem s.[0] infix_chars -> "(" ^ s ^ ")"
   | "or" | "mod" | "land" | "lor" | "lxor" | "lsl" | "lsr" | "asr" ->
      "(" ^ name ^ ")"
-  | _ -> name
+  | name -> name
 ;;
 
 let cut name =
@@ -80,6 +105,22 @@ let father name = fst (cut name)
 
 let concat n1 n2 = n1^"."^n2
 
+let normalize_name name =
+  let (p,s) = cut name in
+  let len = String.length s in
+  let s =
+    if len >= 2 &&
+      s.[0] = '(' && s.[len - 1] = ')'
+    then
+      parens_if_infix (strip_string (String.sub s 1 (len - 2)))
+    else
+      s
+  in
+  match p with
+    "" -> s
+  | p -> concat p s
+  ;;
+
 let head_and_tail n =
   try
     let pos = String.index n '.' in
index 0feb3b83e2a0c6d79bf3bbc568834729a73b9524..ff696bfb3915af1a30e9ba37e8d0230b8ed107e3 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_name.mli 10565 2010-06-14 11:13:29Z guesdon $ *)
 
 (** Representation of element names. *)
 
@@ -27,6 +27,10 @@ val father : t -> t
 (** Concatenates two names. *)
 val concat : t -> t -> t
 
+(** Normalize the given name by removing the beginning and ending spaces
+     of the simple name and adding parenthesis if needed. *)
+val normalize_name : t -> t
+
 (** Returns the head of a name. *)
 val head : t -> t
 
index 6364a900f6bf005d7b1bcd07f859084331f279e4..4fdc54b5fb8fff6492679fda02eb75a128239df1 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_ocamlhtml.mll 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Generation of html code to display OCaml code. *)
 open Lexing
index 56f175ecd4b2152b919bddb5f55bee34af078f4a..24723a14f494e0d058ba5cb1a1fae032df9b85f1 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_parameter.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Representation and manipulation of method / function / class parameters. *)
 
index 0d9d814d299a60c2ef398fe2ed437663c673536c..5a3ab6aef412539d6693d8b89b431b009c773f1a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_parser.mly 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 open Odoc_types
 open Odoc_comments_global
@@ -34,6 +34,7 @@ let print_DEBUG s = print_string s; print_newline ()
 %token T_VERSION
 %token T_SEE
 %token T_SINCE
+%token T_BEFORE
 %token T_DEPRECATED
 %token T_RAISES
 %token T_RETURN
@@ -81,6 +82,7 @@ element:
 | version { () }
 | see { () }
 | since { () }
+| before { () }
 | deprecated { () }
 | raise_exc { () }
 | return { () }
@@ -122,6 +124,22 @@ see:
 since:
     T_SINCE Desc { since := Some $2 }
 ;
+before:
+    T_BEFORE Desc
+    {
+      (* isolate the version name *)
+      let s = $2 in
+      match Str.split (Str.regexp (blank^"+")) s with
+        []
+      | _ :: [] ->
+          raise (Failure "usage: @before version description")
+      | id :: _ ->
+          print_DEBUG ("version "^id);
+            let remain = String.sub s (String.length id) ((String.length s) - (String.length id)) in
+            let remain2 = Str.replace_first (Str.regexp ("^"^blank^"+")) "" remain in
+            before := !before @ [(id, remain2)]
+    }
+;
 deprecated:
     T_DEPRECATED Desc { deprecated := Some $2 }
 ;
index 5cc8e038c7c6e26477e3a37049673296e52ecc25..2ca42bfa2bf5f58b331340db55567a925b486d3e 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_print.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Format
 
index 01b319c35b8ed115deaecac8001ad18e93fd00b0..2575db905ceb0d70cdf10e5f9cdf5828606c84d5 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_print.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Printing functions. *)
 
index 839092df225e631f9a0a594806a82d818f4c26cd..313bb206e768a224fe2782475656e81d4f663ac2 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_scan.ml 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (** Scanning of modules and elements.
 
@@ -56,7 +56,7 @@ class scanner =
         )
         (Odoc_class.class_elements c)
 
-    (** Scan of a class. Should not be overriden. It calls [scan_class_pre]
+    (** Scan of a class. Should not be overridden. It calls [scan_class_pre]
       and if [scan_class_pre] returns [true], then it calls scan_class_elements.*)
     method scan_class c = if self#scan_class_pre c then self#scan_class_elements c
 
@@ -82,7 +82,7 @@ class scanner =
         )
         (Odoc_class.class_type_elements ct)
 
-    (** Scan of a class type. Should not be overriden. It calls [scan_class_type_pre]
+    (** Scan of a class type. Should not be overridden. It calls [scan_class_type_pre]
       and if [scan_class_type_pre] returns [true], then it calls scan_class_type_elements.*)
     method scan_class_type ct = if self#scan_class_type_pre ct then self#scan_class_type_elements ct
 
@@ -113,7 +113,7 @@ class scanner =
         )
         (Odoc_module.module_elements m)
 
-    (** Scan of a module. Should not be overriden. It calls [scan_module_pre]
+    (** Scan of a module. Should not be overridden. It calls [scan_module_pre]
       and if [scan_module_pre] returns [true], then it calls scan_module_elements.*)
     method scan_module m = if self#scan_module_pre m then self#scan_module_elements m
 
@@ -144,7 +144,7 @@ class scanner =
         )
         (Odoc_module.module_type_elements mt)
 
-    (** Scan of a module type. Should not be overriden. It calls [scan_module_type_pre]
+    (** Scan of a module type. Should not be overridden. It calls [scan_module_type_pre]
       and if [scan_module_type_pre] returns [true], then it calls scan_module_type_elements.*)
     method scan_module_type mt =
       if self#scan_module_type_pre mt then self#scan_module_type_elements mt
index 65d602d3b9c86e3f54d55c3f388f88521b54aa51..848d1eeddbfd39bbb18c11854b072a985ddeb44a 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_search.ml 9638 2010-03-08 16:54:13Z guesdon $ *)
 
 (** Research of elements through modules. *)
 
@@ -633,4 +633,4 @@ let find_section mods regexp =
     Res_section (_,t) -> t
   | _ -> assert false
 
-(* eof $Id$ *)
+(* eof $Id: odoc_search.ml 9638 2010-03-08 16:54:13Z guesdon $ *)
index d7ace5831afcffcd74a44b43eadc84c5a3fc71c1..c50ac5c2166e947b3f61961e335e5939c36c3c2a 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_search.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Research of elements through modules. *)
 
index b0570f783251bb2eb71b965f4d83aa4f8c57a690..9358611dce9a29d88c7f836db374ecb5eb9b9fa2 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_see_lexer.mll 9547 2010-01-22 12:48:24Z doligez $ *)
 
 let print_DEBUG2 s = print_string s ; print_newline ()
 
index 34a71e84e9d5d1cfa9c5e7db547db6b7077914c4..ecaba149cab2b8298461b83cf3a953f1a23a50a6 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_sig.ml 10282 2010-04-19 16:59:55Z guesdon $ *)
 
 (** Analysis of interface files. *)
 
index 65ee128fc5310a8daa25489dd863cba2c6494c75..23d226d486f59678971e0caaed71100b63991a00 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_sig.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** The module for analysing a signature and source code and creating modules, classes, ..., elements.*)
 
index b20cd8b4bcc32b12bacbf6888bc2b8dd9601bea6..ad3d0a10ad8bd770d3f40dafc4e687aec05dd0fc 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_str.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** The functions to get a string from different kinds of elements (types, modules, ...). *)
 
@@ -274,4 +274,4 @@ let string_of_method m =
     None -> ""
   | Some i -> Odoc_misc.string_of_info i)
 
-(* eof $Id$ *)
+(* eof $Id: odoc_str.ml 9547 2010-01-22 12:48:24Z doligez $ *)
index 5d68c6d234a80e4a673c0498a48d2e3441805c68..1216b23722d7352ad4e0f9efb161b0fef1f9e219 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_str.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** The functions to get a string from different kinds of elements (types, modules, ...). *)
 
index a9868f6ef1e73a87e39097dd54cadbd9c8660b4d..ad477a0e870a13be4976e6f227867f6d638cc17a 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_test.ml 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 (** Custom generator to perform test on ocamldoc. *)
 
index 3a2e5db6619b8e87071d4ba3a5f104d199c64b0d..22cbf84ad9a185f52b82c0617bf20367a712f794 100644 (file)
@@ -8,7 +8,7 @@
 (*  under the terms of the Q Public License version 1.0.               *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_texi.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** Generation of Texinfo documentation. *)
 
@@ -218,7 +218,7 @@ struct
     String.concat "\n"
       [ "@ifinfo" ; s ; "@end ifinfo" ; "" ]
 
-  (** [install-info] informations *)
+  (** [install-info] information *)
   let dirsection sec =
     "@dircategory " ^ (escape sec)
 
@@ -465,6 +465,11 @@ class texi =
                    Raw " " ; Raw s ] @ t @ [ Newline ])
            see_l)
 
+    method text_of_before l =
+      List.flatten
+      (List.map
+        (fun x -> linebreak :: (to_text#text_of_before [x])) l)
+
     method text_of_params params_list =
         List.concat
           (List.map
@@ -530,6 +535,7 @@ class texi =
                           self#text_of_version_opt info.i_version )
                    else [] ;
                    self#text_of_sees_opt info.i_sees ;
+                   self#text_of_before info.i_before ;
                    if is info.i_since
                    then ( linebreak ::
                           self#text_of_since_opt info.i_since )
index b50a2dbd17f3bec0a3ae7113c47fa7c64d680ce8..baa9811918200fd55bc9a0f5605ebcd5fc455d63 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_text.ml 9638 2010-03-08 16:54:13Z guesdon $ *)
 
 exception Text_syntax of int * int * string (* line, char, string *)
 
index f4f8e911e464e1a9215f1977b5ca8c9d1c7dfdca..f359a2445662727a706ddac3af422468dfe1164d 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_text.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** A module with a function to parse strings to obtain a [Odoc_types.text] value. *)
 
index 9108c5e606b788a1eaed83f1a047be307a237158..c56013c01eed1e6fc8aba303797887817172e055 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_text_lexer.mll 9638 2010-03-08 16:54:13Z guesdon $ *)
 
 (** The lexer for string to build text structures. *)
 
index 478cfa074e9cbb91e80fc89ef60f43255f9ef82b..debb49c484fbf3317c83f47ed61020ac66e3fc02 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_text_parser.mly 9638 2010-03-08 16:54:13Z guesdon $ *)
 
 open Odoc_types
 
index a3db5bd9baf6bb1b0cac3621baaec535461cf8c4..4e44a9ecaf1d469c44e17877bf557383afcb5207 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_to_text.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** Text generation.
 
@@ -61,6 +61,17 @@ class virtual info =
                     Newline
                   ]
 
+    (** @return [text] value to represent the list of "before" information. *)
+    method text_of_before = function
+      [] -> []
+    | l ->
+        let f (v, text) =
+          (Bold [Raw (Printf.sprintf "%s %s " Odoc_messages.before v) ]) ::
+            text @
+            [Newline]
+        in
+        List.flatten (List.map f l)
+
     (** @return [text] value for the given list of raised exceptions.*)
     method text_of_raised_exceptions l =
       match l with
@@ -153,6 +164,7 @@ class virtual info =
             ) @
             (self#text_of_author_list info.i_authors) @
             (self#text_of_version_opt info.i_version) @
+            (self#text_of_before info.i_before) @
             (self#text_of_since_opt info.i_since) @
             (self#text_of_raised_exceptions info.i_raised_exceptions) @
             (self#text_of_return_opt info.i_return_value) @
index 9d19dc67d9e479f8482cb5e91d1a18b578037111..a3665c2a7a51453d8f9a9b1c582d51fc77fe9293 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_type.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Representation and manipulation of a type, but not class nor module type.*)
 
index db2778e0b28f00f863297fca19a0a16900fec474..306adbb997a762535c92d0ff890762230342e590 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_types.ml 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 type ref_kind =
     RK_module
@@ -68,6 +68,7 @@ type info = {
     i_version : string option;
     i_sees : see list;
     i_since : string option;
+    i_before : (string * text) list;
     i_deprecated : text option;
     i_params : param list;
     i_raised_exceptions : raised_exception list;
@@ -81,6 +82,7 @@ let dummy_info = {
   i_version = None ;
   i_sees = [] ;
   i_since = None ;
+  i_before = [] ;
   i_deprecated = None ;
   i_params = [] ;
   i_raised_exceptions = [] ;
index 7050d42e3c7fd767b604e23aa957f579bdeeaaf5..9dbef9a74426c9c05e9865ed2d5e2f3f590b99df 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_types.mli 10480 2010-05-31 11:52:13Z guesdon $ *)
 
 (** Types for the information collected in comments. *)
 
@@ -81,6 +81,7 @@ type info = {
     i_version : string option; (** The string in the \@version tag. *)
     i_sees : see list; (** The list of \@see tags. *)
     i_since : string option; (** The string in the \@since tag. *)
+    i_before : (string * text) list; (** the version number and text in \@before tag *)
     i_deprecated : text option; (** The of the \@deprecated tag. *)
     i_params : param list; (** The list of parameter descriptions. *)
     i_raised_exceptions : raised_exception list; (** The list of raised exceptions. *)
index a210f0851e10621ba8a0945b422e8ad5b046dd07..c88273d7e6612cb3cf6beae6c4b51f5e0a1de744 100644 (file)
@@ -9,7 +9,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: odoc_value.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Representation and manipulation of values, class attributes and class methods. *)
 
index 78b11e6128830b92942c099262fd5b0100a8d55b..5575869de5214019d93818e04c02463d18f401fe 100755 (executable)
@@ -11,7 +11,7 @@
 #(*                                                                     *)
 #(***********************************************************************)
 
-# $Id$
+# $Id: remove_DEBUG 10443 2010-05-20 09:44:25Z doligez $
 
 # usage: remove_DEBUG <file>
 # remove from <file> every line that contains the string "DEBUG",
index a71d705ccdd0a0b6e0d7dacfd73da7ee303f545c..385096286c4f7c11e8da02655cb3452622310e2e 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id$
+# $Id: runocamldoc 10443 2010-05-20 09:44:25Z doligez $
 
 case "$1" in
   true) shift
index c5db1981c152a55666d4d75ce25ee0daf87ec6d5..e769c161a8ec20269d5c59c16dc109dbaf4ea8d2 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 8489 2007-11-08 09:17:48Z frisch $
 
 # Common Makefile for otherlibs on the Unix ports
 
index 32aca21c06ded0e898c4d439d79aee92113f6071..32a2fdb8aec925c1079b930cf6c9cf8c49712055 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 9547 2010-01-22 12:48:24Z doligez $
 
 # Common Makefile for otherlibs on the Win32/MinGW ports
 
index 7e6780b3ea43e1dfc159d92c5abb39062d681e11..b235cc3de0db1f4913d18fddb85c6916e98d8eca 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.shared 8916 2008-07-15 15:31:32Z frisch $
 
 # Common Makefile for otherlibs
 
index 5026d55ef4918ce3917fb0c64c50fbff33d89f4c..92f29e8c68cd991af312a2dc0bb0b3f2c3091db4 100644 (file)
@@ -1,21 +1,21 @@
 bigarray_stubs.o: bigarray_stubs.c ../../byterun/alloc.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h bigarray.h \
- ../../byterun/config.h ../../byterun/mlvalues.h ../../byterun/custom.h \
- ../../byterun/fail.h ../../byterun/intext.h ../../byterun/io.h \
- ../../byterun/fix_code.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h bigarray.h \
 ../../byterun/config.h ../../byterun/mlvalues.h ../../byterun/custom.h \
 ../../byterun/fail.h ../../byterun/intext.h ../../byterun/io.h \
 ../../byterun/fix_code.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h
 mmap_unix.o: mmap_unix.c bigarray.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/mlvalues.h ../../byterun/config.h ../../byterun/misc.h \
- ../../byterun/custom.h ../../byterun/mlvalues.h ../../byterun/fail.h \
- ../../byterun/io.h ../../byterun/sys.h
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/mlvalues.h ../../byterun/config.h ../../byterun/misc.h \
 ../../byterun/custom.h ../../byterun/mlvalues.h ../../byterun/fail.h \
 ../../byterun/io.h ../../byterun/sys.h
 mmap_win32.o: mmap_win32.c bigarray.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/mlvalues.h ../../byterun/config.h ../../byterun/misc.h \
- ../../byterun/alloc.h ../../byterun/mlvalues.h ../../byterun/custom.h \
- ../../byterun/fail.h ../../byterun/sys.h ../unix/unixsupport.h
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/mlvalues.h ../../byterun/config.h ../../byterun/misc.h \
 ../../byterun/alloc.h ../../byterun/mlvalues.h ../../byterun/custom.h \
 ../../byterun/fail.h ../../byterun/sys.h ../unix/unixsupport.h
 bigarray.cmi:
 bigarray.cmo: bigarray.cmi
 bigarray.cmx: bigarray.cmi
index 38914ff35aad0304c68d40346feb006ed26486d0..81f5aef28f707d721c7d45342025668cdc69a8fe 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 8748 2008-01-04 09:52:27Z xleroy $
 
 LIBNAME=bigarray
 EXTRACFLAGS=-I../unix -DIN_OCAML_BIGARRAY -DCAML_NAME_SPACE
index 78f3fc6b676d6ba2e8d031de447bcd5566502504..94ef9ddd095f702cb402cc76782f228617e0d268 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 8754 2008-01-04 15:01:48Z xleroy $
 
 LIBNAME=bigarray
 EXTRACFLAGS=-I../win32unix -DIN_OCAML_BIGARRAY -DCAML_NAME_SPACE
index 407a5377677bdd2ecbb25541a41a67ac5d27095b..55a8eeccb20f5392d15e1a04914cc0c55813a7ed 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bigarray.h 9153 2008-12-03 18:09:09Z doligez $ */
 
 #ifndef CAML_BIGARRAY_H
 #define CAML_BIGARRAY_H
index 09ae8bd13a71b2e1b4038ce823baca89bf05cc78..201e69da10e8cc40da84021ddd03829246591c59 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bigarray.ml 8911 2008-07-14 09:09:53Z xleroy $ *)
 
 (* Module [Bigarray]: large, multi-dimensional, numerical arrays *)
 
index a49923ae212d6f60fa55258256a6b94ac219d992..0b08d87a0b04ee61ca0c12e0da0c8bde42d788f1 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: bigarray.mli 9153 2008-12-03 18:09:09Z doligez $ *)
 
 (** Large, multi-dimensional, numerical arrays.
 
index 9de2def19764c62fcf807e818bcdeb474361bea4..4b30a9a11c7ae3b5760a2481ecc80e9601ecc80a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bigarray_stubs.c 9153 2008-12-03 18:09:09Z doligez $ */
 
 #include <stddef.h>
 #include <stdarg.h>
index f75e635788d87ac8cb160b344b8e8d2645e0f5d9..7096389f87ddbcc116c2c8835789c46d493cd3f8 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: mmap_unix.c 10223 2010-04-01 07:36:49Z shinwell $ */
 
 #include <stddef.h>
 #include <string.h>
index efb44fe5f6af0515338bb82ef270ac48908c3741..b1d8a501afb6cb0731535128dc2e317db017c7ab 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: mmap_win32.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <stddef.h>
 #include <stdio.h>
index 099327d691401e98e7ed727fdc90400e2a82d6ab..38afdcf8ea67f86c0dfcdd2930e50894360169de 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 9270 2009-05-20 11:52:42Z doligez $
 
 # Makefile for the ndbm library
 
index 0d6cb362d642f9547686e03419ac15f828cff9c4..881a86ef23574f373fd3e9ecf800891ec62256e5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cldbm.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <string.h>
 #include <fcntl.h>
index f31d29934d7834df9cfb12770816abf5036830dc..85865adf17f6f4c2842593d580aff7c2b1f2920e 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: dbm.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 type t
 
index f9924427a794769694619eb00d0fd322354fb14d..3bc7b42376916a7485a58f7561a064b2dd500a6a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: dbm.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Interface to the NDBM database. *)
 
index 21771b598c7449fa0bb18c181ec57fae7014b62d..1e16dda552814c24378229f9a66312725e1b8945 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 10476 2010-05-28 15:09:22Z frisch $
 
 # Makefile for the dynamic link library
 
@@ -19,7 +19,7 @@ include ../../config/Makefile
 
 CAMLC=../../boot/ocamlrun ../../ocamlc
 CAMLOPT=../../ocamlcompopt.sh
-INCLUDES=-I ../../utils -I ../../typing -I ../../bytecomp
+INCLUDES=-I ../../utils -I ../../typing -I ../../bytecomp -I ../../asmcomp
 COMPFLAGS=-warn-error A -I ../../stdlib $(INCLUDES)
 
 OBJS=dynlinkaux.cmo dynlink.cmo
@@ -58,7 +58,7 @@ dynlinkaux.cmo: $(COMPILEROBJS)
 dynlinkaux.cmi: dynlinkaux.cmo
 
 dynlink.cmx: dynlink.cmi natdynlink.ml
-       cp natdynlink.ml dynlink.mlopt
+       cp natdynlink.ml  dynlink.mlopt
        $(CAMLOPT) -c $(COMPFLAGS) -impl dynlink.mlopt
        rm -f dynlink.mlopt
 
@@ -70,8 +70,10 @@ install:
        cp extract_crc $(LIBDIR)/extract_crc$(EXE)
 
 installopt:
-       cp $(NATOBJS) dynlink.cmxa dynlink.$(A) $(LIBDIR)
-       cd $(LIBDIR); $(RANLIB) dynlink.$(A)
+       if $(NATDYNLINK); then \
+         cp $(NATOBJS) dynlink.cmxa dynlink.$(A) $(LIBDIR) && \
+         cd $(LIBDIR) && $(RANLIB) dynlink.$(A); \
+       fi
 
 partialclean:
        rm -f extract_crc *.cm[ioax] *.cmxa
index 3d8b84b77a26492a705cb753742e61c0c0a9cd40..8dc4aee6eaf9c040ead39878e2a9ab392e465d2a 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 8477 2007-11-06 15:16:56Z frisch $
 
 # Makefile for the dynamic link library
 
index 376104c14f9ba9eb0d1fe79f8a765db8760ea045..1b62879c2d177f13e7e92d6f4359fa46388e4cff 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: dynlink.ml 10471 2010-05-28 10:16:31Z frisch $ *)
 
 (* Dynamic loading of .cmo files *)
 
-open Dynlinkaux
-open Dynlinkaux.Cmo_format
+open Dynlinkaux  (* REMOVE_ME for ../../debugger/dynlink.ml *)
+open Cmo_format
 
 type linking_error =
     Undefined_global of string
index 7cca68c5a09020fa892dffec9d61647cf516fd5a..852afdc04ea81666a17c4fe08106bb90075efa97 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: dynlink.mli 10471 2010-05-28 10:16:31Z frisch $ *)
 
 (** Dynamic loading of object files. *)
 
index e7d9139bed7ef7ca1fbdfcfd0ed0c6da902349ca..e2d82bc9c21ee1faab689e44bb3677a8aa5c3417 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: extract_crc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Print the digests of unit interfaces *)
 
index 184093a3995e95df7cd2e513ec96887f84b6f4c8..c2fb8e7206edcdacb904efdc2d9dad809ef8ed26 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: natdynlink.ml 10471 2010-05-28 10:16:31Z frisch $ *)
 
 (* Dynamic loading of .cmx files *)
 
@@ -40,22 +40,14 @@ type error =
 
 exception Error of error
 
-(* Copied from other places to avoid dependencies *)
+open Cmx_format
 
-type dynunit = {
-  name: string;
-  crc: Digest.t;
-  imports_cmi: (string * Digest.t) list;
-  imports_cmx: (string * Digest.t) list;
-  defines: string list;
-}
-
-type dynheader = {
-  magic: string;
-  units: dynunit list;
-}
+(* Copied from config.ml to avoid dependencies *)
+let cmxs_magic_number = "Caml2007D001"
 
-let dyn_magic_number = "Caml2007D001"
+(* Copied from compilenv.ml to avoid dependencies *)
+let cmx_not_found_crc =
+  "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 
 let dll_filename fname =
   if Filename.is_implicit fname then Filename.concat (Sys.getcwd ()) fname
@@ -70,12 +62,10 @@ let read_file filename priv =
   then raise (Error (Cannot_open_dll (Obj.magic res)));
 
   let header : dynheader = Marshal.from_string data 0 in
-  if header.magic <> dyn_magic_number
+  if header.dynu_magic <> cmxs_magic_number
   then raise(Error(Not_a_bytecode_file dll));
-  (dll, handle, header.units)
+  (dll, handle, header.dynu_units)
 
-let cmx_not_found_crc =
-  "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 
 
 (* Management of interface and implementation CRCs *)
@@ -127,7 +117,7 @@ let init () =
 let add_check_ifaces allow_ext filename ui ifaces =
   List.fold_left
     (fun ifaces (name, crc) ->
-       if name = ui.name
+       if name = ui.dynu_name
        then StrMap.add name (crc,filename) ifaces
        else
          try
@@ -138,7 +128,7 @@ let add_check_ifaces allow_ext filename ui ifaces =
          with Not_found ->
            if allow_ext then StrMap.add name (crc,filename) ifaces
            else raise (Error(Unavailable_unit name))
-    ) ifaces ui.imports_cmi
+    ) ifaces ui.dynu_imports_cmi
 
 let check_implems filename ui implems =
   List.iter
@@ -168,7 +158,7 @@ let check_implems filename ui implems =
            | Loaded -> ()
        with Not_found ->
          raise (Error(Unavailable_unit name))
-    ) ui.imports_cmx
+    ) ui.dynu_imports_cmx
 
 let loadunits filename handle units state =
   let new_ifaces =
@@ -179,10 +169,10 @@ let loadunits filename handle units state =
     List.fold_left
       (fun accu ui ->
          check_implems filename ui accu;
-         StrMap.add ui.name (ui.crc,filename,Loaded) accu)
+         StrMap.add ui.dynu_name (ui.dynu_crc,filename,Loaded) accu)
       state.implems units in
 
-  let defines = List.flatten (List.map (fun ui -> ui.defines) units) in
+  let defines = List.flatten (List.map (fun ui -> ui.dynu_defines) units) in
 
   ndl_run handle "_shared_startup";
   List.iter (ndl_run handle) defines;
index e71de3418ecab2c8eef3c4c4c1fe2781a6597443..54df0691ffb2d08f0f3290a30453b935c502b505 100644 (file)
-color.o: color.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h
-draw.o: draw.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h
-dump_img.o: dump_img.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h image.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h
-events.o: events.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/signals.h
-fill.o: fill.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h
-image.o: image.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h image.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/custom.h
-make_img.o: make_img.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h image.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h
-open.o: open.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/callback.h ../../byterun/fail.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h
-point_col.o: point_col.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h
-sound.o: sound.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h
-subwindow.o: subwindow.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h
-text.o: text.c libgraph.h ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h
+color.o: color.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h \
+draw.o: draw.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
+  ../../byterun/mlvalues.h
+dump_img.o: dump_img.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h image.h \
+  ../../byterun/alloc.h ../../byterun/mlvalues.h ../../byterun/memory.h \
+  ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
+  ../../byterun/minor_gc.h
+events.o: events.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
+  ../../byterun/mlvalues.h ../../byterun/signals.h
+fill.o: fill.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
+  ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
+  ../../byterun/freelist.h ../../byterun/minor_gc.h
+image.o: image.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h image.h \
+  ../../byterun/alloc.h ../../byterun/mlvalues.h ../../byterun/custom.h
+make_img.o: make_img.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h image.h \
+  ../../byterun/memory.h ../../byterun/gc.h ../../byterun/mlvalues.h \
+  ../../byterun/major_gc.h ../../byterun/freelist.h \
+  ../../byterun/minor_gc.h
+open.o: open.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
+  ../../byterun/mlvalues.h ../../byterun/callback.h ../../byterun/fail.h \
+  ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
+  ../../byterun/freelist.h ../../byterun/minor_gc.h
+point_col.o: point_col.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h
+sound.o: sound.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h
+subwindow.o: subwindow.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h
+text.o: text.c libgraph.h \
+  \
+  \
+  \
+  ../../byterun/mlvalues.h ../../byterun/compatibility.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
+  ../../byterun/mlvalues.h
 graphics.cmi:
 graphicsX11.cmi:
 graphics.cmo: graphics.cmi
index 2be984465614dc1b955f0df7e5217af88f621ba0..fac250187ed14c0c1a4529d59e01f9c0520d8234 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 8490 2007-11-08 09:23:06Z frisch $
 
 # Makefile for the portable graphics library
 
index 0dc29670716acb3f86b33bf4b668a682e96db878..13dcf1d07c4ae6d1e317dc20eda0cf1236412d25 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: color.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include "libgraph.h"
 #include <X11/Xatom.h>
index 35a4ae175577af34306a7b6508c1682997fb9983..c5c5578b04c24ca2ec035f535500b50ea4ea4b65 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: draw.c 6351 2004-05-30 14:11:41Z xleroy $ */
 
 #include "libgraph.h"
 #include <alloc.h>
index 8c82c21bfb4cb3d6bd81affee9d349ef6ad218eb..484901c8ce7ac7bc400244c838aca5096bf0bc35 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dump_img.c 6171 2004-03-24 15:02:06Z starynke $ */
 
 #include "libgraph.h"
 #include "image.h"
index d9563a3970d675fd3a768cfe453e45f224c0b64b..cb3aa94a0812ddaa817ce9f0e41206bbbd925316 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: events.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <signal.h>
 #include "libgraph.h"
index 0430c14a6310a84ebf14db3f732633dbf7c4e7d1..67777057ee57d32a5e3f957c736edd1f1be179d8 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fill.c 6351 2004-05-30 14:11:41Z xleroy $ */
 
 #include "libgraph.h"
 #include <memory.h>
index 96a2471612b47825c37c13820982b82bbaf4328f..dcb8d72c4dffd5e972f9f3c69ae9bde5f738bd61 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: graphics.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 exception Graphic_failure of string
 
index 23d61a39aaa3a12956dce042a81f2fa016b811d8..e1387e488aa4a7061c2e33c75b82eade276ca04e 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: graphics.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Machine-independent graphics primitives. *)
 
index 85f5a436051008df3d0f69c75d92c19dd881995b..7da7a324421068c7100ecdd9c93ac1ecbce9d032 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: graphicsX11.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Module [GraphicsX11]: additional graphics primitives for the X Windows system *)
 
index 1118253711e495f0672c98884f89a810877d4bcc..2cb281bd9a167fb3921870bf6e174aa1d21b0622 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: graphicsX11.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Additional graphics primitives for the X Windows system. *)
 
index 501398b358eb0b27522f2f2129ba19bb37ed91b3..7bace1eecb6818194024cdd6f4d627bbce335077 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: image.c 6171 2004-03-24 15:02:06Z starynke $ */
 
 #include "libgraph.h"
 #include "image.h"
@@ -104,4 +104,4 @@ value caml_gr_draw_image(value im, value vx, value vy)
   return Val_unit;
 }
 
-/* eof $Id$ */
+/* eof $Id: image.c 6171 2004-03-24 15:02:06Z starynke $ */
index 539cf9f8ca957262f9ec608d22f4e237bd7729fd..a373a2b6032905c52ddf29387171f4ed737e2c18 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: image.h 6171 2004-03-24 15:02:06Z starynke $ */
 
 struct grimage {
   int width, height;            /* Dimensions of the image */
index d2df1c1ae08d16b3d4dda9c989de838318bc573a..58244d495fef2940cc34b250be221f7496db23aa 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: libgraph.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <stdio.h>
 #include <X11/Xlib.h>
index 325e6698dd5270f367ba2b24fadd2e264b30a72e..7a7f531f61ec5662564b09a85968abd0da2f6a4b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: make_img.c 6171 2004-03-24 15:02:06Z starynke $ */
 
 #include "libgraph.h"
 #include "image.h"
index 82a4c0fb3bc738b387f1e1fda29f6fef97a23e35..5039aa597d7a6dff52810234c25a7ba218d24ac5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: open.c 7019 2005-08-13 20:59:37Z doligez $ */
 
 #include <string.h>
 #include <fcntl.h>
index 473dae7d08489777215612b940000bb979d5be0a..7dd575f898c7c9c4156ac9feb38293fdb129b4ba 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: point_col.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include "libgraph.h"
 
index dc75b7ed034ab52535ec6cfd78efa0751fef0172..1d9dc67a6860c4921c2dea86024c6a557c3b26f7 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sound.c 6171 2004-03-24 15:02:06Z starynke $ */
 
 #include "libgraph.h"
 
index 642e28c40101925cc22bd89c01e929d03dd4346e..a7c2bae9ae66e80d95c0948891c8756408574eeb 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: subwindow.c 6171 2004-03-24 15:02:06Z starynke $ */
 
 #include "libgraph.h"
 
index f4d980aed5f752ac06b4da27441dd1c7be39fd08..af63fe6417e0377389daa365329d21cc68953b6b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: text.c 6171 2004-03-24 15:02:06Z starynke $ */
 
 #include "libgraph.h"
 #include <alloc.h>
index 765fabafc9da7c63b5ebcd21b7f992c4c647de56..f1fd56ed95cc76f31ab9d5ff575e9d7e30ce8b58 100644 (file)
@@ -4,7 +4,7 @@ include ../../config/Makefile
 
 
 
-SUBDIRS=compiler support lib labltk camltk jpf frx tkanim examples_labltk examples_camltk browser
+SUBDIRS=compiler support lib labltk camltk jpf frx examples_labltk examples_camltk browser
 
 all:
        cd support ; $(MAKEREC)
@@ -16,7 +16,6 @@ all:
        cd lib ; $(MAKEREC)
        cd jpf ; $(MAKEREC)
        cd frx ; $(MAKEREC)
-       cd tkanim ; $(MAKEREC)
        cd browser ; $(MAKEREC)
 
 allopt:
@@ -28,7 +27,6 @@ allopt:
        cd lib ; $(MAKEREC) opt
        cd jpf ; $(MAKEREC) opt
        cd frx ; $(MAKEREC) opt
-       cd tkanim ; $(MAKEREC) opt
 
 .PHONY: examples_labltk examples_camltk
 
@@ -48,7 +46,6 @@ install:
        cd compiler ; $(MAKEREC) install
        cd jpf ; $(MAKEREC) install
        cd frx ; $(MAKEREC) install
-       cd tkanim ; $(MAKEREC) install
        cd browser ; $(MAKEREC) install
 
 installopt:
@@ -58,7 +55,6 @@ installopt:
        cd lib ; $(MAKEREC) installopt
        cd jpf ; $(MAKEREC) installopt
        cd frx ; $(MAKEREC) installopt
-       cd tkanim ; $(MAKEREC) installopt
 
 partialclean clean:
        for d in $(SUBDIRS); do $(MAKEREC) -C $$d clean; done
index 81a153b4174485a88477ee51b495a01553edb4fd..ae91c6054a3654a76ae9a5baa3b50a8035658ad8 100644 (file)
@@ -1,3 +1,5 @@
+# $Id: Makefile 10425 2010-05-19 11:33:23Z doligez $
+
 OTHERSLIB=-I $(OTHERS)/unix -I $(OTHERS)/str
 
 include Makefile.shared
index 405f47e74672a3b35592f26be330100c836540a5..95acd93b98fab9f17f468af3fea46d3460d21d3f 100644 (file)
@@ -1,4 +1,4 @@
-# $Id$
+# $Id: Makefile.nt 9153 2008-12-03 18:09:09Z doligez $
 
 OTHERSLIB=-I $(OTHERS)/win32unix -I $(OTHERS)/str -I $(OTHERS)/systhreads
 
index 484d3d8fa842b2b245975ae562f5fdced217451f..b80967086fbef4d47d49a5bf8d56cd6e30969ddb 100644 (file)
@@ -30,10 +30,11 @@ JG =        jg_tk.cmo       jg_config.cmo   jg_bind.cmo      jg_completion.cmo \
 all: ocamlbrowser$(EXE)
 
 ocamlbrowser$(EXE): $(TOPDIR)/toplevel/toplevellib.cma jglib.cma $(OBJ) \
-                       ../support/lib$(LIBNAME).$(A)
+                       ../support/lib$(LIBNAME).$(A) $(XTRAOBJ)
        $(CAMLC) -o ocamlbrowser$(EXE) $(INCLUDES) \
                $(TOPDIR)/toplevel/toplevellib.cma \
-               unix.cma str.cma $(OCAMLBR) $(LIBNAME).cma jglib.cma $(OBJ)
+               unix.cma str.cma $(XTRALIBS) $(LIBNAME).cma jglib.cma \
+               $(OBJ) $(XTRAOBJ)
 
 ocamlbrowser.cma: jglib.cma $(OBJ)
        $(CAMLC) -a -o $@ -linkall jglib.cma $(OBJ)
index 2272419236de4a77f9878120458aeceb6f8d539c..1f6df5827346cb4e9dc0d28f0515670ef438a291 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: dummyUnix.mli 6041 2003-12-29 22:15:02Z doligez $ *)
 
 module Mutex : sig
   type t
index a4b75ee37bb51ee79ff199790e0353f74fa4e514..d25f81d4676662429d0f5e4ae6b2efa78691dc5b 100644 (file)
@@ -12,4 +12,4 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: dummyWin.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
index 617cdfa85567df3ed839bfe7b4634e0529f07626..f5d45030fd082fcc962afdc7d52b064435a08152 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: editor.ml 7307 2006-01-04 16:55:50Z doligez $ *)
 
 open StdLabels
 open Tk
index 665ee813f399ebf130f8acb9b5661fb9a322f270..c284bb1056fcdab6d01c76a1178b07288709b78d 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: editor.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open Widget
 
index 22052b4237f3328a125082d4a25123f8ca609cbc..646dbf128082fe8e58cc2f6aa617adf7aa5713f0 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: fileselect.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* file selection box *)
 
index b723c626d522d9429a2af1c644a03dd7235a4229..c70a58059168b8e781dc030c3a88cbb4cf0cd901 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: fileselect.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 val f :
   title:string ->
index 2e3ec9870b82570aa14f39a122ac4d25dc868d4f..636673ece0124d173b7ed056673f6324b2cde157 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_bind.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Tk
 
index e09c2ba460ffe0ae2aa7207f3d0ffddedfd087e7..a3a1907d8ff598ebe55c2aaeb713984925ccaefe 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_bind.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open Widget
 
index 3675f4bfa81232acb14185d0916d95e4e8a35128..73338566163db97d71cf39ccf7dc9d48d4d8cb87 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_box.ml 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 open Tk
 
index 11abd68aba93f4ee8df43806341da5cd532f9051..0adff9a60001585205dd5e3354e520afbfddd802 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_button.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open Tk
 
index c93b099b3abe5876e141e9d481cd4bde76c9bbd6..460c1e8109a967648adfaf865a80ae1ec7883efb 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_completion.ml 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 let lt_string ?(nocase=false) s1 s2 =
   if nocase then String.lowercase s1 < String.lowercase s2 else s1 < s2
index 69c7a134c27b055b7e4515a95114ae8bf450fa34..2cffc8b8f36c2570896acf2a62826d9395556f9c 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_completion.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 val lt_string : ?nocase:bool -> string -> string -> bool
 
index bce0e50e7604f417d0ac02dcdead019e6436d7b7..4d456189058cebe57dc29a1110f14551d739cb6d 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_config.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open StdLabels
 open Jg_tk
index 511e2b3a6781f50b8e7add3e25b855a606e08526..3e58349076750281b868f54fb4916dbf70fe50a7 100644 (file)
@@ -12,6 +12,6 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_config.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 val init: unit -> unit
index c09a273e822ab3e41a5152a60b8c52025b26e7cf..58fa7f2e85a715889bb3991378cca221d6217b12 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_entry.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open Tk
 
index e238929a0893a2220445b1d4dbc55525110e55b0..bb357668a2cd2ad97178d54f45c2510fa5120351 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_memo.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 type ('a, 'b) assoc_list =
     Nil
index 5491dee32f1b5168c95a139f5e9c232fb36b7fdf..1b9396ee4727347e651da7458fc264dc1d331ea1 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_memo.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 val fast : f:('a -> 'b) -> 'a -> 'b
 (* "fast" memoizer: uses a List.assq like function      *)
index b399d10d8709a7c7328d095f164ed61c702539cb..b0ef967c613c907f3a07069fe467bdd52e81415d 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_menu.ml 7307 2006-01-04 16:55:50Z doligez $ *)
 
 open Tk
 
index 3c18f193c4b70edc3b4faf239ce3deab7d3a797f..65d7882e02f9051efec6422b1c35c65269bbaebf 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_message.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open Tk
index 0a83a594ff88a0a720cca2e65489177800589623..6cf581de4c212c330e5ee6800cf93a02bad7ac13 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_message.mli 5045 2002-07-26 00:04:05Z garrigue $ *)
 
 open Widget
 
index febec8e5de510d580dc7f55d54b8b662373d5e30..0250ad4043ae94f59263a5eae1a8edb7be30d0e9 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_multibox.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 
index 6dfe7d8fb3fa7409bfc0644ef0e5f0028f28968e..e122edcf0e61d077aaf279fcfd93bc8671d50da3 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_multibox.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 class c :
   cols:int -> texts:string list ->
index 067b9dac551bb76afa06c29ba4ceaa3794cb06a1..84dae4d817706f58e0c777912335ace3e5e33bc1 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_text.ml 5094 2002-08-09 10:34:44Z garrigue $ *)
 
 open StdLabels
 open Tk
index e8646dd9d1883461abc6d9db50bbdd3fa7983847..a498eed60db6355c0614f65c95ba1126f7d755f1 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_text.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open Widget
 
index 7fc77f096aa1ee6ef88fef80d9154a674170edad..6441caeb33f78ad08972bac4754e667a8e2f64e2 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_tk.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open Tk
 
index 64b6f54d7621addcdae46a08bec0eca331e79631..a408d68f6079d3831fa841fdca14f5aa4d553e36 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: jg_toplevel.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Tk
 
index 72f1957ec09aaf237631a0c358297a0405d62731..4683b2225c37a110075d0b67a447d6bd0d5eb84c 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: lexical.ml 9319 2009-07-20 11:51:50Z doligez $ *)
 
 open StdLabels
 open Tk
index 3be04d3246c8b2df34a26ba3e81c16703d5cbd40..e2a02d2dc5ea53121abc3aebbd13ebb42df088c3 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: lexical.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open Widget
 
index 87b88f496a19674d3c278b7f4a45bf5498e2eed3..2dd4bb1a42e3d26391860503030a12a77f7cf51f 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: list2.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open StdLabels
 
index e55ce989a54c7622b13379debb95011a70c368d6..14c036465e82aefa334d112d955ff618cfe886b2 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: main.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open StdLabels
 module Unix = UnixLabels
@@ -53,6 +53,11 @@ let print_version () =
   exit 0;
 ;;
 
+let print_version_num () =
+  printf "%s\n" Sys.ocaml_version;
+  exit 0;
+;;
+
 let usage ~spec errmsg =
   let b = Buffer.create 1024 in
   bprintf b "%s\n" errmsg;
@@ -80,22 +85,9 @@ let _ =
       " Allow arbitrary recursive types";
       "-version", Arg.Unit print_version,
         " Print version and exit";
+      "-vnum", Arg.Unit print_version_num, " Print version number and exit";
       "-w", Arg.String (fun s -> Shell.warnings := s),
-      "<flags>  Enable or disable warnings according to <flags>:\n\
-        \032    A/a enable/disable all warnings\n\
-        \032    C/c enable/disable suspicious comment\n\
-        \032    D/d enable/disable deprecated features\n\
-        \032    E/e enable/disable fragile match\n\
-        \032    F/f enable/disable partially applied function\n\
-        \032    L/l enable/disable labels omitted in application\n\
-        \032    M/m enable/disable overriden method\n\
-        \032    P/p enable/disable partial match\n\
-        \032    S/s enable/disable non-unit statement\n\
-        \032    U/u enable/disable unused match case\n\
-        \032    V/v enable/disable hidden instance variable\n\
-        \032    X/x enable/disable all other warnings\n\
-        \032    default setting is \"Ale\"\n\
-        \032    (all warnings but labels and fragile match enabled)"; ]
+      "<flags>  Enable or disable warnings according to <flags>"; ]
   and errmsg = "Command line: ocamlbrowser <options>" in
   if not (check ~spec Sys.argv) then fatal_error (usage ~spec errmsg);
   Arg.parse spec
index 6db120adccabb5ed53af1895890a9860cac4d93d..d7eb8856994ad82fa74588cf39093127726baf4b 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: mytypes.mli 8232 2007-05-16 08:21:41Z doligez $ *)
 
 open Widget
 
index 2848143904d1db5b5a3a16d4d09107f9e70988f2..083139f301343bf1d64e08e1c902bbafe1bf448b 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: searchid.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open Location
index 980c141d086fc2487c43c5e0df74025b8d09a9d5..07fefec8e3bd08b3447d685bcc0b57cc60bce16a 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: searchid.mli 5044 2002-07-25 22:51:47Z garrigue $ *)
 
 val start_env : Env.t ref
 val module_list : string list ref
index 8cae9959302aa21d08fa9922ff363081c6738c02..1cf7745c2cb4cd777893e9fd62ea40e6d2ccfa5e 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: searchpos.ml 10227 2010-04-02 12:53:33Z xleroy $ *)
 
 open StdLabels
 open Support
index b2f89cd81c2528564496edda93ae8fbd109e8b8e..b22356e3c97ca2f5aa20d528d55b7f40562702fa 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: searchpos.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Widget
 
index 1a41b573b58571afe8348c33240b9a9e9adf4b97..20fb42cb62f934f640026bed05e0ec98d9fefe7c 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: setpath.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open Tk
index 22bf5dc58303374beb9080f5dfe3a207c9b38a44..e7b8f5a6c3a5f696450616a8e2f9d71fb2d3d59c 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: setpath.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Widget
 
index be93ef5fda04dadb2f9c80d8e63495450ba1304e..5b009b3f30274956e0a1dc6bb094353f9e7fd0af 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: shell.ml 7327 2006-01-18 13:26:03Z garrigue $ *)
 
 open StdLabels
 module Unix = UnixLabels
index ac94f43d7c213e4a8e96ab20eafba470221686a1..a2c4c2504e31661a107fff814b4ae297ac091b05 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: shell.mli 5044 2002-07-25 22:51:47Z garrigue $ *)
 
 class ['a] history :
   unit ->
index d5347ef53bd4b44128db057ad2e7766eeef6abf2..fff460c9c097cd5e40a6b886e27faf16ce50c3b4 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: typecheck.ml 9319 2009-07-20 11:51:50Z doligez $ *)
 
 open StdLabels
 open Tk
index d61fce62e34aac82727bf6c22ae8e324863c8076..d75691894a01f9ba30de488bf6d06e046675956b 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: typecheck.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 open Widget
 open Mytypes
index 666f866f0254408c25f2d10cecaf1798b998b419..0328ac583bebea54310dd866df7ca47cda4ff2d1 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: useunix.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open UnixLabels
index 2850c0d2dad69a2772758b82230c98157734888e..c0059b807124fdfb4767d72e69412ae605011ca2 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: useunix.mli 5094 2002-08-09 10:34:44Z garrigue $ *)
 
 (* Unix utilities *)
 
index fef3cbe1045d70c4d962e65da24246a3b496be63..3ba4b2203ef054d3ab06805cafa86208e485848a 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: viewer.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open Tk
index d8bec671df78bf64cac1269bb0887b46912073be..fdab185b2364a27398014d01e005c67b97187910 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: viewer.mli 4990 2002-07-11 13:49:51Z garrigue $ *)
 
 (* Module viewer *)
 open Widget
index dd9146fcceb9c111790779ef54d52bf0a2e267ca..ec5800678278fa0018e163094ee178b2026563f2 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: winmain.c 9153 2008-12-03 18:09:09Z doligez $ */
 
 #include <windows.h>
 #include <mlvalues.h>
index c006f51d5cf88a0267542836ed41b721085180f2..3098bdf7e3aa8d9f2e6cca5403b004e73b4cdf5b 100644 (file)
@@ -14,6 +14,6 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id$ *)
+(* $Id: LICENSE 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 All the files in this directory are subject to the above copyright notice.
\ No newline at end of file
index fd74bc173db51311c6d56c75fd09287f5f2f42e8..8055bf9d7a8c93295dc958cf87162fe6639c568b 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: compile.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open Tables
index 59608b381506760294ea6e3b4275fb65827f800f..3b375275c14f2899fd0a2b378aaf8cf55f2836b7 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: intf.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 
index f51f0c01f310d057c991d6748d9ee0bf9d3ea29b..4b43fd61052f4b391d61d27bc26df916224de4ee 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer.mll 9547 2010-01-22 12:48:24Z doligez $ *)
 
 {
 open StdLabels
index d8c72a312daea8c18b440270e369986e56900877..f4946a6f823b86df29faf5085f21fdffa9dbf750 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: maincompile.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open Support
index 15ced65f8d0d49d90730ee2b62a47b692d016b70..203e13eae34894b2ffd8bf472490ce1e2d953ae4 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: parser.mly 9547 2010-01-22 12:48:24Z doligez $ */
 
 %{
 
index 0663dfaaddb8a223f40e6f382c5af3c06fbdd50a..0293bf554ef544c7de8aeeab20c0cc1a70e474b1 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: tables.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open Support
index 6496eaae2293174ed0ef217ab3cb077fd2e74e5b..663823b793b0a7d17e310d73f25fdb5692da1f1c 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: tsort.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 
index ec0f20de608a2dadaecffccc6b9530c5ff4376d9..88eaccdaf940409d4cbc020389248a306a19e493 100644 (file)
@@ -1,4 +1,4 @@
-$Id$
+$Id: README 4745 2002-04-26 12:16:26Z furuse $
 
 Some examples for LablTk.
 They are written in classic mode, except testris.ml which uses label
index 088bf192f9f8f4e8862e7beabf6a997ea2a7edca..b334f67b64a00e50bfb8614f1f7efdc5ec14c851 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: calc.ml 5175 2002-10-11 19:01:19Z doligez $ *)
 
 (* A simple calculator demonstrating OO programming with O'Labl
    and LablTk.
index 57a59b825b8dfaeed15134779ab9fabbdb159900..9e5227b9a08d6300233e81d38deb4c5eda788397 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: clock.ml 4745 2002-04-26 12:16:26Z furuse $ *)
 
 (* Clock/V, a simple clock.
    Reverts every time you push the right button.
index bd36f3f3826ee00ca767147a879f66d5ba10f3e3..402be3ba5fe1584a9a42df1c904f7a792da77b8b 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: demo.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Some CamlTk4 Demonstration by JPF *)
 
index 81f6aa4a2a5742d8a26940f31b6724c7d124617e..5d8e9d41e70cd8d8ee7e82c42ff4b05d2e312cc8 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: eyes.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Tk
 
index 3f39d546d2cb01e9de04c39f88d35c337b49c505..a14b6c226c4d878f28bc44efecce89241a10d57e 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: hello.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* LablTk4 Demonstration by JPF *)
 
index 28099351810313c387815c0f7bba952a055f4d67..6822a9f63d49444729d933bc2144db4eff5e2d56 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: taquin.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Tk;;
 
index 4f401e59240e98b82d0cd33ef49f25f9ed4edfdd..8c7575d4a7ae126d777564fa9af63b1374c4dcd9 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: tetris.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* A Tetris game for LablTk *)
 (* written by Jun P. Furuse *)
index ec842218625f6b79947e24e2eac5886a91341776..5f76ae143b0626cae40c7fcd57f3f0aa0d357539 100644 (file)
@@ -15,7 +15,7 @@
 (***********************************************************************)
 open Camltk
 
-let version = "$Id$"
+let version = "$Id: frx_entry.ml 9547 2010-01-22 12:48:24Z doligez $"
 
 (*
  * Tk 4.0 has emacs bindings for entry widgets
index de136867032c72068c75d4f45766843f80a6a910..9683e6df7a34725e69743335da9ac5cb33703a77 100644 (file)
@@ -15,7 +15,7 @@
 (***********************************************************************)
 open Camltk
 
-let version = "$Id$"
+let version = "$Id: frx_fileinput.ml 9547 2010-01-22 12:48:24Z doligez $"
 
 (*
  * Simple spooling for fileinput callbacks
index 3b739a6507cea2d028b982310d9de5d6c134a00c..02509aa2713ba73a0567445da4fe5c1d97679054 100644 (file)
@@ -16,7 +16,7 @@
 open Camltk
 open Widget
 
-let version = "$Id$"
+let version = "$Id: frx_font.ml 9547 2010-01-22 12:48:24Z doligez $"
 
 (*
  * Finding fonts. Inspired by code in Ical by Sanjay Ghemawat.
index c4d51f7b595aca1c8bf5c1dda35a268a5948889d..b9447616d84be280cd903ca2c66f1d4e7ffd63ae 100644 (file)
@@ -18,7 +18,7 @@ open Camltk
 open Widget
 
 
-let version = "$Id$"
+let version = "$Id: frx_lbutton.ml 4745 2002-04-26 12:16:26Z furuse $"
 
 (*
  * Simulate a button with a bitmap AND a label
index 17d6a3f9ae460cb7dbd7a815782a54804ec7a153..62ee8ecdb81102a1a26df5c81eccdc54caab73b6 100644 (file)
@@ -15,7 +15,7 @@
 (***********************************************************************)
 open Camltk
 
-let version = "$Id$"
+let version = "$Id: frx_listbox.ml 9547 2010-01-22 12:48:24Z doligez $"
 
 (*
  * Link a scrollbar and a listbox
index ab7308fa36a6f95421a30c53b5753e7c6c37d4a0..edbd9083525c76add3eba6f3d3576544db2561b9 100644 (file)
@@ -20,7 +20,7 @@ open Camltk
  * jargon).
 *)
 
-let version = "$Id$"
+let version = "$Id: frx_req.ml 9547 2010-01-22 12:48:24Z doligez $"
 
 (*
  * Simple requester
index 18d9961ffc4ccd1c267ca5e8f57b1e0f178ba5b1..c82030086a88be577cedc5109e34dbaad08743b5 100644 (file)
@@ -15,7 +15,7 @@
 (***********************************************************************)
 open Camltk
 
-let version = "$Id$"
+let version = "$Id: frx_text.ml 9547 2010-01-22 12:48:24Z doligez $"
 
 (*
  * convert an integer to an absolute index
index a81c768f015ad90f704835fc23be025c4f21d884..d1403bb6946b99390afa2c592c6640876e7c400f 100644 (file)
@@ -16,7 +16,7 @@
 open Camltk
 open Widget
 
-let version = "$Id$"
+let version = "$Id: frx_widget.ml 9547 2010-01-22 12:48:24Z doligez $"
 (* Make a window (toplevel widget) resizeable *)
 let resizeable t =
   update_idletasks(); (* wait until layout is computed *)
index 739a8d9ece84487d7af2fdf12df1e0890b6a7ccc..19a8447126de32aea1d1e06c03cc3e7f04402527 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: balloon.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 
index 633796ce6b8e77c9de57230013adb4082902e7bc..42a1d107e1f5e60e8541fd35d83821566a3d1dc2 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: balloon.mli 4745 2002-04-26 12:16:26Z furuse $ *)
 
 (* easy balloon help facility *)
 open Widget
index 60e3aded38c1c21ab15456c72462638153f6f0cf..1359f367ceeb1d6808832d2d55eed29fa8b7914f 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: balloontest.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Tk
 open Widget
index 3d42ac2dc1e1927300d5bed9b7c986252e687e80..43b1ebc3a57e4cda93c415e7c690c52a8747ea94 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: fileselect.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* file selection box *)
 
index 4412a41875f4a9a0a91ba24bf50690a0e42bf2dd..0e87dedd458c8142acaea13af2bac0f7782e97ff 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: fileselect.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* This file selecter works only under the OS with the full unix support.
    For the portability, Tk.getOpenFile and Tk.getSaveFile are recommended. *)
index 91f477fcf2fa4ab4de741234b3224d1c513356d9..b82bcddfafc8b570d8407d5d59635f337328da1b 100644 (file)
@@ -57,14 +57,23 @@ $(LIBNAME): Makefile $(TOPDIR)/config/Makefile
        @echo "#!/bin/sh" > $@
        @echo 'exec $(INSTALLDIR)/$(LIBNAME)top$(EXE) -I $(INSTALLDIR) $$*' >> $@
 
+install-script: $(LIBNAME)
+       cp $(LIBNAME) $(BINDIR)
+       chmod 755 $(BINDIR)/$(LIBNAME)
+
+install-batch:
+       cp labltk.bat $(BINDIR)
+
 install:
        if test -d $(INSTALLDIR); then : ; else mkdir $(INSTALLDIR); fi
        cp $(LIBNAME).cma $(LIBNAME)top$(EXE) $(INSTALLDIR)
        chmod 644 $(INSTALLDIR)/$(LIBNAME).cma
        chmod 755 $(INSTALLDIR)/$(LIBNAME)top$(EXE)
        @if test -d $(BINDIR); then : ; else mkdir $(BINDIR); fi
-       cp $(LIBNAME) $(BINDIR)
-       chmod 755 $(BINDIR)/$(LIBNAME)
+       @case x$(TOOLCHAIN) in \
+         xmingw|xmsvc) $(MAKE) install-batch ;; \
+         *)            $(MAKE) install-script ;; \
+       esac
 
 installopt:
        @if test -d $(INSTALLDIR); then : ; else mkdir $(INSTALLDIR); fi
diff --git a/otherlibs/labltk/lib/labltk.bat b/otherlibs/labltk/lib/labltk.bat
new file mode 100755 (executable)
index 0000000..f760e80
--- /dev/null
@@ -0,0 +1 @@
+@ocaml -I +labltk labltk.cma %1 %2 %3 %4 %5 %6 %7 %8 %9
\ No newline at end of file
index 5be206faa89674bcff234c3430c494c28ee74bde..965bb8e0e83fccde2b878a95567b1aae702cf4bd 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                       */
 /*************************************************************************/
 
-/* $Id$ */
+/* $Id: camltk.h 10230 2010-04-03 06:43:51Z furuse $ */
 
 #if defined(_WIN32) && defined(CAML_DLL) && defined(IN_CAMLTKSUPPORT)
 #define CAMLTKextern CAMLexport
index c9bcc80dce1470df26fcfe9ac9fd4fe768d44a91..2f5fe100505fbbdd3d67426d8fe536204ddfd655 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkCaml.c 9036 2008-09-26 07:35:24Z garrigue $ */
 
 #include <tcl.h>
 #include <tk.h>
index 3d9a4c2dfe9d057d851b53f7c7073e611dc582c9..8885b957862c5fe10f2205fb34d3d146a0c57e9c 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                       */
 /*************************************************************************/
 
-/* $Id$ */
+/* $Id: cltkDMain.c 10230 2010-04-03 06:43:51Z furuse $ */
 
 #include <unistd.h>
 #include <fcntl.h>
index cdd16a914a895416e58fb59d0b68c2842a860a87..a5fc80e1add26c9c00faf7cd4ac276610e3ae4e1 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkEval.c 10230 2010-04-03 06:43:51Z furuse $ */
 
 #include <stdlib.h>
 #include <string.h>
index ad9b4d9edabb40c5f425af1c82cae106ee9c8e61..80125d28bc01a76a2222660510bf971b5682e274 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkEvent.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <tcl.h>
 #include <tk.h>
index 4fbf9868e61d9b5a3e534de0e988b7ddd937d201..e0c80c47b4e005ab716d1b6d05000cf175874374 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkFile.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #ifdef __CYGWIN__
 #define _WIN32
index eb4617a45de73f571fa19773c0cdbfb14cc028fe..b2463e8646db7cd25b5903e6ae66961d9c5b8a1d 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkMain.c 10230 2010-04-03 06:43:51Z furuse $ */
 
 #include <string.h>
 #include <tcl.h>
index b19713cda79401bc12aa270610307f119eec64ce..607a6b66bd56bc3e574071ca71674524ac75290e 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkMisc.c 10230 2010-04-03 06:43:51Z furuse $ */
 
 #include <string.h>
 #include <tcl.h>
index e0635e8501135a5f8e254e7ee228e20fb6b62a9e..3f253cb9274525f2967fe0a7d02ce56f9c9e5243 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkTimer.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <tcl.h>
 #include <tk.h>
index fd01bd15a4da4fb2b20ee1de67de2bc6a0da4251..5654c7e5dbec69cf7cbe48468b06fd5bf51b12dc 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkUtf.c 4745 2002-04-26 12:16:26Z furuse $ */
 
 #include <stdlib.h>
 #include <string.h>
index 0411a94cda36edfb33abe8c4a6f3eb92c79f2685..02783634f65cd5a29b6dcf7b771024494bf2ce23 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkVar.c 10230 2010-04-03 06:43:51Z furuse $ */
 
 /* Alternative to tkwait variable */
 #include <string.h>
index 4c126b5d2086f96f1a437dd357e45e373349797c..ea392f79948739ba4a895bf10f6eab26f04eb157 100644 (file)
@@ -14,7 +14,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cltkWait.c 10230 2010-04-03 06:43:51Z furuse $ */
 
 #include <tcl.h>
 #include <tk.h>
index 846a7519b8fe6557216c7409f9272823873866b6..a175d2e9b427de9d196f3dfe2b37947b7605897e 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: fileevent.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Unix
 open Support
index 34760f0c7e3502017db717a82d7fd781b594ccd1..fa3e8be2275cf08602298a150d3f293928d9dd14 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: fileevent.mli 4745 2002-04-26 12:16:26Z furuse $ *)
 
 open Unix
 
index 26b97c0bda9c5c2e837749b06abb3f405e876a38..8b59a543c30d3c44b06f47dac0211e077847f630 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: protocol.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Support
 open Widget
index 9b5ae39362562510b810df44c557072dc7131a84..c528921197c538341a0c11adb7ee5c034a919ba7 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: protocol.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Widget
 
index 99b1dce1a91a854fbee2920399c109527e76def7..5a5a608c1061cf892f53f05225b2d555876c2bcf 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: rawwidget.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Support
 
index 4eda7311c70596a288965f76a9cc9f2cd7a665cd..ba61398ab658a3e24daba93f1f2b949acc49ec61 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: rawwidget.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Support for widget manipulations *)
 
index 51eae853bbe3926fa5cf6ef0dcf6bd637d5eaf02..344668c9e8d6185dbada9aadb8ec3cf443641974 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: slave.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* The code run on initialisation, in addition to normal Tk code
  * NOTE: camltk has not fully been initialised yet
index fa650e8a9ec33484b21dbca1587e3e97b4acf75d..f4346ea62d0d87a875032a38cbbb1ed85ddf7190 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: support.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Parsing results of Tcl *)
 (* List.split a string according to char_sep predicate *)
index 95a2255cb5666f2118782b26f1826ff2c26ccf7f..351e5fc25a9691d9467c6c9b7e7a5eb55442c23c 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: support.mli 4745 2002-04-26 12:16:26Z furuse $ *)
 
 val split_str : pred:(char -> bool) -> string -> string list
 val may : ('a -> 'b) -> 'a option -> 'b option
index ad9033d450b78881f60a152316a2504950131ecd..6bffeb447075709c5758770f54689e9f7c22956e 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: textvariable.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Support
 open Protocol
index dfa511a29f5b7be8c54fa3d092af13a1210319f3..b966331498ab3e97a51b75a9a229e66ca9a40195 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: textvariable.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Support for Tk -textvariable option *)
 open Widget
index a6ef8c29922f6b325d1ba7c51453683e80b26d9b..82a278ebcbdcd459ec8dea6db599c9fd87fec9cb 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: timer.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Timers *)
 open Support
index a45e1c9d22392f0d0bf991748b11a43e4f94830f..bf65f6579e682a707376c14c70894bde9611feb2 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: timer.mli 4745 2002-04-26 12:16:26Z furuse $ *)
 
 type t
 
index ecdf61460a697aaec865cb3c45094b9d88955da0..6bcadfd0129562c59f0dc839151c56e9d2a090d8 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: tkthread.ml 8768 2008-01-11 16:13:18Z doligez $ *)
 
 let jobs : (unit -> unit) Queue.t = Queue.create ()
 let m = Mutex.create ()
index 4f20e6140bdf96bbba1713684b2620d355f15e47..54a070d84689ff1bebeecd0004f42b2cc2f1b9e1 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: tkthread.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Helper functions for using LablTk with threads.
    To use, add tkthread.cmo or tkthread.cmx to your command line *)
index 97a0b0eb84a33d3ab04ee75c71287fc270b43dd9..4994dbbfaa1c054d2708244a67e981f7260fd20e 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: tkwait.ml 9358 2009-09-25 12:56:10Z weis $ *)
 
 external internal_tracevis : string -> Protocol.cbid -> unit
         = "camltk_wait_vis"
index 65e0d26a9edffd70f32521eba6a36497a13f0920..581c879e0634086487f11c5406b7110437c31f5d 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: widget.ml 4745 2002-04-26 12:16:26Z furuse $ *)
 
 (* Hack to permit having the different data type with the same name
    [widget] for CamlTk and LablTk. *)
index f9c832783a6d5f32ef282a8a2e06e82eaed33bd5..1ae3adc134c2b789a9b0927827ee8014d4cea36d 100644 (file)
@@ -14,7 +14,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: widget.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Support for widget manipulations *)
 
index bfd028c0ad9333e3e4060dee19105a1c250c0da3..1e783ec0f9a60984efb905860596a84d316869c2 100644 (file)
@@ -1,6 +1,6 @@
 bng.o: bng.c bng.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/compatibility.h bng_amd64.c \
- bng_digit.c
 ../../byterun/../config/s.h ../../byterun/compatibility.h bng_amd64.c \
 bng_digit.c
 bng_alpha.o: bng_alpha.c
 bng_amd64.o: bng_amd64.c
 bng_digit.o: bng_digit.c
@@ -9,14 +9,14 @@ bng_mips.o: bng_mips.c
 bng_ppc.o: bng_ppc.c
 bng_sparc.o: bng_sparc.c
 nat_stubs.o: nat_stubs.c ../../byterun/alloc.h \
- ../../byterun/compatibility.h ../../byterun/misc.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/config.h ../../byterun/custom.h ../../byterun/intext.h \
- ../../byterun/io.h ../../byterun/fix_code.h ../../byterun/fail.h \
- ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h \
- ../../byterun/mlvalues.h bng.h nat.h
 ../../byterun/compatibility.h ../../byterun/misc.h \
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/config.h ../../byterun/custom.h ../../byterun/intext.h \
 ../../byterun/io.h ../../byterun/fix_code.h ../../byterun/fail.h \
 ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h \
 ../../byterun/mlvalues.h bng.h nat.h
 arith_flags.cmi:
 arith_status.cmi:
 big_int.cmi: nat.cmi
index 0a4349e8026f7ff2d3e5ed02236b137e02c373f1..6feef50fe01b4993b21aed68c8d949e7c14e7226 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 9623 2010-02-09 14:17:20Z doligez $
 
 # Makefile for the "num" (exact rational arithmetic) library
 
index 16103b2b009587b940b80180bdb9ed675b8806df..19ff74ffca851d5c79bbf823ac9f8ef6c1f94483 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 10337 2010-04-30 13:27:35Z frisch $
 
 # Makefile for the "num" (exact rational arithmetic) library
 
index 00e2813e620153d59d9d1707ebac6ae2ff90f9a2..2be7d67f528b189767182e37990d720df5057a59 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arith_flags.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 let error_when_null_denominator_flag = ref true;;
 
index 36160edb24de812491c3ca211f975457c4442081..a132ea410fd6493b10d4ea73b66503c599bbea64 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arith_flags.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 val error_when_null_denominator_flag : bool ref
 val normalize_ratio_flag : bool ref
index 8b6fa9f72770e09c8f422cdb659940ca6fb04867..6b7ebd437f9b224561dee41008bdcb21a021e7ee 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arith_status.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Arith_flags;;
 
index 121b4d57568dcc45e9e2ad62630d51ad10f717c6..cf2407f94b00704fa6c77763a23c031aa8d043e6 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arith_status.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Flags that control rational arithmetic. *)
 
index 6b6015185d0bde48c9e6cb221c2551614c35a8d4..bd90348251a0242bcdadceafc8392c9535bb60de 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: big_int.ml 10327 2010-04-29 13:53:01Z xleroy $ *)
 
 open Int_misc
 open Nat
index 2ac7b7eb6f2e665ae52644c669fba4f774da432e..1b5ca2bb66776cfc5b3298b96b992037306649f8 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: big_int.mli 10327 2010-04-29 13:53:01Z xleroy $ *)
 
 (** Operations on arbitrary-precision integers.
 
index c95ded1d64b78e18cd3bf048ddff384edf2e21a2..bd8f6bab4644ada0125dffb0abf655e53c3f2e45 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng.c 10450 2010-05-21 12:00:49Z doligez $ */
 
 #include "bng.h"
 #include "config.h"
@@ -34,7 +34,7 @@
 
 #include "bng_digit.c"
 
-/**** Operations that cannot be overriden ****/
+/**** Operations that cannot be overridden ****/
 
 /* Return number of leading zero bits in d */
 int bng_leading_zero_bits(bngdigit d)
index 6d12c87cb3c6fe9e37fc5c0ccf9ecf31d3175f27..8dd7b902b2e4e86f8fe056779fe15877bf52c936 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <string.h>
 #include "config.h"
index 5bf964b582780e18b7ca8d015b99e273cf5e2fb4..b928404131c0988d22e04457bca84ad8cc0f13e1 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng_alpha.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Code specific to the Alpha architecture. */
 
index e829eef23ee59270dc0a5b386b953f87e704fc5b..42ad98c3eccc11ebdf7d684428113a20f65c8655 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng_amd64.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Code specific to the AMD x86_64 architecture. */
 
index 168b44ad3dfa710bed4b5af552c6e3a120dc09d1..d340cd605a79bc33918867595436dd5b1611bb03 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng_digit.c 10324 2010-04-28 11:59:09Z xleroy $ */
 
 /**** Generic operations on digits ****/
 
index bbca8e9dcd1e2052df460106d7c85de310600d2c..ff620f22c92f78425dde320372f919e71c4f6f51 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng_ia32.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Code specific to the Intel IA32 (x86) architecture. */
 
index f246843cb860fa9c197714dd72c55a47cec83396..1d6f2cf7da57fd2d308843373496dab7fb811172 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng_mips.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Code specific to the MIPS architecture. */
 
index 32d573cd0f357dbb48219794b910879ece950e50..f566539ec69e36af8bd7bc96f2a6ce23f79401b5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng_ppc.c 7430 2006-05-31 08:16:34Z xleroy $ */
 
 /* Code specific to the PowerPC architecture. */
 
index 934c0b2f7e5a2cd52f136e049a2ca65b413aa4ee..55639f01bf32062e9c4e5c97eb149a42aae6def6 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bng_sparc.c 5880 2003-10-24 09:18:01Z xleroy $ */
 
 /* Code specific to the SPARC (V8 and above) architecture. */
 
index b7eb4c67d40053c9cb17e0db1416af9bd57a2c07..1560bf16a36b8661ea5d9583541df1c6fdf9dd6b 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: int_misc.ml 4845 2002-05-27 12:06:49Z weis $ *)
 
 (* Some extra operations on integers *)
 
index 28bb335b8ec848e14497e6ef78a22661246dcd94..d20c56b0c6a41e66b4fb9a6c243d4635e5b10e6d 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: int_misc.mli 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 (* Some extra operations on integers *)
 
index 7f67b916a1396c936c9347fe9998c4c69242626b..5546cdfa34bc0dede47ab69215f3c14a03fedb33 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: nat.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* Nats are represented as unstructured blocks with tag Custom_tag. */
 
index cda80d5d48e995659bbf9843abe598c8b5e87434..7c079483649fd34302030c8d17d9e725c07f70f0 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: nat.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Int_misc
 
index 3b32ac8dcf8a340820983759f8800a2a5773a88e..8ce2e39fc8d377e7f3ac85c4660e2def59e1c96f 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: nat.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Module [Nat]: operations on natural numbers *)
 
index cffe1237411e92343993af0cec16bc3202d8f85d..098cde184bd955ebea2275cf83f4b5235dee0bde 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: nat_stubs.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include "alloc.h"
 #include "config.h"
index 52fe8cc0e8570ef7f00e7d8f120cde86b339e974..2f74910ece4b0695517f4d75a78343e52ceb82b9 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: num.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Int_misc
 open Nat
index 8bf3d4e6e727ab62d7303910fe4a817252bf784e..c64097072135c2dd1483f1068ab6ae253e8cdda5 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: num.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Operation on arbitrary-precision numbers.
 
index 12621f08a260c64b50165a507ec2e441f3a80562..04780ea7560d79031f78edb1e55243ce18c11054 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ratio.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Module [Ratio]: operations on rational numbers *)
 
index c9eb99514b1486cea26d44e47f841d0c3193708e..df6eb9af0898aff33da1e06ecc06255e5789eb26 100644 (file)
@@ -1,9 +1,9 @@
 strstubs.o: strstubs.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/fail.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/fail.h
 str.cmi:
 str.cmo: str.cmi
 str.cmx: str.cmi
index b6c16a07691823493f87c8de2825fa189083edd2..b59fe8006555cf419e54573379345ae2fb4970f1 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 9547 2010-01-22 12:48:24Z doligez $
 
 # Makefile for the str library
 
index 5aeff80b25c8c08ff9a02bb94fe4b50abc6d8e04..fb0eabbcd008c0abfe6e238f48d331d10a91ee4e 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 9547 2010-01-22 12:48:24Z doligez $
 
 # Makefile for the str library
 
index f3f760acb93af36a90f7d6762052687cb3f9a5b8..509c856f273e4781d3f3e2318b33c35552134322 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: str.ml 10375 2010-05-05 14:36:41Z guesdon $ *)
 
 (** String utilities *)
 
index b63faf845aee799047812757974128be820701c5..b957fb668b6dbb3b67f862372638d987f31f32a5 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: str.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Regular expressions and high-level string processing *)
 
index ac530ef09d0d10c13b1d0e19ee993cfbf2ea2631..6f8d69bb755b7bf7e85209f53c3de75754526287 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: strstubs.c 10429 2010-05-19 12:22:24Z xleroy $ */
 
 #include <string.h>
 #include <ctype.h>
@@ -109,10 +109,19 @@ static void free_backtrack_stack(struct backtrack_stack * stack)
 #define In_bitset(s,i,tmp) (tmp = (i), ((s)[tmp >> 3] >> (tmp & 7)) & 1)
 
 /* Determine if a character is a word constituent */
+/* PR#4874: word constituent = letter, digit, underscore. */
+
 static unsigned char re_word_letters[32] = {
-  0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 7, 254, 255, 255, 7,
-  0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 127, 255, 255, 255, 127, 255
+  0x00, 0x00, 0x00, 0x00,       /* 0x00-0x1F: none */
+  0x00, 0x00, 0xFF, 0x03,       /* 0x20-0x3F: digits 0-9 */
+  0xFE, 0xFF, 0xFF, 0x87,       /* 0x40-0x5F: A to Z, _ */
+  0xFE, 0xFF, 0xFF, 0x07,       /* 0x60-0x7F: a to z */
+  0x00, 0x00, 0x00, 0x00,       /* 0x80-0x9F: none */
+  0x00, 0x00, 0x00, 0x00,       /* 0xA0-0xBF: none */
+  0xFF, 0xFF, 0x7F, 0xFF,       /* 0xC0-0xDF: Latin-1 accented uppercase */
+  0xFF, 0xFF, 0x7F, 0xFF        /* 0xE0-0xFF: Latin-1 accented lowercase */
 };
+
 #define Is_word_letter(c) ((re_word_letters[(c) >> 3] >> ((c) & 7)) & 1)
 
 /* The bytecode interpreter for the NFA */
index dc859aa81f944f1980ed75dd397ad053c196c62b..9c6889b708342a668b0a6766b134abdbcc919374 100644 (file)
@@ -1,14 +1,14 @@
 st_stubs.o: st_stubs.c ../../byterun/alloc.h \
- ../../byterun/compatibility.h ../../byterun/misc.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/backtrace.h ../../byterun/callback.h \
- ../../byterun/custom.h ../../byterun/fail.h ../../byterun/io.h \
- ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/misc.h \
- ../../byterun/mlvalues.h ../../byterun/printexc.h ../../byterun/roots.h \
- ../../byterun/memory.h ../../byterun/signals.h ../../byterun/stacks.h \
- ../../byterun/sys.h threads.h st_posix.h
 ../../byterun/compatibility.h ../../byterun/misc.h \
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/backtrace.h ../../byterun/callback.h \
 ../../byterun/custom.h ../../byterun/fail.h ../../byterun/io.h \
 ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/misc.h \
 ../../byterun/mlvalues.h ../../byterun/printexc.h ../../byterun/roots.h \
 ../../byterun/memory.h ../../byterun/signals.h ../../byterun/stacks.h \
 ../../byterun/sys.h threads.h st_posix.h
 condition.cmi: mutex.cmi
 event.cmi:
 mutex.cmi:
index f5c80c0e2dbf98eb27f85a769a1402bdadfbad5e..5ee27750d5b4e35d0c02a797230e38428f4e9d5a 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 10315 2010-04-27 07:55:08Z xleroy $
 
 include ../../config/Makefile
 
index 8c559e0b6d78850a10bfcb1740f50db5152af07a..a7d6aaa29615aeab535622e8b8b753a941bbed24 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 10315 2010-04-27 07:55:08Z xleroy $
 
 include ../../config/Makefile
 
index 6549c642d81d64e57293f0fd218a82974b11b052..480556960a059accc0c8f8fe3bbc74ccb132da8c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: condition.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 type t
 external create: unit -> t = "caml_condition_new"
index 5bc9d6740af198576161157f713f1d02171e1014..42b73b2093ad03a3163995c32f9ebe1f673c3982 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: condition.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Condition variables to synchronize between threads.
 
index 74f457b06d416de442e28184001f4ec99ab79c57..3b3951bebf32350549bf4af2828f9dffdcbc96e3 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: event.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Events *)
 type 'a basic_event =
index 08d6b0bf6b54299296134bbba9454cd3ad65c331..68abb4d4343c26c5f7c4314d6edf6320513d029c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: event.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** First-class synchronous communication.
 
index 4e108f4a9f03b502791cea5a49eaf30147379e73..a7d1795ab10f7907013c530e66d90ba9f205581c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: mutex.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 type t
 external create: unit -> t = "caml_mutex_new"
index b1fe14135862e15793677e43c29bb6100df76303..8cf41748b7a2b9617769f0ba58370a8ec0385f55 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: mutex.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Locks for mutual exclusion.
 
index 3c2fc01b53aa2ce24fa5e37a4fb8c17cf8533d10..09c28bb2364abf621c1a81a4fe8a1b11a51106ca 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: thread.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Lightweight threads for Posix [1003.1c] and Win32. *)
 
index 71855ec6966aff5796c7bd2903aaf2a40a257470..5b3fcfa54bc2994445f7c5a30e8a93075493339e 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: threadUnix.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 (* Module [ThreadUnix]: thread-compatible system calls *)
 
index c05346fef37ee3f0a55419df758d8576b3d2e7f4..bd03bad69deaf51b8d96ff5d946bb7d7a8284009 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: threadUnix.mli 4951 2002-06-26 09:48:00Z xleroy $ *)
 
 (** Thread-compatible system calls.
 
index 8adb2095fa82f162a073b791ed45a8c27d4e6ce2..7ce4479a414e608c13e7f12c8763a474dec76bb1 100644 (file)
@@ -1,35 +1,32 @@
 scheduler.o: scheduler.c ../../byterun/alloc.h \
- ../../byterun/compatibility.h ../../byterun/misc.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/backtrace.h ../../byterun/callback.h \
- ../../byterun/config.h ../../byterun/fail.h ../../byterun/io.h \
- ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/misc.h \
- ../../byterun/mlvalues.h ../../byterun/printexc.h ../../byterun/roots.h \
- ../../byterun/memory.h ../../byterun/signals.h ../../byterun/stacks.h \
- ../../byterun/sys.h
 ../../byterun/compatibility.h ../../byterun/misc.h \
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/backtrace.h ../../byterun/callback.h \
 ../../byterun/config.h ../../byterun/fail.h ../../byterun/io.h \
 ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/misc.h \
 ../../byterun/mlvalues.h ../../byterun/printexc.h ../../byterun/roots.h \
 ../../byterun/memory.h ../../byterun/signals.h ../../byterun/stacks.h \
 ../../byterun/sys.h
 condition.cmi: mutex.cmi
 event.cmi:
-marshal.cmi:
 mutex.cmi:
-pervasives.cmi:
-thread.cmi: unix.cmi
-threadUnix.cmi: unix.cmi
-unix.cmi:
+thread.cmi: unix.cmo
+threadUnix.cmi: unix.cmo
 condition.cmo: thread.cmi mutex.cmi condition.cmi
 condition.cmx: thread.cmx mutex.cmx condition.cmi
 event.cmo: mutex.cmi condition.cmi event.cmi
 event.cmx: mutex.cmx condition.cmx event.cmi
-marshal.cmo: pervasives.cmi marshal.cmi
-marshal.cmx: pervasives.cmx marshal.cmi
+marshal.cmo: pervasives.cmo
+marshal.cmx: pervasives.cmx
 mutex.cmo: thread.cmi mutex.cmi
 mutex.cmx: thread.cmx mutex.cmi
-pervasives.cmo: unix.cmi pervasives.cmi
-pervasives.cmx: unix.cmx pervasives.cmi
-thread.cmo: unix.cmi thread.cmi
+pervasives.cmo: unix.cmo
+pervasives.cmx: unix.cmx
+thread.cmo: unix.cmo thread.cmi
 thread.cmx: unix.cmx thread.cmi
-threadUnix.cmo: unix.cmi thread.cmi threadUnix.cmi
+threadUnix.cmo: unix.cmo thread.cmi threadUnix.cmi
 threadUnix.cmx: unix.cmx thread.cmx threadUnix.cmi
-unix.cmo: unix.cmi
-unix.cmx: unix.cmi
+unix.cmo:
+unix.cmx:
index 0e6ef86ff0aff4c057393f49f281badfd6cdeda1..b22eef53edb55f3d539995bf8fe8d496346081dc 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 9153 2008-12-03 18:09:09Z doligez $
 
 include ../../config/Makefile
 
index e012a86e35a75eb0fa303c683216d6e1649616bf..4b9f337138a7506c96064f3b70ccca4dba8461ac 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: condition.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 type t = { mutable waiting: Thread.t list }
 
index 5bc9d6740af198576161157f713f1d02171e1014..42b73b2093ad03a3163995c32f9ebe1f673c3982 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: condition.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Condition variables to synchronize between threads.
 
index 74f457b06d416de442e28184001f4ec99ab79c57..3b3951bebf32350549bf4af2828f9dffdcbc96e3 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: event.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Events *)
 type 'a basic_event =
index 08d6b0bf6b54299296134bbba9454cd3ad65c331..68abb4d4343c26c5f7c4314d6edf6320513d029c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: event.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** First-class synchronous communication.
 
index d31a667df8c883526cff2f640bd3f3fd7e7210ca..a231627edd1a0e9ed84a3ae503bc55e5e12525a9 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: marshal.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 type extern_flags =
     No_sharing
index f0f6845b21a6e22967f15580ee586805dbb218fe..d158d79f9de11f0e4ad8d6e68f95026e346d9105 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: mutex.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 type t = { mutable locked: bool; mutable waiting: Thread.t list }
 
index b1fe14135862e15793677e43c29bb6100df76303..8cf41748b7a2b9617769f0ba58370a8ec0385f55 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: mutex.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Locks for mutual exclusion.
 
index 7cfd02505caa4b15e2c0d8e43251414d23d931f8..322e931201c2c442ef5cb33b8e48e3dbb18f76fd 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pervasives.ml 10547 2010-06-09 10:23:48Z weis $ *)
 
 (* Same as ../../stdlib/pervasives.ml, except that I/O functions have
    been redefined to not block the whole process, but only the calling
@@ -55,6 +55,7 @@ external (||) : bool -> bool -> bool = "%sequor"
 (* Integer operations *)
 
 external (~-) : int -> int = "%negint"
+external (~+) : int -> int = "%identity"
 external succ : int -> int = "%succint"
 external pred : int -> int = "%predint"
 external (+) : int -> int -> int = "%addint"
@@ -81,6 +82,7 @@ let max_int = min_int - 1
 (* Floating-point operations *)
 
 external (~-.) : float -> float = "%negfloat"
+external (~+.) : float -> float = "%identity"
 external (+.) : float -> float -> float = "%addfloat"
 external (-.) : float -> float -> float = "%subfloat"
 external ( *. ) : float -> float -> float = "%mulfloat"
@@ -512,7 +514,8 @@ let (( ^^ ) :
       ('f, 'b, 'c, 'e, 'g, 'h) format6 ->
       ('a, 'b, 'c, 'd, 'g, 'h) format6) =
   fun fmt1 fmt2 ->
-    string_to_format (format_to_string fmt1 ^ format_to_string fmt2);;
+    string_to_format (format_to_string fmt1 ^ "%," ^ format_to_string fmt2)
+;;
 
 let string_of_format fmt =
   let s = format_to_string fmt in
@@ -521,7 +524,6 @@ let string_of_format fmt =
   string_blit s 0 r 0 l;
   r
 
-
 (* Miscellaneous *)
 
 external sys_exit : int -> 'a = "caml_sys_exit"
index c73ac67e81a002a94dc99f3d53b7fe2efc16668f..0580b2d37405a6df6f18a72a583e1e0a01f5f340 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: scheduler.c 7064 2005-09-22 14:21:50Z xleroy $ */
 
 /* The thread scheduler */
 
index 723669a39d96e67a8cd4a55fd3b13f5175d733a6..88ac55a09d5a736777c8936a6365d26b3f2a084d 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: thread.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* User-level threads *)
 
index 9577a54eb0c625a3e8da94d2ccb0079a55f10e04..19c93c1e28d99a5912d53b82cc12d47bfe99d85e 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: thread.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (** Lightweight threads. *)
 
index 66a3704c198f9660bc22bbaf10d1729827dff172..9831db7e3f585ef75ff20be922fef1871fb4c29c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: threadUnix.ml 6553 2004-07-13 12:25:21Z xleroy $ *)
 
 (* Module [ThreadUnix]: thread-compatible system calls *)
 
index 1b4dde29b64c1e774050433a0341411678aacbca..0d45884b5fab1d4cf95fbfbad8771caeb1b7e45f 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: threadUnix.mli 6553 2004-07-13 12:25:21Z xleroy $ *)
 
 (** Thread-compatible system calls.
 
index 5a8bb697da3734789854bbbbecc311d792b9d51d..bab77bdba4b45b8752dda843532a72710095fd96 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unix.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* An alternate implementation of the Unix module from ../unix
    which is safe in conjunction with bytecode threads. *)
index cf80dc6992fd5f82d92004f39b46e5c0a31f7276..42875bdcc8bd8cb66b746955f2d37945505604b3 100644 (file)
 accept.o: accept.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
- socketaddr.h ../../byterun/misc.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
 socketaddr.h ../../byterun/misc.h
 access.o: access.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h unixsupport.h
 addrofstr.o: addrofstr.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \
- unixsupport.h socketaddr.h ../../byterun/misc.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \
 unixsupport.h socketaddr.h ../../byterun/misc.h
 alarm.o: alarm.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 bind.o: bind.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h socketaddr.h ../../byterun/misc.h
+  ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/mlvalues.h \
+  ../../byterun/mlvalues.h unixsupport.h socketaddr.h \
+  ../../byterun/misc.h
 chdir.o: chdir.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 chmod.o: chmod.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 chown.o: chown.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 chroot.o: chroot.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 close.o: close.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 closedir.o: closedir.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h unixsupport.h
 connect.o: connect.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h ../../byterun/signals.h unixsupport.h \
- socketaddr.h ../../byterun/misc.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h ../../byterun/signals.h unixsupport.h \
 socketaddr.h ../../byterun/misc.h
 cst2constr.o: cst2constr.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \
- cst2constr.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \
 cst2constr.h
 cstringv.o: cstringv.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/mlvalues.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h
 dup.o: dup.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 dup2.o: dup2.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 envir.o: envir.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h
 errmsg.o: errmsg.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h
 execv.o: execv.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h
 execve.o: execve.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h
 execvp.o: execvp.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h
 exit.o: exit.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 fchmod.o: fchmod.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 fchown.o: fchown.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 fcntl.o: fcntl.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 fork.o: fork.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h \
- ../../byterun/debugger.h ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h \
 ../../byterun/debugger.h ../../byterun/mlvalues.h unixsupport.h
 ftruncate.o: ftruncate.c ../../byterun/fail.h \
- ../../byterun/compatibility.h ../../byterun/misc.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h ../../byterun/io.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/misc.h \
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h ../../byterun/io.h unixsupport.h
 getaddrinfo.o: getaddrinfo.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
- cst2constr.h socketaddr.h ../../byterun/misc.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
 cst2constr.h socketaddr.h ../../byterun/misc.h
 getcwd.o: getcwd.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/fail.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/fail.h unixsupport.h
 getegid.o: getegid.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h unixsupport.h
 geteuid.o: geteuid.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h unixsupport.h
 getgid.o: getgid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 getgr.o: getgr.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/fail.h \
- ../../byterun/mlvalues.h ../../byterun/alloc.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/fail.h \
 ../../byterun/mlvalues.h ../../byterun/alloc.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h unixsupport.h
 getgroups.o: getgroups.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h unixsupport.h
 gethost.o: gethost.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
- socketaddr.h ../../byterun/misc.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
 socketaddr.h ../../byterun/misc.h
 gethostname.o: gethostname.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h unixsupport.h
 getlogin.o: getlogin.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 unixsupport.h
 getnameinfo.o: getnameinfo.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
- socketaddr.h ../../byterun/misc.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
 socketaddr.h ../../byterun/misc.h
 getpeername.o: getpeername.c ../../byterun/fail.h \
- ../../byterun/compatibility.h ../../byterun/misc.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h socketaddr.h ../../byterun/misc.h
+  ../../byterun/compatibility.h ../../byterun/misc.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/mlvalues.h \
+  ../../byterun/mlvalues.h unixsupport.h socketaddr.h \
+  ../../byterun/misc.h
 getpid.o: getpid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 getppid.o: getppid.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h unixsupport.h
 getproto.o: getproto.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h unixsupport.h
 getpw.o: getpw.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/fail.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/fail.h unixsupport.h
 getserv.o: getserv.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h unixsupport.h
 getsockname.o: getsockname.c ../../byterun/fail.h \
- ../../byterun/compatibility.h ../../byterun/misc.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h socketaddr.h ../../byterun/misc.h
+  ../../byterun/compatibility.h ../../byterun/misc.h \
+  ../../byterun/config.h ../../byterun/../config/m.h \
+  ../../byterun/../config/s.h ../../byterun/mlvalues.h \
+  ../../byterun/mlvalues.h unixsupport.h socketaddr.h \
+  ../../byterun/misc.h
 gettimeofday.o: gettimeofday.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h unixsupport.h
 getuid.o: getuid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 gmtime.o: gmtime.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h unixsupport.h
 initgroups.o: initgroups.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h unixsupport.h
 isatty.o: isatty.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 itimer.o: itimer.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h unixsupport.h
 kill.o: kill.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/fail.h \
- ../../byterun/mlvalues.h unixsupport.h ../../byterun/signals.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/fail.h \
 ../../byterun/mlvalues.h unixsupport.h ../../byterun/signals.h
 link.o: link.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 listen.o: listen.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 lockf.o: lockf.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h ../../byterun/signals.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h ../../byterun/signals.h unixsupport.h
 lseek.o: lseek.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/io.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/io.h unixsupport.h
 mkdir.o: mkdir.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 mkfifo.o: mkfifo.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 nice.o: nice.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 open.o: open.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h
 opendir.o: opendir.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 unixsupport.h
 pipe.o: pipe.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h unixsupport.h
 putenv.o: putenv.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h \
 ../../byterun/mlvalues.h unixsupport.h
 read.o: read.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h \
- ../../byterun/signals.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h \
 ../../byterun/signals.h unixsupport.h
 readdir.o: readdir.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \
- ../../byterun/alloc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \
 ../../byterun/alloc.h unixsupport.h
 readlink.o: readlink.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h unixsupport.h
 rename.o: rename.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 rewinddir.o: rewinddir.c ../../byterun/fail.h \
- ../../byterun/compatibility.h ../../byterun/misc.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/misc.h \
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 rmdir.o: rmdir.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 select.o: select.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h
 sendrecv.o: sendrecv.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
- socketaddr.h ../../byterun/misc.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \
 socketaddr.h ../../byterun/misc.h
 setgid.o: setgid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 setgroups.o: setgroups.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h unixsupport.h
 setsid.o: setsid.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 setuid.o: setuid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 shutdown.o: shutdown.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 signals.o: signals.c ../../byterun/alloc.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/mlvalues.h \
- ../../byterun/signals.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/mlvalues.h \
 ../../byterun/signals.h unixsupport.h
 sleep.o: sleep.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/signals.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h \
 ../../byterun/signals.h ../../byterun/mlvalues.h unixsupport.h
 socket.o: socket.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 socketaddr.o: socketaddr.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h \
- socketaddr.h ../../byterun/misc.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h \
 socketaddr.h ../../byterun/misc.h
 socketpair.o: socketpair.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h unixsupport.h
 sockopt.o: sockopt.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/alloc.h \
- ../../byterun/fail.h unixsupport.h socketaddr.h ../../byterun/misc.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/mlvalues.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/alloc.h \
 ../../byterun/fail.h unixsupport.h socketaddr.h ../../byterun/misc.h
 stat.o: stat.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/alloc.h \
- unixsupport.h cst2constr.h ../../byterun/io.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/alloc.h \
 unixsupport.h cst2constr.h ../../byterun/io.h
 strofaddr.o: strofaddr.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h unixsupport.h socketaddr.h ../../byterun/misc.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h unixsupport.h socketaddr.h ../../byterun/misc.h
 symlink.o: symlink.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 termios.o: termios.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/fail.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
 ../../byterun/fail.h unixsupport.h
 time.o: time.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h unixsupport.h
 times.o: times.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \
 ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h unixsupport.h
 truncate.o: truncate.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \
- ../../byterun/io.h unixsupport.h
 ../../byterun/compatibility.h ../../byterun/config.h \
 ../../byterun/../config/m.h ../../byterun/../config/s.h \
 ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \
 ../../byterun/io.h unixsupport.h
 umask.o: umask.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 unixsupport.o: unixsupport.c ../../byterun/mlvalues.h \
- ../../byterun/compatibility.h ../../byterun/config.h \
- ../../byterun/../config/m.h ../../byterun/../config/s.h \
- ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
- ../../byterun/callback.h ../../byterun/memory.h ../../byterun/gc.h \
- ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/fail.h unixsupport.h cst2constr.h
+  ../../byterun/compatibility.h ../../byterun/config.h \
+  ../../byterun/../config/m.h ../../byterun/../config/s.h \
+  ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \
+  ../../byterun/callback.h ../../byterun/memory.h ../../byterun/gc.h \
+  ../../byterun/major_gc.h ../../byterun/freelist.h \
+  ../../byterun/minor_gc.h ../../byterun/fail.h unixsupport.h \
+  cst2constr.h
 unlink.o: unlink.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h
 utimes.o: utimes.c ../../byterun/fail.h ../../byterun/compatibility.h \
- ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/mlvalues.h \
- ../../byterun/mlvalues.h unixsupport.h
 ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/mlvalues.h \
 ../../byterun/mlvalues.h unixsupport.h
 wait.o: wait.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
- ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
- ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \
 ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \
 ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h
 write.o: write.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \
- ../../byterun/config.h ../../byterun/../config/m.h \
- ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
- ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
- ../../byterun/freelist.h ../../byterun/minor_gc.h \
- ../../byterun/signals.h unixsupport.h
 ../../byterun/config.h ../../byterun/../config/m.h \
 ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \
 ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \
 ../../byterun/freelist.h ../../byterun/minor_gc.h \
 ../../byterun/signals.h unixsupport.h
 unix.cmi:
 unixLabels.cmi: unix.cmi
 unix.cmo: unix.cmi
index e489001b87166f4f8db92543899a904986fc014e..4369dc4bc701182b1200dc1019ced15a918d88c6 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 10442 2010-05-20 09:40:41Z xleroy $
 
 # Makefile for the Unix interface library
 
@@ -38,7 +38,7 @@ COBJS=accept.o access.o addrofstr.o alarm.o bind.o chdir.o chmod.o \
 
 CAMLOBJS=unix.cmo unixLabels.cmo
 
-HEADERS=unixsupport.h
+HEADERS=unixsupport.h socketaddr.h
 
 include ../Makefile
 
index a6e80f064fd75aeeddcd8b834faeeacca09ae33b..075011e0bbca8a13a87f4f93f7d008a136d83560 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: accept.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 0c0c5fc1a3dc594ddc2ff34265a712e7b7f6f949..f0c07ac765e7c8f6ff8af585d671585d0ddcc607 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: access.c 8768 2008-01-11 16:13:18Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 6947d66f11c9d3b5336f88db6918beb2d633d62a..548815b8654617d0dc84b65103550de6dd4ed4fc 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: addrofstr.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <fail.h>
index 55e4d6cf80d24ef176e3b55b397363f2c449129b..2cf2d019ff95d791ffeb0656be4c24a722535900 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: alarm.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 85cf1d28aa370c48df6723cd6aa37258209eb22c..8a0d9a2d5dc454a734de74c4db8294fefc85e3aa 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bind.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index 7901eca0e40b141f3d5bf8ef02740ffa547cf895..520891aea7a89d6d569f0c6d87d2b6ee06f8bcda 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: chdir.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index dff837223ee5c076dfb9df9dc5abdb5adb61d414..443d54b6b58c5cd2259e22323cc1ff1baa8611ac 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: chmod.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
index bfd164008f6770873f90d3b321d4458106543c3b..15d89d5e3d792ff848184617078b2c39ae8c759c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: chown.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 24f49877d5df65de9dd79ee49d6327141050c029..2ad88d44f3ec5ed0921b2891baccce0efe7ef192 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: chroot.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 27e1937df424d5f49c0a7b73f7e97cf4332f6892..043d3c746a696a719b624e3a1797974bbd67487b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: close.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index b2fd51357d249b373805a3f7fbecc5c9edfef0c4..a0ac51919f68c2b8917b87218b8674886b96fce8 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: closedir.c 6113 2004-02-14 10:21:23Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 669c347f3f3ceaa89c568b34ae203d4b0173c3ea..f3079dcfeafc196327e9b4d47c44ace05d539247 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: connect.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index 9035160dcc02536410fac27f56b2610304de2ba9..782ceed148b3342429d1af30770770d7818fa03a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cst2constr.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include <fail.h>
index 3cb1c11824aabecdb77f0a3ed77faf39df5a4036..d404b00744e5c407315aac3d879a6cfaef72d2d5 100644 (file)
@@ -11,6 +11,6 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cst2constr.h 6193 2004-04-09 13:25:23Z xleroy $ */
 
 extern value cst_to_constr(int n, int * tbl, int size, int deflt);
index 0e37914d82c43bf23819f8346ab92914bfa469f2..fd45281bb0404cb352189bfa45de8200c19bbada 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: cstringv.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <memory.h>
index 5935d0b440241a38119126756e792dc432044f13..2a2e0099163faf049939444a47e9eea6bc8e187a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dup.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index beb987133b55beaa8b6c2d22cf0b496567ffbcd1..dec473e7b4034e0aac9d42156b9dadb6a9a14c39 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dup2.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 1df842c593c76575b4ead8408697879655c58699..b0291e889f69229ed1604671bc9437a4ca34584b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: envir.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index ae8793e196ccdf57bee17c2f7e1600727d60de5e..d1cd5a6e3187ed40f1e637af33f2fa5026fef428 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: errmsg.c 6315 2004-05-23 15:53:50Z xleroy $ */
 
 #include <errno.h>
 #include <string.h>
index bc0330b356e149c9e0206419c2f787aec9b06cb8..f0522c042f2e21b0651add3295e2980467b76d88 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: execv.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <memory.h>
index 4d29fb55b730b934a7e747bb52633cd68c413c0c..044d9a61fb382e4c6bd6af7d606225eae29e9e81 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: execve.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <memory.h>
index 6d03a29ea4591d92c92a10a1d518b803c9b7d446..5edb54555411bfe4bd71fa5abb2fb345c1761b03 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: execvp.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <memory.h>
index 8f1df6d532e2ca74693295b723851d038e70b443..5e5bd0474a230616d88b1b441526e99392dd22b7 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: exit.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index a90de6ef1f827e60cb79fe3ea56a44f3c0dbb835..ed2949a920c456934df105cac53e575182ff415a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fchmod.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
index 29683a5c7977a24bd9db47f8b170fcb58726508a..6d21d1f6980218798f3760b58681f7d983dd91cb 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fchown.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index a0891b2c30df0fd3f1e53a86aa7393824ac36394..9cb6dca2cb572bb757b46eb592767e2f99df9b30 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fcntl.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index 74ec6294d020454bb78247b08c4e437f800bd790..190c7b5c97a6bd811db1e14f7391cc5791cd3aee 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: fork.c 10287 2010-04-20 15:47:15Z doligez $ */
 
 #include <mlvalues.h>
 #include <debugger.h>
index 661640e35382ced8abbc3d99bf6eab6edbe9baef..51560cc3888128aac4abc55f8a8bf8173f64e671 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: ftruncate.c 7849 2007-02-09 13:31:15Z doligez $ */
 
 #include <sys/types.h>
 #include <fail.h>
index adc54998a7fe8060cf0d9b108705fc562fa67bed..e390d18bf89a0e4c0d35fb3e0912c9e28190f34a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getaddrinfo.c 7019 2005-08-13 20:59:37Z doligez $ */
 
 #include <string.h>
 #include <mlvalues.h>
index 7c735b68dc38d944c8c47c8e65b2da69671fd31e..a8c5b99ba9d25f3a1c2178e1959aa4f79a0d8851 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getcwd.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 02beaf1241cc97376666bb7e72108d1ebf762fb5..c76544bfb40ede084835f10ef23199305146ce78 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getegid.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 7c9f660afec9b14f1da2c1520448fe72c3bd88dc..7b5fe2b27756634b9dd7fe0b1a19b6bf549a1505 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: geteuid.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index d0ed4bff74080fc88e8fade0b25016ec2b73a846..d2f8f4ba4a862b9a805b6a50596dd34bc3d01232 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getgid.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index eefaa5979cdde8fc3ac84a22791df3487769d523..1c61da1141aebcde3b02da8897310ba706e6c7e6 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getgr.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include <fail.h>
index 4d34d5be90d009565e1c0ab13e213cb9527351f0..ed07c8c6f5324ddf75523c267fa48ef08c5c8f8e 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getgroups.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 36fdfd8ef9e77ee4086c79dc66c683c0d0ba5496..3141292f0762faa3921cf1fb939d99d6272e167d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gethost.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <string.h>
 #include <mlvalues.h>
index f84f8f5b56b2659874f6412d4d1494650cfe5403..9f8c7c099ec1c1d2bce0afcef085457ad7d4cab0 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gethostname.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 132ed443a49f41024c875813c1ba5e763233e436..afd3e2c8f9654ef4a6cfafcef94ce27a21646d6c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getlogin.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index c88785699351bceb6e006350525eb6c64b92c3b9..0a4402bef801b689af4f9d0f3ea0be193049d2c4 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getnameinfo.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <string.h>
 #include <mlvalues.h>
index 20a837ca193f98e8b8e674ee88b62ac6a6605dc1..06e388d81fabf627d87efaa0f2908d58a25c1536 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getpeername.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index cb522749de8e134d9fff991cd8a865a46c1e2398..891cc83fde88e03c21015d9ce1a6d3d2bae5653f 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getpid.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 0d69aafb4a9314aa47a86d77a418d088941aca02..511e3f6d71e9e306bfd0de593efc2cd7e2dd1396 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getppid.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index c9ca1a5c9eaaff270b45f9d5c438db7e5af8210b..d931b34dc53f0b9a4770c70daab499436c29c1bf 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getproto.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index eba9d6c3c329782a8b1248c495d9085aba87dd7a..d250cb8fcc87ddc1ee854a026c7b63f14a677335 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getpw.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index e252aacb70a306c19a00be9eebec076d78fe1bfd..96403ee5d3773921ec85f1b12eb5149c8539e692 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getserv.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 6f0b64dcd3d54b8ad11ae079c1d0d8131d96ea49..1772254a0ad8350a7a9e82916ff347f4a7be087b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getsockname.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index e095326e676b9785fb389d0a9c77b644fe34ee63..0575b2b24e03a8199993bdd08327bf569c28a656 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gettimeofday.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 780a8d8ec455c9d2a6cffa5e698779a3fac9731a..a6f0efae8715a2b6eb66ad2336d96ac007e7946d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getuid.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 2ffeb3927b158770ef521f28fac49b02a6977ad4..701a6fe311b8f69186c0a552012175f10c6a96e0 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gmtime.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index df358dae16d4d7be310945d986caca6c2a8ad780..138294c2576bf32f3870710787bbe0de8811b63f 100644 (file)
@@ -11,7 +11,7 @@
 
 /* Contributed by Stephane Glondu <steph@glondu.net> */
 
-/* $Id$ */
+/* $Id: initgroups.c 9235 2009-04-16 07:23:35Z xleroy $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index f534dd773b3c3c08340b258495ebcad3543111e4..3b913bfd65e7ee8eb9a2ae307722c541a94465a4 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: isatty.c 7632 2006-09-21 13:54:26Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 14bac626abed7b3c5b011c419e5cac7c6c858ae9..14209dfd9a02b78437ec99c4717a8ee5b2d6aef8 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: itimer.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 8d8a47340ceff76eced1b7021fcf6a88f0dee42d..78956d48d8f0bb02bab878e3b2cc48c284978ae8 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: kill.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include <fail.h>
index 181e9c1800478a3585278b55096fb2653b8bbc4f..d24da919a253614ed02e301d37ee90081d7d24e7 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: link.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 2f40cfbafadde176b9515f48dea65c3020323a01..cda2943e04eff8a05ca4b7372d42e85b23f14ce9 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: listen.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index 6e6ce5c1730ee8604d30008534894545044b5aaf..d3a12d36f0cee0d743412e9958056340bcdc9730 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: lockf.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <errno.h>
 #include <fcntl.h>
index cb59bb551778d179cce907dc5bc7b67dfd85f847..a4e82679da742dcaace31079efacbacb89f501f9 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: lseek.c 10223 2010-04-01 07:36:49Z shinwell $ */
 
 #include <errno.h>
 #include <sys/types.h>
index 1b8fd6242f72e2680e0dbcff31504baf2e8a6703..fc1606e9731c75716e8f66e5c4fdec4f5910338c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: mkdir.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
index 3e2cf3ddb5eddb6267a531fcec9be60d87abe5aa..8f2cfac5d9f34606f1a245f6c9a2f46dd2bd95cf 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: mkfifo.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
index 77def267c1b611d01d7f94a7d65042505b54ee1b..5dc4caa746eacbedb6d0f7f7bc7a22bcc3fe0239 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: nice.c 8967 2008-08-01 13:14:36Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 421218308c68f8d9cd565fa339776616baa20b43..073d9b82696a73aee81e2eb51461a6cee1a81a69 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: open.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 0497ef1f4ffd4af10ae38bece7ee8613b467f09b..a548230812429c6a9ef948320b259512cbe42d77 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: opendir.c 6113 2004-02-14 10:21:23Z xleroy $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index b68705e9ff2887b56f5979549be89324b137f148..438b1332b8658d115f27f79f808937a142909e3d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: pipe.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index e403d2966f96063bda9cb215bef864c13416d6ed..148d8fee38a504b14388abc528464f65a5acea83 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: putenv.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <stdlib.h>
 #include <string.h>
index 03a9e6aaa70de2305449fac3f378cfb05e529acf..4479f6fc4af258ea9de8a3bd85ce6c8b44375e87 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: read.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <string.h>
 #include <mlvalues.h>
index fb8a67b20e5d8fe702f2b541cebb716bfbe9edee..e7feb611c60493e2eecea70bb7a8d9286f949f53 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: readdir.c 6113 2004-02-14 10:21:23Z xleroy $ */
 
 #include <mlvalues.h>
 #include <fail.h>
index d2b9c4e125929da061279be0c187581cfc1ef8f9..7544eb7e0101d48ffda5c9cd70af6f5debf36db1 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: readlink.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 65f33c8b57fd89793145646069ffbcd1768373e3..dac48a47988a993c2363a1e736bc629cf760b42a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: rename.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <stdio.h>
 #include <mlvalues.h>
index d14c526d963b53292d51cd65541a5d07f67aa766..61ce6af58f45f95a4272c064497294722473a352 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: rewinddir.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index 8de223464db2c7d1585bb54f2766d28ba134a4ac..79d27c54ffb01cbd2ec6cf1a7667776ac5d2ba7c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: rmdir.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 612d59701420e71650b85379785f8e1533b9aaaa..33f82c3b17f82d8bf83497ef37adbe3c1a6b1e71 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: select.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index bb3989af7804a27f0a24b9fa7212cadd0e741116..bce164b64c0d2a22d69f8d6d0b060d20f894861c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sendrecv.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <string.h>
 #include <mlvalues.h>
index bd8810f819fc443edc6e9d78bd864f147a8e8275..698e6e2567125528266bb0a2af64bf4653d468f4 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: setgid.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index dd4592ad00f686bad950c15389f0e233d042a4f9..c07c8aea93fdc4d2a2f0ce088ec00da2aca53218 100644 (file)
@@ -11,7 +11,7 @@
 
 /* Contributed by Stephane Glondu <steph@glondu.net> */
 
-/* $Id$ */
+/* $Id: setgroups.c 9220 2009-04-01 16:50:10Z xleroy $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index bfa9dac0b2fc177a4454f9fbb73b7ffbdf6d73a1..cfaa3e65c97d277fe27923b695e02b181f4da3dd 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: setsid.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index c867f4c68b08079847e9de186e773a1544f32c1c..fb2a9ddcb0b45460ba2dca0abf1c14464c249546 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: setuid.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index d51b1a3de936156fcbc3221eb61f0f982df18f91..9a274529a57566d997727d349c43b19c0d491f3b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: shutdown.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index c388b139367fbb5d060d9cb6b2da2a88310e2b97..7232739be8cb519c12d08821c1a7ba33d9dd4ef6 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: signals.c 8768 2008-01-11 16:13:18Z doligez $ */
 
 #include <errno.h>
 #include <signal.h>
index ec14e39d0be9c71f094375317cd0685799c891fa..a5b9778693a7d9db1406e789ee3190bd6e420c79 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sleep.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include <signals.h>
index 82f6329c03727751c7e73afd154f863067359476..62f8428e6fc35ce12c47caf570774cf468bc5f4b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: socket.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index f285d15a7b0c918442f3e16ebe0f73593ffe76d0..b480cf802f417e89fc9b172a85fe6ba1082c473e 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: socketaddr.c 9540 2010-01-20 16:26:46Z doligez $ */
 
 #include <string.h>
 #include <mlvalues.h>
index 79bc80fa7af69c984ee965217d87d760eacecf2c..9cc3a2196ac950a1b8b95d6c8d9f0ea03b55b922 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: socketaddr.h 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <misc.h>
 #include <sys/types.h>
index df4dcff036938200d68233e425bdb99bdd9554b7..9e5aeb0de5334e7967f71905f6bf79daa1722ff5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: socketpair.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 31c95c1f55dff66fcd1cca2632e56f0bbeea8e9a..e58c7ff7dc2c00689b726a3c0af6c6a4d28af2f5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sockopt.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <memory.h>
index 9cd0000632693358d2c0955716c4c1e5ea6a374e..5bb6650f7ac7365ba4d558a7fb4e799d3aab93c5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: stat.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <errno.h>
 #include <mlvalues.h>
index ad9ea1911755a1f73cfe22cdbf9b3259daaea534..51927873c1045ecff3611f49988ee9c48fd0e7c8 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: strofaddr.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 6085fd516de5b0e47d7fc93c0bc96e21a359d09e..6fd7c1fd0eb385f88ac7e16ac04dbd7dad8fc173 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: symlink.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index ce49d77e09ac260f7f4bcfe546a4f7b3d493226f..ff33289058109f621610c6b6d17fa1c4def7eec5 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: termios.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 2fdf4978e4f022edca97ce9f53be3021386a2f3b..476abc3b375dc97a8ce65fd52b165ff35bb3ae93 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: time.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <time.h>
 #include <mlvalues.h>
index aa32f10db059c38a456c6dd48756136b0a08fcf4..e79f4ca01d0d0b0ddcf44197ee1f17924472bd21 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: times.c 7382 2006-04-16 23:28:22Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index c23eb47b526f407a6444b2039d6bdfb89d47c36b..362b477e44a25341e8f9c70018bb6651c168d709 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: truncate.c 7849 2007-02-09 13:31:15Z doligez $ */
 
 #include <sys/types.h>
 #include <mlvalues.h>
index 6f5d14fd0c3efb17c43dad6eb4572a27aa4a5fd3..edd5cfae6e2a3f9abed3eea76499268508c62e92 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: umask.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
index 8de827b0c860ace84d5627591814247deb18f79a..f327e44069d664481cffe850b3a2b682319c8443 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unix.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 type error =
     E2BIG
index 251c31ae3f6b7a84375a8c478263f977e513670f..b8a83f064020ad7df44a77789ce3e2a360776626 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unix.mli 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (** Interface to the Unix system *)
 
@@ -338,7 +338,7 @@ type stats =
     st_mtime : float;           (** Last modification time *)
     st_ctime : float;           (** Last status change time *)
   }
-(** The informations returned by the {!Unix.stat} calls. *)
+(** The information returned by the {!Unix.stat} calls. *)
 
 val stat : string -> stats
 (** Return the information for the named file. *)
index 683f15ec6752fa47d860803bd9edc85043955c1a..f69bef90701481a6d7e5f6cc9e8abd5a6a8fc866 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unixLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 (* Module [UnixLabels]: labelled Unix module *)
 
index c2295e353ee5bac09085b354d3aa132e2ae86a47..e8dc6b3766bcda55719a67b1679c3c6c780cafb6 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unixLabels.mli 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (** Interface to the Unix system.
    To use as replacement to default {!Unix} module,
@@ -338,7 +338,7 @@ type stats = Unix.stats =
     st_mtime : float;           (** Last modification time *)
     st_ctime : float;           (** Last status change time *)
   }
-(** The informations returned by the {!UnixLabels.stat} calls. *)
+(** The information returned by the {!UnixLabels.stat} calls. *)
 
 val stat : string -> stats
 (** Return the information for the named file. *)
index c6eaf706c5502c3e58cc1533da13e75012ae84bd..a471f9e459a0b1cf51452cab5ecfe024e1102e59 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: unixsupport.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 84179f43f31d14ec0e857c3060aa519e8564af5b..55c21f5200cf46e957d93a1bc799ec9a40664a1b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: unixsupport.h 7045 2005-09-06 12:38:32Z doligez $ */
 
 #ifdef HAS_UNISTD
 #include <unistd.h>
index 1d956758b305b3f0c4d73a2de8b9d5e26dadb845..f1c9a0587544a4a8b9b06f6a5317ca3ef4cb1068 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: unlink.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index da2913570a359a25b8e90ab2d331594c1a54a7f6..c424c2f46b41e5439793d0eba29c037a809b5676 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: utimes.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <fail.h>
 #include <mlvalues.h>
index 486d06af7b207a578e844491154fe8a5911bb1ed..d44d6ad23051ff9927a03e93bf50aba8064c4eca 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: wait.c 6845 2005-04-17 08:23:51Z xleroy $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 9ddf74e3d5c05bebd714daa6b64b41174ce7e187..8555457f54ee823f7b273a43812fccb3c401c485 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: write.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <errno.h>
 #include <string.h>
diff --git a/otherlibs/win32graph/.cvsignore b/otherlibs/win32graph/.cvsignore
new file mode 100644 (file)
index 0000000..090a9a2
--- /dev/null
@@ -0,0 +1,2 @@
+graphics.ml
+graphics.mli
index 12e3d23925b11b77ad07c2b28a75c3b7a68ab47f..92f244d52c278fa63b22e465893c8f747a778ab7 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 8477 2007-11-06 15:16:56Z frisch $
 
 LIBNAME=graphics
 COBJS=open.$(O) draw.$(O) events.$(O) dib.$(O)
index cbf4725a4310d06659b36035d30066171a20265e..e54357d565effc2759d512557f7cb68c69792f30 100644 (file)
@@ -10,7 +10,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dib.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 //-----------------------------------------------------------------------------
 // DIB.C
index 62710ec09d1f895b054016504f3ae88459d76cb0..ff7ce76fb719dd329400e09aed2163f702d21c65 100644 (file)
@@ -10,7 +10,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: draw.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <math.h>
 #include "mlvalues.h"
index 9e0791c389e8a35e5e1a858423b09a965d51c350..e9482206987abcd37bc75ad7fb282c682a143c61 100755 (executable)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: events.c 6553 2004-07-13 12:25:21Z xleroy $ */
 
 #include "mlvalues.h"
 #include "alloc.h"
index 6c32f15df690785ea2ba3f0e7cb4451617a19dfc..6fc2448d521d6be69cd842a943909f3bac9343c7 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: libgraph.h 6553 2004-07-13 12:25:21Z xleroy $ */
 
 #include <stdio.h>
 #include <windows.h>
index 2797bc669a6aa2d774de923ba1e911f7da71aad4..7bef328c495e16855854422a44bf874d262524a8 100644 (file)
@@ -10,7 +10,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: open.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <fcntl.h>
 #include <signal.h>
index 9aaa7161dd6caeb67769a494c3d75ffc032f7b3c..e85bbd9af2fce193f8f201ab7ce02b2f6084100c 100644 (file)
@@ -1,3 +1,27 @@
 unixLabels.ml*
 unix.mli
-unix.lib
\ No newline at end of file
+unix.lib
+access.c
+addrofstr.c
+chdir.c
+chmod.c
+cst2constr.c
+cstringv.c
+envir.c
+execv.c
+execve.c
+execvp.c
+exit.c
+getcwd.c
+gethost.c
+gethostname.c
+getproto.c
+getserv.c
+gmtime.c
+putenv.c
+rmdir.c
+socketaddr.c
+strofaddr.c
+time.c
+unlink.c
+utimes.c
index 1fd635a7c962d0364822bb40b32a35c98f3adf29..5fa26cfca85f5535d084b9f43a78547d444710ae 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 10442 2010-05-20 09:40:41Z xleroy $
 
 # Files in this directory
 WIN_FILES = accept.c bind.c channels.c close.c \
@@ -43,7 +43,7 @@ LINKOPTS=-cclib $(WSOCKLIB)
 LDOPTS=-ldopt $(WSOCKLIB)
 EXTRACAMLFLAGS=-nolabels
 EXTRACFLAGS=-I../unix
-HEADERS=unixsupport.h
+HEADERS=unixsupport.h socketaddr.h
 
 
 include ../Makefile.nt
index 1d54b89b327807f16cffc405abf0933e6e5c00aa..3564e6d2266ba32052f4110cf78a6af8afca47b9 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: accept.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index fca969489016308a2fd2f38537bf41e21ef6fb3d..92abb85a4b6f8f8351c930812454e130fbe911d1 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: bind.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 1c2cd2734afd0deea866017625f4d04f4f969dfd..2ff62e7ff41e5fac3a31210429dc523731d5b65a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: channels.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 48cd60e7aaff5562e82678478c506900b87f470b..4890ae0b088da4db5e47bcb748cede5147eb3ed6 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: close.c 4765 2002-04-30 15:00:48Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 5b2c4ece329eb6411a33980881a75ccd8842f71b..69913608ec4b7ff8f51fcbcb8177d7ffd6c32f5c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: close_on.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include <windows.h>
index 198d02e2de507a6ba381fda7a947e9cd9f898490..a361d2adc633ddfa529706a41cc89a9959657afc 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: connect.c 7697 2006-10-18 08:26:54Z xleroy $ */
 
 #include <mlvalues.h>
 #include <signals.h>
index 042eaef9e72999944752606b5d91a51bf3181338..bd4dfe3336a37e93160ade5c17af192d7b57009d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: createprocess.c 9319 2009-07-20 11:51:50Z doligez $ */
 
 #include <windows.h>
 #include <mlvalues.h>
index 2668e75bf14405bd6ede17f2174e00e06f59c634..5db795e83a5606d86c2012bfbb029bcda9a5dd14 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dup.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 3f6d37e76de46255e04203c7767f61641567220a..848c1869b8e5e63d23213af4ca1583b7d435f65b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: dup2.c 7630 2006-09-21 09:43:58Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 9ce9dddb2aee8afab384b11232a28f21a873175d..e6ba25a59046d1b03e3b8c9a00bfa341539d4e71 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: errmsg.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <stdio.h>
 #include <errno.h>
index 9aeb4c21b09e37886f031d2f58e139f6c22d5c5d..ff1e634c5c575730a5575771f87edb370baf6264 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getpeername.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 0892f8f95c7b571248ead8c75aae8c3958606ce4..92ba55afa9656367414057632843432070283cd4 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getpid.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 88487a43bdf48c2e8895ff9d85a6d40f9a98801d..5b6ea300e5d1a275869544c230df62cebc968434 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: getsockname.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index f1313f06179e5f40c40caa7baff5241671dfd63d..2b1eed110b52207b621b7c411967c996b12d55d1 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: gettimeofday.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index 8921434234d2aa62e505b1d42e847fbfbc594bc3..2737e048ba2376c0723ddeaa33eabe4cf81822fd 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: link.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <windows.h>
 #include <mlvalues.h>
index 20789e1a4c7ae85a3d9a4a675a33c3652f5fb21e..cd61bdbde5fc1c30c2f29fca61059cd983513433 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: listen.c 4765 2002-04-30 15:00:48Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 524f9516b63af076a23246ad3fd92e8f2b273399..f7d899e2b71b10d06343815fb6aa556b6c5d17c8 100644 (file)
@@ -13,7 +13,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: lockf.c 9153 2008-12-03 18:09:09Z doligez $ */
 
 #include <errno.h>
 #include <fcntl.h>
index 9619fcc92aa9dc37dc33f418f4d8b0d15847bc3c..c19fb79d71d1f818e9e0c47871a19c13a4ca4fe7 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: lseek.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index aae54783bc3ac73b13eb143c7edbe98518204ac0..d2895253fda4fe288c04219a4d8b2a1b783769ef 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: mkdir.c 4144 2001-12-07 13:41:02Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 733a79d89f0b0b51a878fa9a210351077f4e8940..ab5f2aa0914fce53fa13b4300079b058469feacd 100755 (executable)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: nonblock.c 10467 2010-05-25 13:01:06Z xleroy $ */
 
 #include <mlvalues.h>
 #include <signals.h>
@@ -26,6 +26,7 @@ CAMLprim value unix_set_nonblock(socket)
     win32_maperr(WSAGetLastError());
     uerror("unix_set_nonblock", Nothing);
   }
+  Flags_fd_val(socket) = Flags_fd_val(socket) | FLAGS_FD_IS_BLOCKING;
   return Val_unit;
 }
 
@@ -38,5 +39,6 @@ CAMLprim value unix_clear_nonblock(socket)
     win32_maperr(WSAGetLastError());
     uerror("unix_clear_nonblock", Nothing);
   }
+  Flags_fd_val(socket) = Flags_fd_val(socket) & ~FLAGS_FD_IS_BLOCKING;
   return Val_unit;
 }
index f2f334bbb48000e65679f4c96d4d3f1f606cff37..60fa80bdbd3d222f8812606a0390157ae073aa43 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: open.c 8768 2008-01-11 16:13:18Z doligez $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index afacd3e17e26031599fdc328cc427726842e1526..84d379ae51decb8c3c575803902619ff672fc0bf 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: pipe.c 9270 2009-05-20 11:52:42Z doligez $ */
 
 #include <mlvalues.h>
 #include <memory.h>
index 67882eb77a094f494109e2585814b2e0c630dd00..2319cb677440c18fd7f4de947171e173c10af1f6 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: read.c 7697 2006-10-18 08:26:54Z xleroy $ */
 
 #include <string.h>
 #include <mlvalues.h>
index 9ab43fca8951febc1314175afbd26e043e7f7427..8f3aea17b8b4da6e2501843af67ca7d1b116b898 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: rename.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <stdio.h>
 #include <mlvalues.h>
index efe3a32e8e596c444bd35e91d3683b603a512ca8..1c2b4ddc836a6465032a24dc5babc474efc81c62 100644 (file)
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: select.c 10467 2010-05-25 13:01:06Z xleroy $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
 #include <memory.h>
+#include <fail.h>
 #include <signals.h>
 #include <winsock2.h>
 #include <windows.h>
+#include <stdio.h>
 #include "unixsupport.h"
 #include "windbug.h"
 #include "winworker.h"
@@ -29,7 +31,7 @@
  * It takes the following parameters into account:
  * - limitation on number of objects is mostly due to limitation
  *   a WaitForMultipleObjects
- * - there is always an event "hStop" to watch
+ * - there is always an event "hStop" to watch 
  *
  * This lead to pick the following value as the biggest possible
  * value
@@ -70,9 +72,7 @@ void handle_set_add (LPSELECTHANDLESET hds, HANDLE hdl)
     hds->nLast++;
   }
 
-#ifdef DBUG
-  dbug_print("Adding handle %x to set %x", hdl, hds);
-#endif
+  DEBUG_PRINT("Adding handle %x to set %x", hdl, hds);
 }
 
 BOOL handle_set_mem (LPSELECTHANDLESET hds, HANDLE hdl)
@@ -115,7 +115,7 @@ typedef enum _SELECTHANDLETYPE {
 typedef enum _SELECTMODE {
   SELECT_MODE_NONE = 0,
   SELECT_MODE_READ,
-  SELECT_MODE_WRITE,
+  SELECT_MODE_WRITE, 
   SELECT_MODE_EXCEPT,
 } SELECTMODE;
 
@@ -138,17 +138,18 @@ typedef enum _SELECTTYPE {
 typedef struct _SELECTRESULT {
   LIST       lst;
   SELECTMODE EMode;
-  LPVOID     lpOrig;
+  int        lpOrigIdx;
 } SELECTRESULT;
 
 typedef SELECTRESULT *LPSELECTRESULT;
 
 /* Data structure for query */
 typedef struct _SELECTQUERY {
-  LIST       lst;
-  SELECTMODE EMode;
-  HANDLE     hFileDescr;
-  LPVOID     lpOrig;
+  LIST         lst;
+  SELECTMODE   EMode;
+  HANDLE       hFileDescr;
+  int          lpOrigIdx;
+  unsigned int uFlagsFd; /* Copy of filedescr->flags_fd */
 } SELECTQUERY;
 
 typedef SELECTQUERY *LPSELECTQUERY;
@@ -188,24 +189,18 @@ LPSELECTDATA select_data_new (LPSELECTDATA lpSelectData, SELECTTYPE EType)
   /* Allocate the data structure */
   LPSELECTDATA res;
   DWORD        i;
-
-  if (!HeapLock(GetProcessHeap()))
-  {
-    win32_maperr(GetLastError());
-    uerror("select", Nothing);
-  }
-  res = (LPSELECTDATA)HeapAlloc(GetProcessHeap(), 0, sizeof(SELECTDATA));
-  HeapUnlock(GetProcessHeap());
+  
+  res = (LPSELECTDATA)caml_stat_alloc(sizeof(SELECTDATA)); 
 
   /* Init common data */
   list_init((LPLIST)res);
   list_next_set((LPLIST)res, (LPLIST)lpSelectData);
   res->EType         = EType;
   res->nResultsCount = 0;
-
+        
 
   /* Data following are dedicated to APC like call, they
-     will be initialized if required. For now they are set to
+     will be initialized if required. For now they are set to 
      invalid values.
      */
   res->funcWorker    = NULL;
@@ -222,9 +217,7 @@ void select_data_free (LPSELECTDATA lpSelectData)
 {
   DWORD i;
 
-#ifdef DBUG
-  dbug_print("Freeing data of %x", lpSelectData);
-#endif
+  DEBUG_PRINT("Freeing data of %x", lpSelectData);
 
   /* Free APC related data, if they exists */
   if (lpSelectData->lpWorker != NULL)
@@ -237,17 +230,11 @@ void select_data_free (LPSELECTDATA lpSelectData)
   lpSelectData->nResultsCount = 0;
   lpSelectData->nQueriesCount = 0;
 
-  if (!HeapLock(GetProcessHeap()))
-  {
-    win32_maperr(GetLastError());
-    uerror("select_data_free", Nothing);
-  };
-  HeapFree(GetProcessHeap(), 0, lpSelectData);
-  HeapUnlock(GetProcessHeap());
+  caml_stat_free(lpSelectData);
 }
 
 /* Add a result to select data, return zero if something goes wrong. */
-DWORD select_data_result_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, LPVOID lpOrig)
+DWORD select_data_result_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, int lpOrigIdx)
 {
   DWORD res;
   DWORD i;
@@ -257,7 +244,7 @@ DWORD select_data_result_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, LPVOI
   {
     i = lpSelectData->nResultsCount;
     lpSelectData->aResults[i].EMode  = EMode;
-    lpSelectData->aResults[i].lpOrig = lpOrig;
+    lpSelectData->aResults[i].lpOrigIdx = lpOrigIdx;
     lpSelectData->nResultsCount++;
     res = 1;
   }
@@ -266,10 +253,14 @@ DWORD select_data_result_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, LPVOI
 }
 
 /* Add a query to select data, return zero if something goes wrong */
-DWORD select_data_query_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, HANDLE hFileDescr, LPVOID lpOrig)
+DWORD select_data_query_add (LPSELECTDATA lpSelectData, 
+                             SELECTMODE EMode, 
+                             HANDLE hFileDescr, 
+                             int lpOrigIdx,
+                             unsigned int uFlagsFd)
 {
   DWORD res;
-  DWORD i;
+  DWORD i; 
 
   res = 0;
   if (lpSelectData->nQueriesCount < MAXIMUM_SELECT_OBJECTS)
@@ -277,7 +268,8 @@ DWORD select_data_query_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, HANDLE
     i = lpSelectData->nQueriesCount;
     lpSelectData->aQueries[i].EMode      = EMode;
     lpSelectData->aQueries[i].hFileDescr = hFileDescr;
-    lpSelectData->aQueries[i].lpOrig     = lpOrig;
+    lpSelectData->aQueries[i].lpOrigIdx  = lpOrigIdx;
+    lpSelectData->aQueries[i].uFlagsFd   = uFlagsFd;
     lpSelectData->nQueriesCount++;
     res = 1;
   }
@@ -286,25 +278,22 @@ DWORD select_data_query_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, HANDLE
 }
 
 /* Search for a job that has available query slots and that match provided type.
- * If none is found, create a new one. Return the corresponding SELECTDATA, and
+ * If none is found, create a new one. Return the corresponding SELECTDATA, and 
  * update provided SELECTDATA head, if required.
  */
-LPSELECTDATA select_data_job_search (LPSELECTDATA *lppSelectData,
-                                     SELECTTYPE EType)
+LPSELECTDATA select_data_job_search (LPSELECTDATA *lppSelectData, SELECTTYPE EType)
 {
   LPSELECTDATA res;
-
+  
   res = NULL;
-
+  
   /* Search for job */
-#ifdef DBUG
-  dbug_print("Searching an available job for type %d", EType);
-#endif
+  DEBUG_PRINT("Searching an available job for type %d", EType);
   res = *lppSelectData;
   while (
       res != NULL
       && !(
-        res->EType == EType
+        res->EType == EType 
         && res->nQueriesCount < MAXIMUM_SELECT_OBJECTS
         )
       )
@@ -315,9 +304,7 @@ LPSELECTDATA select_data_job_search (LPSELECTDATA *lppSelectData,
   /* No matching job found, create one */
   if (res == NULL)
   {
-#ifdef DBUG
-    dbug_print("No job for type %d found, create one", EType);
-#endif
+    DEBUG_PRINT("No job for type %d found, create one", EType);
     res = select_data_new(*lppSelectData, EType);
     *lppSelectData = res;
   }
@@ -337,10 +324,8 @@ void read_console_poll(HANDLE hStop, void *_data)
   DWORD n;
   LPSELECTDATA  lpSelectData;
   LPSELECTQUERY lpQuery;
-
-#ifdef DBUG
-  dbug_print("Waiting for data on console");
-#endif
+  
+  DEBUG_PRINT("Waiting for data on console");
 
   record;
   waitRes = 0;
@@ -351,7 +336,7 @@ void read_console_poll(HANDLE hStop, void *_data)
   events[0] = hStop;
   events[1] = lpQuery->hFileDescr;
   while (lpSelectData->EState == SELECT_STATE_NONE)
-  {
+  {    
     waitRes = WaitForMultipleObjects(2, events, FALSE, INFINITE);
     if (waitRes == WAIT_OBJECT_0 || check_error(lpSelectData, waitRes == WAIT_FAILED))
     {
@@ -368,11 +353,11 @@ void read_console_poll(HANDLE hStop, void *_data)
       record.Event.KeyEvent.bKeyDown &&
       record.Event.KeyEvent.uChar.AsciiChar != 0)
     {
-      select_data_result_add(lpSelectData, lpQuery->EMode, lpQuery->lpOrig);
+      select_data_result_add(lpSelectData, lpQuery->EMode, lpQuery->lpOrigIdx);
       lpSelectData->EState = SELECT_STATE_SIGNALED;
       break;
     }
-    else
+    else 
     {
       /* discard everything else and try again */
       if (check_error(lpSelectData, ReadConsoleInput(lpQuery->hFileDescr, &record, 1, &n) == 0))
@@ -384,13 +369,17 @@ void read_console_poll(HANDLE hStop, void *_data)
 }
 
 /* Add a function to monitor console input */
-LPSELECTDATA read_console_poll_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, HANDLE hFileDescr, LPVOID lpOrig)
+LPSELECTDATA read_console_poll_add (LPSELECTDATA lpSelectData, 
+                                    SELECTMODE EMode, 
+                                    HANDLE hFileDescr, 
+                                    int lpOrigIdx,
+                                    unsigned int uFlagsFd)
 {
   LPSELECTDATA res;
 
   res = select_data_new(lpSelectData, SELECT_TYPE_CONSOLE_READ);
   res->funcWorker = read_console_poll;
-  select_data_query_add(res, SELECT_MODE_READ, hFileDescr, lpOrig);
+  select_data_query_add(res, SELECT_MODE_READ, hFileDescr, lpOrigIdx, uFlagsFd);
 
   return res;
 }
@@ -402,81 +391,93 @@ LPSELECTDATA read_console_poll_add (LPSELECTDATA lpSelectData, SELECTMODE EMode,
 /* Monitor a pipe for input */
 void read_pipe_poll (HANDLE hStop, void *_data)
 {
+  DWORD         res;
   DWORD         event;
   DWORD         n;
   LPSELECTQUERY iterQuery;
   LPSELECTDATA  lpSelectData;
   DWORD         i;
+  DWORD         wait;
 
   /* Poll pipe */
   event = 0;
   n = 0;
   lpSelectData = (LPSELECTDATA)_data;
+  wait = 1;
 
-#ifdef DBUG
-  dbug_print("Checking data pipe");
-#endif
+  DEBUG_PRINT("Checking data pipe");
   while (lpSelectData->EState == SELECT_STATE_NONE)
   {
     for (i = 0; i < lpSelectData->nQueriesCount; i++)
     {
       iterQuery = &(lpSelectData->aQueries[i]);
-      if (check_error(
-            lpSelectData,
-            PeekNamedPipe(
-              iterQuery->hFileDescr,
-              NULL,
-              0,
-              NULL,
-              &n,
-              NULL) == 0))
+      res = PeekNamedPipe(
+          iterQuery->hFileDescr, 
+          NULL, 
+          0, 
+          NULL, 
+          &n, 
+          NULL);
+      if (check_error(lpSelectData, 
+            (res == 0) && 
+            (GetLastError() != ERROR_BROKEN_PIPE)))
       {
         break;
       };
 
-      if (n > 0)
+      if ((n > 0) || (res == 0))
       {
         lpSelectData->EState = SELECT_STATE_SIGNALED;
-        select_data_result_add(lpSelectData, iterQuery->EMode, iterQuery->lpOrig);
+        select_data_result_add(lpSelectData, iterQuery->EMode, iterQuery->lpOrigIdx);
       };
     };
 
     /* Alas, nothing except polling seems to work for pipes.
-       Check the state & stop_worker_event every 10 ms
+       Check the state & stop_worker_event every 10 ms 
      */
     if (lpSelectData->EState == SELECT_STATE_NONE)
     {
-      event = WaitForSingleObject(hStop, 10);
+      event = WaitForSingleObject(hStop, wait);
+
+      /* Fast start: begin to wait 1, 2, 4, 8 and then 10 ms.
+       * If we are working with the output of a program there is
+       * a chance that one of the 4 first calls succeed.
+       */
+      wait = 2 * wait;
+      if (wait > 10) 
+      {
+        wait = 10;
+      };
       if (event == WAIT_OBJECT_0 || check_error(lpSelectData, event == WAIT_FAILED))
       {
         break;
       }
     }
   }
-#ifdef DBUG
-  dbug_print("Finish checking data on pipe");
-#endif
+  DEBUG_PRINT("Finish checking data on pipe");
 }
 
 /* Add a function to monitor pipe input */
-LPSELECTDATA read_pipe_poll_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, HANDLE hFileDescr, LPVOID lpOrig)
+LPSELECTDATA read_pipe_poll_add (LPSELECTDATA lpSelectData, 
+                                 SELECTMODE EMode, 
+                                 HANDLE hFileDescr, 
+                                 int lpOrigIdx,
+                                 unsigned int uFlagsFd)
 {
   LPSELECTDATA res;
   LPSELECTDATA hd;
-
+  
   hd = lpSelectData;
   /* Polling pipe is a non blocking operation by default. This means that each
-     worker can handle many pipe. We begin to try to find a worker that is
+     worker can handle many pipe. We begin to try to find a worker that is 
      polling pipe, but for which there is under the limit of pipe per worker.
      */
-#ifdef DBUG
-  dbug_print("Searching an available worker handling pipe");
-#endif
+  DEBUG_PRINT("Searching an available worker handling pipe");
   res = select_data_job_search(&hd, SELECT_TYPE_PIPE_READ);
-
+  
   /* Add a new pipe to poll */
   res->funcWorker = read_pipe_poll;
-  select_data_query_add(res, EMode, hFileDescr, lpOrig);
+  select_data_query_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
 
   return hd;
 }
@@ -515,24 +516,25 @@ void socket_poll (HANDLE hStop, void *_data)
         maskEvents = FD_OOB;
         break;
     }
+
     check_error(lpSelectData,
         WSAEventSelect(
-          (SOCKET)(iterQuery->hFileDescr),
-          aEvents[nEvents],
+          (SOCKET)(iterQuery->hFileDescr), 
+          aEvents[nEvents], 
           maskEvents) == SOCKET_ERROR);
   }
-
+  
   /* Add stop event */
   aEvents[nEvents]  = hStop;
   nEvents++;
 
   if (lpSelectData->nError == 0)
   {
-    check_error(lpSelectData,
+    check_error(lpSelectData, 
         WaitForMultipleObjects(
-          nEvents,
-          aEvents,
-          FALSE,
+          nEvents, 
+          aEvents, 
+          FALSE, 
           INFINITE) == WAIT_FAILED);
   };
 
@@ -543,20 +545,27 @@ void socket_poll (HANDLE hStop, void *_data)
       iterQuery = &(lpSelectData->aQueries[i]);
       if (WaitForSingleObject(aEvents[i], 0) == WAIT_OBJECT_0)
       {
-#ifdef DBUG
-        dbug_print("Socket %d has pending events", (i - 1));
-#endif
+        DEBUG_PRINT("Socket %d has pending events", (i - 1));
         if (iterQuery != NULL)
         {
-          select_data_result_add(lpSelectData, iterQuery->EMode, iterQuery->lpOrig);
+          select_data_result_add(lpSelectData, iterQuery->EMode, iterQuery->lpOrigIdx);
         }
       }
       /* WSAEventSelect() automatically sets socket to nonblocking mode.
          Restore the blocking one. */
-      iMode = 0;
-      check_error(lpSelectData,
-        WSAEventSelect((SOCKET)(iterQuery->hFileDescr), aEvents[i], 0) != 0 ||
-        ioctlsocket((SOCKET)(iterQuery->hFileDescr), FIONBIO, &iMode) != 0);
+      if (iterQuery->uFlagsFd & FLAGS_FD_IS_BLOCKING)
+      {
+        DEBUG_PRINT("Restore a blocking socket");
+        iMode = 1;
+        check_error(lpSelectData,
+          WSAEventSelect((SOCKET)(iterQuery->hFileDescr), aEvents[i], 0) != 0 ||
+          ioctlsocket((SOCKET)(iterQuery->hFileDescr), FIONBIO, &iMode) != 0);
+      }
+      else
+      {
+        check_error(lpSelectData,
+          WSAEventSelect((SOCKET)(iterQuery->hFileDescr), aEvents[i], 0) != 0);
+      };
 
       CloseHandle(aEvents[i]);
       aEvents[i] = INVALID_HANDLE_VALUE;
@@ -565,30 +574,28 @@ void socket_poll (HANDLE hStop, void *_data)
 }
 
 /* Add a function to monitor socket */
-LPSELECTDATA socket_poll_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, HANDLE hFileDescr, LPVOID lpOrig)
+LPSELECTDATA socket_poll_add (LPSELECTDATA lpSelectData, 
+                              SELECTMODE EMode, 
+                              HANDLE hFileDescr, 
+                              int lpOrigIdx,
+                              unsigned int uFlagsFd)
 {
   LPSELECTDATA res;
   LPSELECTDATA hd;
-
+  
   hd = lpSelectData;
   /* Polling socket can be done mulitple handle at the same time. You just
      need one worker to use it. Try to find if there is already a worker
      handling this kind of request.
      */
-#ifdef DBUG
-  dbug_print("Scanning list of worker to find one that already handle socket");
-#endif
+  DEBUG_PRINT("Scanning list of worker to find one that already handle socket");
   res = select_data_job_search(&hd, SELECT_TYPE_SOCKET);
-
+  
   /* Add a new socket to poll */
   res->funcWorker = socket_poll;
-#ifdef DBUG
-  dbug_print("Add socket %x to worker", hFileDescr);
-#endif
-  select_data_query_add(res, EMode, hFileDescr, lpOrig);
-#ifdef DBUG
-  dbug_print("Socket %x added", hFileDescr);
-#endif
+  DEBUG_PRINT("Add socket %x to worker", hFileDescr);
+  select_data_query_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
+  DEBUG_PRINT("Socket %x added", hFileDescr);
 
   return hd;
 }
@@ -598,18 +605,22 @@ LPSELECTDATA socket_poll_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, HANDL
 /***********************/
 
 /* Add a static result */
-LPSELECTDATA static_poll_add (LPSELECTDATA lpSelectData, SELECTMODE EMode, HANDLE hFileDescr, LPVOID lpOrig)
+LPSELECTDATA static_poll_add (LPSELECTDATA lpSelectData, 
+                              SELECTMODE EMode, 
+                              HANDLE hFileDescr, 
+                              int lpOrigIdx,
+                              unsigned int uFlagsFd)
 {
   LPSELECTDATA res;
   LPSELECTDATA hd;
-
+  
   /* Look for an already initialized static element */
   hd = lpSelectData;
   res = select_data_job_search(&hd, SELECT_TYPE_STATIC);
-
+  
   /* Add a new query/result */
-  select_data_query_add(res, EMode, hFileDescr, lpOrig);
-  select_data_result_add(res, EMode, lpOrig);
+  select_data_query_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
+  select_data_result_add(res, EMode, lpOrigIdx);
 
   return hd;
 }
@@ -637,7 +648,7 @@ static SELECTHANDLETYPE get_handle_type(value fd)
   {
     switch(GetFileType(Handle_val(fd)))
     {
-      case FILE_TYPE_DISK:
+      case FILE_TYPE_DISK: 
         res = SELECT_HANDLE_DISK;
         break;
 
@@ -662,120 +673,99 @@ static SELECTHANDLETYPE get_handle_type(value fd)
 }
 
 /* Choose what to do with given data */
-LPSELECTDATA select_data_dispatch (LPSELECTDATA lpSelectData, SELECTMODE EMode, value fd)
+LPSELECTDATA select_data_dispatch (LPSELECTDATA lpSelectData, SELECTMODE EMode, value fd, int lpOrigIdx)
 {
   LPSELECTDATA    res;
   HANDLE          hFileDescr;
-  void           *lpOrig;
   struct sockaddr sa;
   int             sa_len;
   BOOL            alreadyAdded;
+  unsigned int    uFlagsFd;
 
   CAMLparam1(fd);
 
   res          = lpSelectData;
   hFileDescr   = Handle_val(fd);
-  lpOrig       = (void *)fd;
   sa_len       = sizeof(sa);
   alreadyAdded = FALSE;
+  uFlagsFd     = Flags_fd_val(fd);
 
-#ifdef DBUG
-  dbug_print("Begin dispatching handle %x", hFileDescr);
-#endif
+  DEBUG_PRINT("Begin dispatching handle %x", hFileDescr);
 
-#ifdef DBUG
-  dbug_print("Waiting for %d on handle %x", EMode, hFileDescr);
-#endif
-
-  /* There is only 2 way to have except mode: transmission of OOB data through
+  DEBUG_PRINT("Waiting for %d on handle %x", EMode, hFileDescr);
+  
+  /* There is only 2 way to have except mode: transmission of OOB data through 
      a socket TCP/IP and through a strange interaction with a TTY.
      With windows, we only consider the TCP/IP except condition
   */
   switch(get_handle_type(fd))
   {
     case SELECT_HANDLE_DISK:
-#ifdef DBUG
-      dbug_print("Handle %x is a disk handle", hFileDescr);
-#endif
+      DEBUG_PRINT("Handle %x is a disk handle", hFileDescr);
       /* Disk is always ready in read/write operation */
       if (EMode == SELECT_MODE_READ || EMode == SELECT_MODE_WRITE)
       {
-        res = static_poll_add(res, EMode, hFileDescr, lpOrig);
+        res = static_poll_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
       };
       break;
 
     case SELECT_HANDLE_CONSOLE:
-#ifdef DBUG
-      dbug_print("Handle %x is a console handle", hFileDescr);
-#endif
+      DEBUG_PRINT("Handle %x is a console handle", hFileDescr);
       /* Console is always ready in write operation, need to check for read. */
       if (EMode == SELECT_MODE_READ)
       {
-        res = read_console_poll_add(res, EMode, hFileDescr, lpOrig);
+        res = read_console_poll_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
       }
       else if (EMode == SELECT_MODE_WRITE)
       {
-        res = static_poll_add(res, EMode, hFileDescr, lpOrig);
+        res = static_poll_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
       };
       break;
 
     case SELECT_HANDLE_PIPE:
-#ifdef DBUG
-      dbug_print("Handle %x is a pipe handle", hFileDescr);
-#endif
+      DEBUG_PRINT("Handle %x is a pipe handle", hFileDescr);
       /* Console is always ready in write operation, need to check for read. */
       if (EMode == SELECT_MODE_READ)
       {
-#ifdef DBUG
-        dbug_print("Need to check availability of data on pipe");
-#endif
-        res = read_pipe_poll_add(res, EMode, hFileDescr, lpOrig);
+        DEBUG_PRINT("Need to check availability of data on pipe");
+        res = read_pipe_poll_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
       }
       else if (EMode == SELECT_MODE_WRITE)
       {
-#ifdef DBUG
-        dbug_print("No need to check availability of data on pipe, write operation always possible");
-#endif
-        res = static_poll_add(res, EMode, hFileDescr, lpOrig);
+        DEBUG_PRINT("No need to check availability of data on pipe, write operation always possible");
+        res = static_poll_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
       };
       break;
 
     case SELECT_HANDLE_SOCKET:
-#ifdef DBUG
-      dbug_print("Handle %x is a socket handle", hFileDescr);
-#endif
+      DEBUG_PRINT("Handle %x is a socket handle", hFileDescr);
       if (getsockname((SOCKET)hFileDescr, &sa, &sa_len) == SOCKET_ERROR)
       {
         if (WSAGetLastError() == WSAEINVAL)
         {
           /* Socket is not bound */
-#ifdef DBUG
-          dbug_print("Socket is not connected");
-#endif
+          DEBUG_PRINT("Socket is not connected");
           if (EMode == SELECT_MODE_WRITE || EMode == SELECT_MODE_READ)
           {
-            res = static_poll_add(res, EMode, hFileDescr, lpOrig);
+            res = static_poll_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
             alreadyAdded = TRUE;
           }
         }
       }
       if (!alreadyAdded)
       {
-        res = socket_poll_add(res, EMode, hFileDescr, lpOrig);
+        res = socket_poll_add(res, EMode, hFileDescr, lpOrigIdx, uFlagsFd);
       }
       break;
 
     default:
-#ifdef DBUG
-      dbug_print("Handle %x is unknown", hFileDescr);
-#endif
-      caml_failwith("Unknown handle");
+      DEBUG_PRINT("Handle %x is unknown", hFileDescr);
+      win32_maperr(ERROR_INVALID_HANDLE);
+      uerror("select", Nothing);
       break;
   };
 
-#ifdef DBUG
-  dbug_print("Finish dispatching handle %x", hFileDescr);
-#endif
+  DEBUG_PRINT("Finish dispatching handle %x", hFileDescr);
 
   CAMLreturnT(LPSELECTDATA, res);
 }
@@ -793,15 +783,47 @@ static DWORD caml_list_length (value lst)
   CAMLreturnT(DWORD, res);
 }
 
+static value find_handle(LPSELECTRESULT iterResult, value readfds, value writefds, value exceptfds)
+{
+  CAMLparam3(readfds, writefds, exceptfds);
+  CAMLlocal2(result, list);
+  int i;
+
+  switch( iterResult->EMode )  
+  {
+    case SELECT_MODE_READ:
+      list = readfds;
+      break;
+    case SELECT_MODE_WRITE:
+      list = writefds;
+      break;
+    case SELECT_MODE_EXCEPT:
+      list = exceptfds;
+      break;
+  };
+
+  for(i=0; list != Val_unit && i < iterResult->lpOrigIdx; ++i ) 
+  {
+    list = Field(list, 1);
+  }
+
+  if (list == Val_unit) 
+    failwith ("select.c: original file handle not found");
+
+  result = Field(list, 0);
+
+  CAMLreturn( result );
+}
+
 #define MAX(a, b) ((a) > (b) ? (a) : (b))
 
 CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value timeout)
-{
+{  
   /* Event associated to handle */
   DWORD   nEventsCount;
   DWORD   nEventsMax;
   HANDLE *lpEventsDone;
-
+  
   /* Data for all handles */
   LPSELECTDATA lpSelectData;
   LPSELECTDATA iterSelectData;
@@ -838,9 +860,7 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
   CAMLlocal5 (read_list, write_list, except_list, res, l);
   CAMLlocal1 (fd);
 
-#ifdef DBUG
-  dbug_print("in select");
-#endif
+  DEBUG_PRINT("in select");
 
   nEventsCount   = 0;
   nEventsMax     = 0;
@@ -856,23 +876,12 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
   exceptfds_len  = caml_list_length(exceptfds);
   hdsMax         = MAX(readfds_len, MAX(writefds_len, exceptfds_len));
 
-  if (!HeapLock(GetProcessHeap()))
-  {
-    win32_maperr(GetLastError());
-    uerror("select", Nothing);
-  }
-  hdsData = (HANDLE *)HeapAlloc(
-      GetProcessHeap(),
-      0,
-      sizeof(HANDLE) * hdsMax);
-  HeapUnlock(GetProcessHeap());
+  hdsData = (HANDLE *)caml_stat_alloc(sizeof(HANDLE) * hdsMax);
 
   if (Double_val(timeout) >= 0.0)
   {
     milliseconds = 1000 * Double_val(timeout);
-#ifdef DBUG
-    dbug_print("Will wait %d ms", milliseconds);
-#endif
+    DEBUG_PRINT("Will wait %d ms", milliseconds);
   }
   else
   {
@@ -881,82 +890,65 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
 
 
   /* Create list of select data, based on the different list of fd to watch */
-#ifdef DBUG
-  dbug_print("Dispatch read fd");
-#endif
+  DEBUG_PRINT("Dispatch read fd");
   handle_set_init(&hds, hdsData, hdsMax);
+  i=0;
   for (l = readfds; l != Val_int(0); l = Field(l, 1))
   {
     fd = Field(l, 0);
     if (!handle_set_mem(&hds, Handle_val(fd)))
     {
       handle_set_add(&hds, Handle_val(fd));
-      lpSelectData = select_data_dispatch(lpSelectData, SELECT_MODE_READ, fd);
+      lpSelectData = select_data_dispatch(lpSelectData, SELECT_MODE_READ, fd, i++);
     }
     else
     {
-#ifdef DBUG
-      dbug_print("Discarding handle %x which is already monitor for read", Handle_val(fd));
-#endif
+      DEBUG_PRINT("Discarding handle %x which is already monitor for read", Handle_val(fd));
     }
   }
   handle_set_reset(&hds);
 
-#ifdef DBUG
-  dbug_print("Dispatch write fd");
-#endif
+  DEBUG_PRINT("Dispatch write fd");
   handle_set_init(&hds, hdsData, hdsMax);
+  i=0;
   for (l = writefds; l != Val_int(0); l = Field(l, 1))
   {
     fd = Field(l, 0);
     if (!handle_set_mem(&hds, Handle_val(fd)))
     {
       handle_set_add(&hds, Handle_val(fd));
-      lpSelectData = select_data_dispatch(lpSelectData, SELECT_MODE_WRITE, fd);
+      lpSelectData = select_data_dispatch(lpSelectData, SELECT_MODE_WRITE, fd, i++);
     }
     else
     {
-#ifdef DBUG
-      dbug_print("Discarding handle %x which is already monitor for write", Handle_val(fd));
-#endif
+      DEBUG_PRINT("Discarding handle %x which is already monitor for write", Handle_val(fd));
     }
   }
   handle_set_reset(&hds);
 
-#ifdef DBUG
-  dbug_print("Dispatch exceptional fd");
-#endif
+  DEBUG_PRINT("Dispatch exceptional fd");
   handle_set_init(&hds, hdsData, hdsMax);
+  i=0;
   for (l = exceptfds; l != Val_int(0); l = Field(l, 1))
   {
     fd = Field(l, 0);
     if (!handle_set_mem(&hds, Handle_val(fd)))
     {
       handle_set_add(&hds, Handle_val(fd));
-      lpSelectData = select_data_dispatch(lpSelectData, SELECT_MODE_EXCEPT, fd);
+      lpSelectData = select_data_dispatch(lpSelectData, SELECT_MODE_EXCEPT, fd, i++);
     }
     else
     {
-#ifdef DBUG
-      dbug_print("Discarding handle %x which is already monitor for exceptional", Handle_val(fd));
-#endif
+      DEBUG_PRINT("Discarding handle %x which is already monitor for exceptional", Handle_val(fd));
     }
   }
   handle_set_reset(&hds);
 
   /* Building the list of handle to wait for */
-#ifdef DBUG
-  dbug_print("Building events done array");
-#endif
+  DEBUG_PRINT("Building events done array");
   nEventsMax   = list_length((LPLIST)lpSelectData);
   nEventsCount = 0;
-  if (!HeapLock(GetProcessHeap()))
-  {
-    win32_maperr(GetLastError());
-    uerror("select", Nothing);
-  }
-  lpEventsDone = (HANDLE *)HeapAlloc(GetProcessHeap(), 0, sizeof(HANDLE) * nEventsMax);
-  HeapUnlock(GetProcessHeap());
+  lpEventsDone = (HANDLE *)caml_stat_alloc(sizeof(HANDLE) * nEventsMax);
 
   iterSelectData = lpSelectData;
   while (iterSelectData != NULL)
@@ -974,22 +966,18 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
     /* Execute APC */
     if (iterSelectData->funcWorker != NULL)
     {
-      iterSelectData->lpWorker =
+      iterSelectData->lpWorker = 
         worker_job_submit(
-            iterSelectData->funcWorker,
+            iterSelectData->funcWorker, 
             (void *)iterSelectData);
-#ifdef DBUG
-      dbug_print("Job submitted to worker %x", iterSelectData->lpWorker);
-#endif
+      DEBUG_PRINT("Job submitted to worker %x", iterSelectData->lpWorker); 
       lpEventsDone[nEventsCount] = worker_job_event_done(iterSelectData->lpWorker);
       nEventsCount++;
     };
     iterSelectData = LIST_NEXT(LPSELECTDATA, iterSelectData);
   };
 
-#ifdef DBUG
-  dbug_print("Need to watch %d workers", nEventsCount);
-#endif
+  DEBUG_PRINT("Need to watch %d workers", nEventsCount);
 
   /* Processing select itself */
   enter_blocking_section();
@@ -999,9 +987,7 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
     /* Waiting for event */
     if (err == 0 && !hasStaticData)
     {
-#ifdef DBUG
-      dbug_print("Waiting for one select worker to be done");
-#endif
+      DEBUG_PRINT("Waiting for one select worker to be done");
       switch (WaitForMultipleObjects(nEventsCount, lpEventsDone, FALSE, milliseconds))
       {
         case WAIT_FAILED:
@@ -1009,23 +995,17 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
           break;
 
         case WAIT_TIMEOUT:
-#ifdef DBUG
-          dbug_print("Select timeout");
-#endif
+          DEBUG_PRINT("Select timeout");
           break;
 
         default:
-#ifdef DBUG
-          dbug_print("One worker is done");
-#endif
+          DEBUG_PRINT("One worker is done");
           break;
       };
     }
 
     /* Ordering stop to every worker */
-#ifdef DBUG
-    dbug_print("Sending stop signal to every select workers");
-#endif
+    DEBUG_PRINT("Sending stop signal to every select workers");
     iterSelectData = lpSelectData;
     while (iterSelectData != NULL)
     {
@@ -1035,10 +1015,8 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
       };
       iterSelectData = LIST_NEXT(LPSELECTDATA, iterSelectData);
     };
-
-#ifdef DBUG
-    dbug_print("Waiting for every select worker to be done");
-#endif
+      
+    DEBUG_PRINT("Waiting for every select worker to be done");
     switch (WaitForMultipleObjects(nEventsCount, lpEventsDone, TRUE, INFINITE))
     {
       case WAIT_FAILED:
@@ -1046,9 +1024,7 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
         break;
 
       default:
-#ifdef DBUG
-        dbug_print("Every worker is done");
-#endif
+        DEBUG_PRINT("Every worker is done");
         break;
     }
   }
@@ -1059,16 +1035,12 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
   }
   leave_blocking_section();
 
-#ifdef DBUG
-  dbug_print("Error status: %d (0 is ok)", err);
-#endif
+  DEBUG_PRINT("Error status: %d (0 is ok)", err);
   /* Build results */
   if (err == 0)
   {
-#ifdef DBUG
-    dbug_print("Building result");
-#endif
-    read_list = Val_unit;
+    DEBUG_PRINT("Building result");
+    read_list = Val_unit; 
     write_list = Val_unit;
     except_list = Val_unit;
 
@@ -1079,7 +1051,7 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
       {
         iterResult = &(iterSelectData->aResults[i]);
         l = alloc_small(2, 0);
-        Store_field(l, 0, (value)iterResult->lpOrig);
+        Store_field(l, 0, find_handle(iterResult, readfds, writefds, exceptfds));
         switch (iterResult->EMode)
         {
         case SELECT_MODE_READ:
@@ -1106,9 +1078,7 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
   }
 
   /* Free resources */
-#ifdef DBUG
-  dbug_print("Free selectdata resources");
-#endif
+  DEBUG_PRINT("Free selectdata resources");
   iterSelectData = lpSelectData;
   while (iterSelectData != NULL)
   {
@@ -1117,40 +1087,26 @@ CAMLprim value unix_select(value readfds, value writefds, value exceptfds, value
     select_data_free(lpSelectData);
   }
   lpSelectData = NULL;
-
+  
   /* Free allocated events/handle set array */
-#ifdef DBUG
-  dbug_print("Free local allocated resources");
-#endif
-  if (!HeapLock(GetProcessHeap()))
-  {
-    win32_maperr(GetLastError());
-    uerror("select", Nothing);
-  }
-  HeapFree(GetProcessHeap(), 0, lpEventsDone);
-  HeapFree(GetProcessHeap(), 0, hdsData);
-  HeapUnlock(GetProcessHeap());
+  DEBUG_PRINT("Free local allocated resources");
+  caml_stat_free(lpEventsDone);
+  caml_stat_free(hdsData);
 
-#ifdef DBUG
-  dbug_print("Raise error if required");
-#endif
+  DEBUG_PRINT("Raise error if required");
   if (err != 0)
   {
     win32_maperr(err);
     uerror("select", Nothing);
   }
 
-#ifdef DBUG
-  dbug_print("Build final result");
-#endif
+  DEBUG_PRINT("Build final result");
   res = alloc_small(3, 0);
   Store_field(res, 0, read_list);
   Store_field(res, 1, write_list);
   Store_field(res, 2, except_list);
 
-#ifdef DBUG
-  dbug_print("out select");
-#endif
+  DEBUG_PRINT("out select");
 
   CAMLreturn(res);
 }
index 855957bd4a59ede28a365d5bf294d756596d2c41..9141f3d056b95beba606c74e52382d29fe73477c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sendrecv.c 7697 2006-10-18 08:26:54Z xleroy $ */
 
 #include <mlvalues.h>
 #include <alloc.h>
index f3d2c6e03f61feea03cef97d1834b9bbc149c163..ae968727bba2b79d81b7f15676add17a449b056a 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: shutdown.c 4765 2002-04-30 15:00:48Z xleroy $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 421e5f902337783a0b6bee5f8fb3fbc90bdc8f28..e5054a6fa17df052fd1e1aa4153a1a25a50f8cde 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sleep.c 4899 2002-06-07 09:49:45Z xleroy $ */
 
 #include <mlvalues.h>
 #include <signals.h>
index 3cd55ec29fc7f7c931de46c0f00a192d67220f30..412c118543507310723a15eeb78c0d46c61c8fe9 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: socket.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include "unixsupport.h"
index 8abc63b47783c2bc9ae4762cf0bee602609660ff..0a05dfff0119b333a3e9ab8bc0d3a1d634419e87 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: socketaddr.h 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <misc.h>
 
index f82d810e6e9fb8d18dfe622fd2b1904eb3d9686b..9ffa315ea0b5769f807c0a1c7c0292edda178045 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: sockopt.c 8968 2008-08-01 13:46:08Z xleroy $ */
 
 #include <errno.h>
 #include <mlvalues.h>
index bbf5fe1fe75321bee0f3908e6d37c48df66594d1..8417e13669ad674f93e978ac0573f42a286d3e12 100644 (file)
@@ -28,8 +28,6 @@ CAMLprim value win_startup(unit)
   int i;
   HANDLE h;
 
-  DBUG_INIT;
-
   (void) WSAStartup(MAKEWORD(2, 0), &wsaData);
   DuplicateHandle(GetCurrentProcess(), GetCurrentProcess(),
                   GetCurrentProcess(), &h, 0, TRUE,
@@ -48,7 +46,5 @@ CAMLprim value win_cleanup(unit)
 
   (void) WSACleanup();
 
-  DBUG_CLEANUP;
-
   return Val_unit;
 }
index 79fc3b2eb7d2b3ba213a06fb40f3d482e90dd12d..ab35d205683726616c1596296ec658f581029f0c 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: stat.c 9270 2009-05-20 11:52:42Z doligez $ */
 
 #include <errno.h>
 #include <mlvalues.h>
index 51dc9bfb7bec426d9628101ef146f8338e5eb9f8..487d771f59cbef4b67708f745bb3a4bcf96d1bdc 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: system.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <memory.h>
index c8396d7fd4e16e58939585d0e228753f104def9d..e6b1f66aa023a10d4baa8ebbd2b0a38da9dca907 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unix.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Initialization *)
 
index 6e32a39e7572e0e55229f8decba0ee696f9bbebc..5f8077d27d9a442983e6251f12fa79b7deb64585 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: unixsupport.c 10467 2010-05-25 13:01:06Z xleroy $ */
 
 #include <stddef.h>
 #include <mlvalues.h>
@@ -53,6 +53,7 @@ value win_alloc_handle(HANDLE h)
   Handle_val(res) = h;
   Descr_kind_val(res) = KIND_HANDLE;
   CRT_fd_val(res) = NO_CRT_FD;
+  Flags_fd_val(res) = 0;
   return res;
 }
 
@@ -62,6 +63,7 @@ value win_alloc_socket(SOCKET s)
   Socket_val(res) = s;
   Descr_kind_val(res) = KIND_SOCKET;
   CRT_fd_val(res) = NO_CRT_FD;
+  Flags_fd_val(res) = 0;
   return res;
 }
 
index bf71ac6dc9be41e63d944c21c31e1fae2aa77764..152810d40a1740bc4fa4dcfb6dac139157ba1f67 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: unixsupport.h 10467 2010-05-25 13:01:06Z xleroy $ */
 
 #define WIN32_LEAN_AND_MEAN
 #include <wtypes.h>
@@ -26,15 +26,17 @@ struct filedescr {
   union {
     HANDLE handle;
     SOCKET socket;
-  } fd;
+  } fd;                   /* Real windows handle */
   enum { KIND_HANDLE, KIND_SOCKET } kind;
-  int crt_fd;
+  int crt_fd;             /* C runtime descriptor */
+  unsigned int flags_fd;  /* See FLAGS_FD_* */
 };
 
 #define Handle_val(v) (((struct filedescr *) Data_custom_val(v))->fd.handle)
 #define Socket_val(v) (((struct filedescr *) Data_custom_val(v))->fd.socket)
 #define Descr_kind_val(v) (((struct filedescr *) Data_custom_val(v))->kind)
 #define CRT_fd_val(v) (((struct filedescr *) Data_custom_val(v))->crt_fd)
+#define Flags_fd_val(v) (((struct filedescr *) Data_custom_val(v))->flags_fd)
 
 /* extern value win_alloc_handle_or_socket(HANDLE); */
 extern value win_alloc_handle(HANDLE);
@@ -50,4 +52,11 @@ extern void unix_error (int errcode, char * cmdname, value arg);
 extern void uerror (char * cmdname, value arg);
 extern value unix_freeze_buffer (value);
 
+/* Information stored in flags_fd, describing more precisely the socket
+ * and its status. The whole flags_fd is initialized to 0.
+ */
+
+/* Blocking or nonblocking.  By default a filedescr is in blocking state */
+#define FLAGS_FD_IS_BLOCKING (1<<0)
+
 #define UNIX_BUFFER_SIZE 16384
index 5bf494e70da3f8de133a832aa6abde82bea8b428..e27fbacf170cae325f599453d8cbd2e723fe1e95 100644 (file)
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: windbug.c 10467 2010-05-25 13:01:06Z xleroy $ */
 
-#include <windows.h>
+#include "windbug.h"
 
-int dbug = 0;
-
-void dbug_init (void)
+int debug_test (void)
 {
-  dbug = (getenv("OCAMLDBUG") != NULL);
-}
+  static int debug_init = 0;
+  static int debug = 0;
 
-void dbug_cleanup (void)
-{
-}
+#ifdef DEBUG
+  if (!debug_init)
+  {
+    debug = (getenv("OCAMLDEBUG") != NULL);
+    debug_init = 1;
+  };
+#endif 
 
-int dbug_test (void)
-{
-  return dbug;
+  return debug;
 }
index 232bb1989e222bc631837d7a6fed0a41214c770f..7f1e5df3667cbf69ea223305a0bff15932c53f55 100644 (file)
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: windbug.h 10467 2010-05-25 13:01:06Z xleroy $ */
 
-/*#define DBUG*/
-
-#ifdef DBUG
+#ifdef DEBUG
 
 #include <stdio.h>
 #include <windows.h>
 
-#define DBUG_PRINT(fmt, ...) \
+#define DEBUG_PRINT(fmt, ...) \
   do \
   { \
-    if (dbug_test()) \
+    if (debug_test()) \
     { \
       fprintf(stderr, "DBUG (pid:%d, tid: %d): ", GetCurrentProcessId(), GetCurrentThreadId()); \
       fprintf(stderr, fmt, __VA_ARGS__); \
     }; \
   } while(0)
 
-/* Initialize and cleanup dbug variable */
-void dbug_init    (void);
-void dbug_cleanup (void);
-
 /* Test if we are in dbug mode */
-int  dbug_test    (void);
-
-#define DBUG_INIT    dbug_init()
-#define DBUG_CLEANUP dbug_cleanup()
+int  debug_test    (void);
 
 #else
-#define DBUG_PRINT(fmt, ...)
-#define DBUG_INIT
-#define DBUG_CLEANUP
+#define DEBUG_PRINT(fmt, ...)
 #endif
index 8b96589ec9398a29e78b6b29897a3abfaccc16fc..c345aefb58a85e61a4d7bb95c7a47318d8451e35 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: windir.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <mlvalues.h>
 #include <memory.h>
index 318a0addfd253d1edba4b5c54016f684c8ba528b..52a9525c05702a27e53d479ae1e52070355c7b98 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: winlist.c 8961 2008-07-31 12:09:18Z xleroy $ */
 
 /* Basic list function in C. */
 
index be388a4ca2b57193288f3f26efb7aff5227f7daa..6f86c1b23f7f01ca47b2e0ca6cbf7cb473d11e73 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: winlist.h 8961 2008-07-31 12:09:18Z xleroy $ */
 #ifndef _WINLIST_H
 #define _WINLIST_H
 
index 895a6926b81647bc754fdeee7e7382945f13d302..4de4818c3ee333e2919e8d568804e5d573f4f2a2 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: winwait.c 8768 2008-01-11 16:13:18Z doligez $ */
 
 #include <windows.h>
 #include <mlvalues.h>
index aa83684b2f314ca5559aabb5cd10c7e9210afc95..ce449d4cdef18a96e966be03515405c903a6aeae 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: winworker.c 10467 2010-05-25 13:01:06Z xleroy $ */
 
 #include "winworker.h"
 #include "winlist.h"
@@ -47,7 +47,6 @@ LPWORKER lpWorkers       = NULL;
 DWORD    nWorkersCurrent = 0;
 DWORD    nWorkersMax     = 0;
 HANDLE   hWorkersMutex   = INVALID_HANDLE_VALUE;
-HANDLE   hWorkerHeap     = INVALID_HANDLE_VALUE;
 
 DWORD WINAPI worker_wait (LPVOID _data)
 {
@@ -57,7 +56,7 @@ DWORD WINAPI worker_wait (LPVOID _data)
   lpWorker = (LPWORKER )_data;
   bExit    = FALSE;
 
-  DBUG_PRINT("Worker %x starting", lpWorker);
+  DEBUG_PRINT("Worker %x starting", lpWorker);
   while (
       !bExit
       && SignalObjectAndWait(
@@ -66,7 +65,7 @@ DWORD WINAPI worker_wait (LPVOID _data)
         INFINITE,
         TRUE) == WAIT_OBJECT_0)
   {
-    DBUG_PRINT("Worker %x running", lpWorker);
+    DEBUG_PRINT("Worker %x running", lpWorker);
     switch (lpWorker->ECommand)
     {
       case WORKER_CMD_NONE:
@@ -86,7 +85,7 @@ DWORD WINAPI worker_wait (LPVOID _data)
         break;
     }
   };
-  DBUG_PRINT("Worker %x exiting", lpWorker);
+  DEBUG_PRINT("Worker %x exiting", lpWorker);
 
   return 0;
 }
@@ -95,13 +94,7 @@ LPWORKER worker_new (void)
 {
   LPWORKER lpWorker = NULL;
 
-  if (!HeapLock(hWorkerHeap))
-  {
-    win32_maperr(GetLastError());
-    uerror("worker_new", Nothing);
-  };
-  lpWorker = (LPWORKER)HeapAlloc(hWorkerHeap, 0, sizeof(WORKER));
-  HeapUnlock(hWorkerHeap);
+  lpWorker = (LPWORKER)caml_stat_alloc(sizeof(WORKER));
   list_init((LPLIST)lpWorker);
   lpWorker->hJobStarted  = CreateEvent(NULL, TRUE, FALSE, NULL);
   lpWorker->hJobStop     = CreateEvent(NULL, TRUE, FALSE, NULL);
@@ -124,14 +117,14 @@ LPWORKER worker_new (void)
 void worker_free (LPWORKER lpWorker)
 {
   /* Wait for termination of the worker */
-  DBUG_PRINT("Shutting down worker %x", lpWorker);
+  DEBUG_PRINT("Shutting down worker %x", lpWorker);
   WaitForSingleObject(lpWorker->hWorkerReady, INFINITE);
   lpWorker->ECommand = WORKER_CMD_STOP;
   SetEvent(lpWorker->hCommandReady);
   WaitForSingleObject(lpWorker->hThread, INFINITE);
 
   /* Free resources */
-  DBUG_PRINT("Freeing resources of worker %x", lpWorker);
+  DEBUG_PRINT("Freeing resources of worker %x", lpWorker);
   if (lpWorker->hThread != INVALID_HANDLE_VALUE)
   {
     CloseHandle(lpWorker->hThread);
@@ -171,13 +164,7 @@ void worker_free (LPWORKER lpWorker)
     lpWorker->hCommandReady = INVALID_HANDLE_VALUE;
   }
 
-  if (!HeapLock(hWorkerHeap))
-  {
-    win32_maperr(GetLastError());
-    uerror("worker_new", Nothing);
-  };
-  HeapFree(hWorkerHeap, 0, lpWorker);
-  HeapUnlock(hWorkerHeap);
+  caml_stat_free(lpWorker);
 };
 
 LPWORKER worker_pop (void)
@@ -193,7 +180,7 @@ LPWORKER worker_pop (void)
   }
   nWorkersCurrent++;
   nWorkersMax = (nWorkersCurrent > nWorkersMax ? nWorkersCurrent : nWorkersMax);
-  DBUG_PRINT("Workers running current/runnning max/waiting: %d/%d/%d",
+  DEBUG_PRINT("Workers running current/runnning max/waiting: %d/%d/%d",
       nWorkersCurrent,
       nWorkersMax,
       list_length((LPLIST)lpWorkers));
@@ -224,16 +211,16 @@ void worker_push(LPWORKER lpWorker)
   bFreeWorker = TRUE;
 
   WaitForSingleObject(hWorkersMutex, INFINITE);
-  DBUG_PRINT("Testing if we are under the maximum number of running workers");
+  DEBUG_PRINT("Testing if we are under the maximum number of running workers");
   if (list_length((LPLIST)lpWorkers) < THREAD_WORKERS_MAX)
   {
-    DBUG_PRINT("Saving this worker for future use");
-    DBUG_PRINT("Next: %x", ((LPLIST)lpWorker)->lpNext);
+    DEBUG_PRINT("Saving this worker for future use");
+    DEBUG_PRINT("Next: %x", ((LPLIST)lpWorker)->lpNext);
     lpWorkers = (LPWORKER)list_concat((LPLIST)lpWorker, (LPLIST)lpWorkers);
     bFreeWorker = FALSE;
   };
   nWorkersCurrent--;
-  DBUG_PRINT("Workers running current/runnning max/waiting: %d/%d/%d",
+  DEBUG_PRINT("Workers running current/runnning max/waiting: %d/%d/%d",
       nWorkersCurrent,
       nWorkersMax,
       list_length((LPLIST)lpWorkers));
@@ -241,7 +228,7 @@ void worker_push(LPWORKER lpWorker)
 
   if (bFreeWorker)
   {
-    DBUG_PRINT("Freeing worker %x", lpWorker);
+    DEBUG_PRINT("Freeing worker %x", lpWorker);
     worker_free(lpWorker);
   }
 }
@@ -253,16 +240,11 @@ void worker_init (void)
   /* Init a shared variable. The only way to ensure that no other
      worker will be at the same point is to use a critical section.
      */
-  DBUG_PRINT("Allocating mutex for workers");
+  DEBUG_PRINT("Allocating mutex for workers");
   if (hWorkersMutex == INVALID_HANDLE_VALUE)
   {
     hWorkersMutex = CreateMutex(NULL, FALSE, NULL);
   }
-
-  if (hWorkerHeap == INVALID_HANDLE_VALUE)
-  {
-    hWorkerHeap = HeapCreate(0, sizeof(WORKER) * THREAD_WORKERS_MAX * 4, 0);
-  }
 }
 
 void worker_cleanup(void)
@@ -276,13 +258,13 @@ void worker_cleanup(void)
   if (hWorkersMutex != INVALID_HANDLE_VALUE)
   {
     WaitForSingleObject(hWorkersMutex, INFINITE);
-    DBUG_PRINT("Freeing global resource of workers");
+    DEBUG_PRINT("Freeing global resource of workers");
     /* Empty the queue of worker worker */
     while (lpWorkers != NULL)
     {
       ReleaseMutex(hWorkersMutex);
       lpWorker = worker_pop();
-      DBUG_PRINT("Freeing worker %x", lpWorker);
+      DEBUG_PRINT("Freeing worker %x", lpWorker);
       WaitForSingleObject(hWorkersMutex, INFINITE);
       worker_free(lpWorker);
     };
@@ -298,18 +280,18 @@ LPWORKER worker_job_submit (WORKERFUNC f, void *user_data)
 {
   LPWORKER lpWorker = worker_pop();
 
-  DBUG_PRINT("Waiting for worker to be ready");
+  DEBUG_PRINT("Waiting for worker to be ready");
   enter_blocking_section();
   WaitForSingleObject(lpWorker->hWorkerReady, INFINITE);
   ResetEvent(lpWorker->hWorkerReady);
   leave_blocking_section();
-  DBUG_PRINT("Worker is ready");
+  DEBUG_PRINT("Worker is ready");
 
   lpWorker->hJobFunc      = f;
   lpWorker->lpJobUserData = user_data;
   lpWorker->ECommand      = WORKER_CMD_EXEC;
 
-  DBUG_PRINT("Call worker (func: %x, worker: %x)", f, lpWorker);
+  DEBUG_PRINT("Call worker (func: %x, worker: %x)", f, lpWorker);
   SetEvent(lpWorker->hCommandReady);
 
   return (LPWORKER)lpWorker;
@@ -322,14 +304,14 @@ HANDLE worker_job_event_done (LPWORKER lpWorker)
 
 void worker_job_stop (LPWORKER lpWorker)
 {
-  DBUG_PRINT("Sending stop signal to worker %x", lpWorker);
+  DEBUG_PRINT("Sending stop signal to worker %x", lpWorker);
   SetEvent(lpWorker->hJobStop);
-  DBUG_PRINT("Signal sent to worker %x", lpWorker);
+  DEBUG_PRINT("Signal sent to worker %x", lpWorker);
 }
 
 void worker_job_finish (LPWORKER lpWorker)
 {
-  DBUG_PRINT("Finishing call of worker %x", lpWorker);
+  DEBUG_PRINT("Finishing call of worker %x", lpWorker);
   enter_blocking_section();
   WaitForSingleObject(lpWorker->hJobDone, INFINITE);
   leave_blocking_section();
index 06450a4ec3c8b30a618dc478a2f2cc0c2c324123..a7f0477db37029a827c0a42541f0e5c214e0e8ed 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: winworker.h 9547 2010-01-22 12:48:24Z doligez $ */
 #ifndef _WINWORKER_H
 #define _WINWORKER_H
 
index 190d9025394c1b285cd097eb14ca6cfb55482d7d..4d8aebeba2f22f79fc9af668391d64ce71b619ba 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: write.c 9359 2009-09-25 15:03:06Z weis $ */
 
 #include <errno.h>
 #include <string.h>
index 2530b44c6a8ca7b0ae6912a04987edda50dbcc01..9728b58f819472969f890a2d9f9e15b4557394a2 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: asttypes.mli 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 (* Auxiliary a.s.t. types used by parsetree and typedtree. *)
 
index 3ddb5dde7ca59d1bf6b783d3c9ddccb3869e273a..2e6ff1bc6f8fc6eef15d4bd24fc7233835cbd624 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer.mli 5961 2003-11-21 16:01:13Z xleroy $ *)
 
 (* The lexical analyzer *)
 
index 5da264ec09c07363f3ae0785e8d2a97cd0ac9532..a8db4977f3105e035a1cf54a73dae82791d7eea6 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer.mll 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 (* The lexer definition *)
 
index 50cc57e8ee98e99eddf18a1a766a81a18bf38163..0dc4978d22d3a2c1feded4ffe9b1c195e221d630 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: linenum.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
 
 (* An auxiliary lexer for determining the line number corresponding to
    a file position, honoring the directives # linenum "filename" *)
index 91e71e972c7c2c595c3ffe4dede73b1f7a3997f5..57e600fe9db420f2aff121d91813057916d5a441 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: linenum.mll 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* An auxiliary lexer for determining the line number corresponding to
    a file position, honoring the directives # linenum "filename" *)
index 15b074acd470f306103088efc4c7ccd0a93962e0..a9b73597a3c69b8a16486596bdaaa1972a53e7a8 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: location.ml 8768 2008-01-11 16:13:18Z doligez $ *)
 
 open Lexing
 
index a496a35506a1102d4dc3d49cb07e5c00ebb9f923..9ca64c1fa08f3b2779a147aab81a9e1ab41a83d9 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: location.mli 8705 2007-12-04 13:38:58Z doligez $ *)
 
 (* Source code locations (ranges of positions), used in parsetree. *)
 
index 1b459ca3f4d2db2672c1767fd0c995cb757ed6f1..188ff77e10efa4570a91218816491f189487f02c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: longident.ml 9324 2009-08-27 08:19:08Z xleroy $ *)
 
 type t =
     Lident of string
index 4568bc953cdbb87e4ad9475239636fd027defe5e..db7a84ec4c4eb135214c5b1a09187c3dea4652c2 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: longident.mli 9324 2009-08-27 08:19:08Z xleroy $ *)
 
 (* Long identifiers, used in parsetree. *)
 
index 7f3e4cdc02e55dd24ebdd848915355c8d7991bb6..d3fa85e98ceac2ff539a57285c91a5cd7ef05402 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parse.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Entry points in the parser *)
 
index 87a09f0e2a84fa8362146da565f465f8d53968ab..3694a8e5c8c5b35c61c4ec0d7e054f1481c0de25 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parse.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Entry points in the parser *)
 
index 87a5659611a1eee30bbe71c0cdfa85305e35fd54..e958b9206ef738ce1cd2d0a04f66d087bc7a1496 100644 (file)
@@ -10,7 +10,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: parser.mly 10536 2010-06-07 15:32:32Z doligez $ */
 
 /* The parser definition */
 
@@ -93,14 +93,19 @@ let mkuminus name arg =
       mkexp(Pexp_constant(Const_int64(Int64.neg n)))
   | "-", Pexp_constant(Const_nativeint n) ->
       mkexp(Pexp_constant(Const_nativeint(Nativeint.neg n)))
-  | _, Pexp_constant(Const_float f) ->
+  | ("-" | "-."), Pexp_constant(Const_float f) ->
       mkexp(Pexp_constant(Const_float(neg_float_string f)))
   | _ ->
       mkexp(Pexp_apply(mkoperator ("~" ^ name) 1, ["", arg]))
 
 let mkuplus name arg =
-  match name, arg.pexp_desc with
-  | "+", desc -> mkexp desc
+  let desc = arg.pexp_desc in
+  match name, desc with
+  | "+", Pexp_constant(Const_int _)
+  | "+", Pexp_constant(Const_int32 _)
+  | "+", Pexp_constant(Const_int64 _)
+  | "+", Pexp_constant(Const_nativeint _)
+  | ("+" | "+."), Pexp_constant(Const_float _) -> mkexp desc
   | _ ->
       mkexp(Pexp_apply(mkoperator ("~" ^ name) 1, ["", arg]))
 
index 05f92bd03782a68ca397d2aca2c036c616179f13..db0317daa2bf390fa607e546f7e1b57aed6ceac4 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parsetree.mli 10263 2010-04-17 14:45:12Z garrigue $ *)
 
 (* Abstract syntax tree produced by parsing *)
 
index f63e21b879c046e40079b10e0cae0575f4500b49..351dfb9faddb404328ec61d01174a6e1e94191db 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printast.ml 10263 2010-04-17 14:45:12Z garrigue $ *)
 
 open Asttypes;;
 open Format;;
index 7ea148678db34deb1de29bff9d886dc33d52e630..4a33e3fe359e720ecbd8abf51ad8b4197e863056 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printast.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 open Parsetree;;
 open Format;;
index edaabda122f9df8ac300ebd645837a9518d6b571..80cef0d412cd017a56c55b014d8e3af7b4d751a7 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: syntaxerr.ml 9316 2009-07-15 14:06:37Z xleroy $ *)
 
 (* Auxiliary type for reporting syntax errors *)
 
index 4e9679926a3cd0bd4ec98ed3025e6b0d639e489a..6115b66bd8f08f42ec756d344fc0cb29502b4208 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: syntaxerr.mli 9316 2009-07-15 14:06:37Z xleroy $ *)
 
 (* Auxiliary type for reporting syntax errors *)
 
index 862a1c4e1ea18bfcd33501e447ff87424c8184ed..9786601ad525bfc9f275eb97c85e34f2c3ce3e85 100755 (executable)
@@ -12,7 +12,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Compflags 10443 2010-05-20 09:44:25Z doligez $
 
 case $1 in
   pervasives.cm[iox]|pervasives.p.cmx) echo ' -nopervasives';;
index 874dcf6f9e625e954f9eca5bc5f4538847786113..a3e28763ebf6422135b8e2ec06a69590b3fb5df6 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 9547 2010-01-22 12:48:24Z doligez $
 
 include Makefile.shared
 
index 995a0c3fd6deca51fac94ecc9055c5522179dc2f..bb9ce28ed7f3e56322755b746b6394a4e8161231 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 9547 2010-01-22 12:48:24Z doligez $
 
 include Makefile.shared
 
index b4f47b4b88c10cc7e4c49a8ad0c9a210be2b237c..b9ec5e3f371e6254ee2c7f0fe37bcd3023699519 100755 (executable)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.shared 10448 2010-05-21 11:28:21Z doligez $
 
 include ../config/Makefile
 RUNTIME=../boot/ocamlrun
@@ -50,7 +50,7 @@ stdlib.cmxa: $(OBJS:.cmo=.cmx)
        $(CAMLOPT) -a -o stdlib.cmxa $(OBJS:.cmo=.cmx)
 
 sys.ml: sys.mlp ../VERSION
-       sed -e "s|%%VERSION%%|`head -1 ../VERSION`|" sys.mlp >sys.ml
+       sed -e "s|%%VERSION%%|`sed -e 1q ../VERSION`|" sys.mlp >sys.ml
 
 clean::
        rm -f sys.ml
index 4f689f8c4ad813164c5c6245cdfc6871eee78cd4..5a5246a1ba21e6b04df4e2f600341a0b767c4bdd 100644 (file)
@@ -1,6 +1,6 @@
 # This file lists all standard library modules. -*- Makefile -*-
 # It is used in particular to know what to expunge in toplevels.
-# $Id$
+# $Id: StdlibModules 8974 2008-08-01 16:57:10Z mauny $
 
 STDLIB_MODULES=\
   arg \
index 009e20375374fd8629f4afe2dbd3f0c77190cd3a..af6c9f2837bd01ca6608326ba22369ec4ccf0808 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arg.ml 8768 2008-01-11 16:13:18Z doligez $ *)
 
 type key = string
 type doc = string
index 4e5ed08d1cb0d4a8d4cb494c6b94d4672380968a..778ef31271ddfdd73242193a6ee6e7c41900f759 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arg.mli 8768 2008-01-11 16:13:18Z doligez $ *)
 
 (** Parsing of command line arguments.
 
index 4eb0cadf228fb263db86172c11de3f4a28e48bfa..a5b1d8e5cc2b1f5562d4c06dc18c665f42a547b2 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: array.ml 10482 2010-05-31 12:46:27Z doligez $ *)
 
 (* Array operations *)
 
@@ -78,10 +78,11 @@ let concat_aux init al =
 ;;
 
 let concat al =
-  let rec find_init = function
-      [] -> [||]
+  let rec find_init aa =
+    match aa with
+    | [] -> [||]
     | a :: rem ->
-        if length a > 0 then concat_aux (unsafe_get a 0) al else find_init rem
+        if length a > 0 then concat_aux (unsafe_get a 0) aa else find_init rem
   in find_init al
 
 let sub a ofs len =
index 9fb74b06eb86132f966806c2b1555c9a18043c19..7ba565b59d12c42e7733b78f1c19980de4bba2cb 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: array.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Array operations. *)
 
index fed0ad1c2c4b4f22fa221b083e90a3dc379a9fac..1ff613490e2dfcf87bbc8ff33634556d7978f414 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arrayLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 (* Module [ArrayLabels]: labelled Array module *)
 
index f45f70c6dec326aa6a2fe765ff725009f18d1484..0b08227d9d7dd1a40d2cc55e2e079d384a2695e5 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: arrayLabels.mli 7805 2007-01-22 08:06:09Z garrigue $ *)
 
 (** Array operations. *)
 
index 9327aaefb5a7ffa86eff5d488cfa5c996f12fd62..23ad0c2ede8e608da51333c66af737b7f36c44a0 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: buffer.ml 10216 2010-03-28 08:16:45Z xleroy $ *)
 
 (* Extensible buffers *)
 
index 32d15349e479e1c11dd58958563193e652e75f58..13e2f0884e61bf18319d73862c4df5a6745d9334 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: buffer.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Extensible string buffers.
 
@@ -55,7 +55,9 @@ val blit : t -> int -> string -> int -> int -> unit
 
    Raise [Invalid_argument] if [srcoff] and [len] do not designate a valid
    substring of [src], or if [dstoff] and [len] do not designate a valid
-   substring of [dst]. *)
+   substring of [dst].
+   @since 3.11.2
+*)
 
 val nth : t -> int -> char
 (** get the n-th character of the buffer. Raise [Invalid_argument] if
index 819f9d3f40da4c238f4368ea19e9887b3c7629d6..29a2031af2f9c9c8e0358ad16e46ecf3c463bff3 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: callback.ml 6044 2003-12-31 14:20:40Z doligez $ *)
 
 (* Registering Caml values with the C runtime for later callbacks *)
 
index ba2ab7ecb7e41f468690e998c49bb059ccfaf429..ce0fdc93f442cb574040f8ac9a0607a38add060a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: callback.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Registering Caml values with the C runtime.
 
index 46cf42788ad72c73cf8b015a5f673dfded7d7de8..820e20b49940152dfa163f23dcdb8f4fd362f1cd 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: camlinternalLazy.ml 8974 2008-08-01 16:57:10Z mauny $ *)
 
 (* Internals of forcing lazy values. *)
 
index 37b707d4f922f87ef98616176cec0e6e6dd10b81..019fce30da1d57da2fed9fe1e99d337d88588427 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: camlinternalLazy.mli 8974 2008-08-01 16:57:10Z mauny $ *)
 
 (* Internals of forcing lazy values *)
 
index 12a77cc8fbead85a833b8be2fbc3becadf93709f..e2e8203151277704f256118c6baeb2ecffdb5861 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: camlinternalMod.ml 8768 2008-01-11 16:13:18Z doligez $ *)
 
 type shape =
   | Function
index 74bf28db288a204b7163e10cbcbbf9a4f00361b0..34006784000f85651f80dc89658707abb6cce494 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: camlinternalMod.mli 6586 2004-08-12 12:57:00Z xleroy $ *)
 
 type shape =
   | Function
index 2ffa71c0a24b5cd03e3e6f355d4c56d71fa05d40..e5ae45907f682fb0a85cb14bba97fd0031fd74a1 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: camlinternalOO.ml 8768 2008-01-11 16:13:18Z doligez $ *)
 
 open Obj
 
index d2aeea319b41639010a092cd2b382af055216f74..81113211e8271b895617da74b7a93786e273ec92 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: camlinternalOO.mli 7372 2006-04-05 02:28:13Z garrigue $ *)
 
 (** Run-time support for objects and classes.
     All functions in this module are for system use only, not for the
index 28a1bcc46c594857b7dc5228120826f78cbd9eae..a6b8a5f71ba26ddcadc7429418a00400c7d30140 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: char.ml 8189 2007-04-16 11:06:51Z weis $ *)
 
 (* Character operations *)
 
index 8ab72bd9a60f9cc23960b5a3ad4beb2d6857d243..c3637ac8d16f2123221cc73d85318c16716bc40f 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: char.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Character operations. *)
 
index 3c28a58b79099d7bafa04607c638558f5120fa47..90d423312e38e94e11287e35a8b03a97b9e77a4d 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: complex.ml 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (* Complex numbers *)
 
index 3c3b361d27e4547dca2cf1c415596c2cecadf40a..8c80b5e2e635491526d027b03c055dc6b58ec3a7 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: complex.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Complex numbers.
 
index 78a45d54ee78cb5560a03f159134e35a4702c7aa..2d030666401d956212916a149148ffb13d3ec60d 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: digest.ml 6044 2003-12-31 14:20:40Z doligez $ *)
 
 (* Message digest (MD5) *)
 
index 981bd02fc3e8918e36cada6c5fb02481f8b864ca..d3359029bfd13cafc4ed90bf2f3be355761e0912 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: digest.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** MD5 message digest.
 
index e11f1e3304881cc24e54d7f83e82e3d79f2f6193..e85a6d2d6f8e771d9e909fd058da59cc142a0103 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: filename.ml 9540 2010-01-20 16:26:46Z doligez $ *)
 
 let generic_quote quotequote s =
   let l = String.length s in
index e01660952706f92cc158e1ad372fcb72dbafe451..1695e5601b8af2365e0b8857b83cdda2db43cfc2 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: filename.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Operations on file names. *)
 
@@ -23,7 +23,7 @@ val parent_dir_name : string
    (e.g. [..] in Unix). *)
 
 val dir_sep : string
-(** The directory separator (e.g. [/] in Unix). *)
+(** The directory separator (e.g. [/] in Unix). @since 3.11.2 *)
 
 val concat : string -> string -> string
 (** [concat dir file] returns a file name that designates file
@@ -82,6 +82,7 @@ val temp_file : ?temp_dir: string -> string -> string -> string
    (readable and writable only by the file owner).  The file is
    guaranteed to be different from any other file that existed when
    [temp_file] was called.
+   @before 3.11.2 no ?temp_dir optional argument
 *)
 
 val open_temp_file :
@@ -93,7 +94,9 @@ val open_temp_file :
    by a symbolic link) before the program opens it.  The optional argument
    [mode] is a list of additional flags to control the opening of the file.
    It can contain one or several of [Open_append], [Open_binary],
-   and [Open_text].  The default is [[Open_text]] (open in text mode). *)
+   and [Open_text].  The default is [[Open_text]] (open in text mode).
+   @before 3.11.2 no ?temp_dir optional argument
+*)
 
 val temp_dir_name : string
 (** The name of the temporary directory:
@@ -101,6 +104,7 @@ val temp_dir_name : string
     if the variable is not set.
     Under Windows, the value of the [TEMP] environment variable, or "."
     if the variable is not set.
+    @since 3.09.1
 *)
 
 val quote : string -> string
index a8d6ec9e1486f0045f36d76a6878bb601e768daf..f68b3515ce6b4dffd475d4780b8ab753839641c5 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: format.ml 10348 2010-05-03 09:18:20Z weis $ *)
 
 (* A pretty-printing facility and definition of formatters for ``parallel''
    (i.e. unrelated or independent) pretty-printing on multiple out channels. *)
index 292f575884f30901a42ca196d71cd65a760ccc1b..e09d9fc29445598ad5e8ff6bb5565cd421129a04 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: format.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Pretty printing.
 
@@ -662,7 +662,9 @@ val sprintf : ('a, unit, string) format -> 'a;;
 
 val ifprintf : formatter -> ('a, formatter, unit) format -> 'a;;
 (** Same as [fprintf] above, but does not print anything.
-   Useful to ignore some material when conditionally printing. *)
+   Useful to ignore some material when conditionally printing.
+   @since 3.10.0
+*)
 
 (** Formatted output functions with continuations. *)
 
@@ -676,7 +678,9 @@ val ikfprintf : (formatter -> 'a) -> formatter ->
               ('b, formatter, unit, 'a) format4 -> 'b
 ;;
 (** Same as [kfprintf] above, but does not print anything.
-   Useful to ignore some material when conditionally printing. *)
+   Useful to ignore some material when conditionally printing.
+   @since 3.12.0
+*)
 
 val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b;;
 (** Same as [sprintf] above, but instead of returning the string,
index 6482ebb78b7dc084d7196073aad5b02f2c7be534..b1eb59f722c6f2d50f2eafb3e4aa775c73cec62b 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: gc.ml 10315 2010-04-27 07:55:08Z xleroy $ *)
 
 type stat = {
   minor_words : float;
index b02b758c59eacd4f3b9495b5498eadcd1b674d7c..21aeb8c0ba860f141f8c10aec87f38466fe8aa32 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: gc.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Memory management control and statistics; finalised values. *)
 
@@ -72,7 +72,7 @@ type stat =
     (** Maximum size reached by the major heap, in words. *)
 
     stack_size: int;
-    (** Current size of the stack, in words. *)
+    (** Current size of the stack, in words. @since 3.12.0 *)
 }
 (** The memory management counters are returned in a [stat] record.
 
@@ -136,7 +136,7 @@ type control =
         quite fast but can result in fragmentation.  1 is the
         first-fit policy, which can be slower in some cases but
         can be better for programs with fragmentation problems.
-        Default: 0. *)
+        Default: 0. @since 3.11.0 *)
 }
 (** The GC parameters are given as a [control] record.  Note that
     these parameters can also be initialised by setting the
index 6ecc2805a91d902ee912a448c49cdcc9f98c3280..12837de61ef7a5f39b9fe6f60416565eb69a5e56 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: genlex.ml 4694 2002-04-18 07:27:47Z garrigue $ *)
 
 type token =
     Kwd of string
index 93bc5f55e8cae99f1d8653bfbcfb0f92cf4dbe39..c03ef294afde24db48b4220ebfc561824d170344 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: genlex.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** A generic lexical analyzer.
 
index bcb2c9275a669ba1652ee3ea4e2350f3da37874a..b65c5dc4a2abcdc048059b14d1520af6d7c50a7c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: hashtbl.ml 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (* Hash tables *)
 
index 1bf175ad1f1503f8b798db95497fb8108dcfc460..e66c4864cf3d570eb44cf91a19b8d619cf94d5d8 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: hashtbl.mli 6854 2005-05-04 13:36:47Z doligez $ *)
 
 (** Hash tables and hash functions.
 
index eda76325a60f50b211e1088fb9ec5a7e9f99b6ac..15d560625392a894f5596d9e38b1306ea9fe90ad 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: header.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 /* The launcher for bytecode executables (if #! is not working) */
 
index c8d23ee256fbb7132435b657ec0ba4cd4c82a75f..6e74254176db73a8b2794e053db454ab4e384373 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: headernt.c 7829 2007-02-07 10:31:36Z ertai $ */
 
 #define STRICT
 #define WIN32_LEAN_AND_MEAN
index 64d525e88f5f4773be1da66b18ce026c01e72b4f..3eb10285b14669d6cd81fe34c0ce714d32703005 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: int32.ml 7818 2007-01-30 09:34:36Z xleroy $ *)
 
 (* Module [Int32]: 32-bit integers *)
 
index eeafb1a2fcf15792dd41de27c08a24e1068f0fd6..eef353338b821bbb7fb03979e959739ea8b1bf88 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: int32.mli 8768 2008-01-11 16:13:18Z doligez $ *)
 
 (** 32-bit integers.
 
index e916fa4e0dde9dbf668c94d0c2e7edef981b717b..6d7168a2a9ee48c1d4a06e88eb6142f5ec11b53e 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: int64.ml 7818 2007-01-30 09:34:36Z xleroy $ *)
 
 (* Module [Int64]: 64-bit integers *)
 
index 3b641338e767a1e6600f612a8a752d4e93784e45..44fabfe3b19a22110b97a48d2b97051f4c956521 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: int64.mli 8768 2008-01-11 16:13:18Z doligez $ *)
 
 (** 64-bit integers.
 
index b1a9cbbda3af9b092ab606cc0067e333b83776e0..15becc85a047d2d81c7b5867032c9cbc9b8f7361 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lazy.ml 8974 2008-08-01 16:57:10Z mauny $ *)
 
 (* Module [Lazy]: deferred computations *)
 
index 3b85717f143241c4d284f0798ebc61a04e7d91da..ee72153e60238d60dfc89cf2671a19654f7ae78f 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lazy.mli 10394 2010-05-12 14:56:09Z doligez $ *)
 
 (** Deferred computations. *)
 
index 9e01415265f3c46f243075ce4d3d232167e8006d..78b4151731ffd412f20ce3767727c1bf58cdb56e 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexing.ml 8787 2008-01-22 16:27:53Z doligez $ *)
 
 (* The run-time library for lexers generated by camllex *)
 
index 884bf38448aaccb9f046a8131fa0ab8bab8aa774..f8aef823f9964058d1d25e60c56f4162887325cf 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexing.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** The run-time library for lexers generated by [ocamllex]. *)
 
@@ -133,7 +133,9 @@ val lexeme_end_p : lexbuf -> position
 val new_line : lexbuf -> unit
 (** Update the [lex_curr_p] field of the lexbuf to reflect the start
     of a new line.  You can call this function in the semantic action
-    of the rule that matches the end-of-line character. *)
+    of the rule that matches the end-of-line character.
+    @since 3.11.0
+*)
 
 (** {6 Miscellaneous functions} *)
 
index 8bb9e3fa6525d7f7a4d77c6c98fe1763bc274e37..80a76c4956474686ff378f38373dc1b974896e52 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: list.ml 7597 2006-09-11 12:18:00Z doligez $ *)
 
 (* List operations *)
 
index 8f89561907e92e183578a2460a4d4c431d08337d..26c53869224ffb05c953641033d58115b25e9731 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: list.mli 7597 2006-09-11 12:18:00Z doligez $ *)
 
 (** List operations.
 
index be7bddea367f780f059d5eb51ad2f5184251ae83..896caf9ba763a8e6245245d64da805a287a58c32 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: listLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 (* Module [ListLabels]: labelled List module *)
 
index 1f6a4ead456c510060929ba2e927b8f8fb997b5a..b9f393662ead06f7d8b9766a4140504ace39fb37 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: listLabels.mli 7805 2007-01-22 08:06:09Z garrigue $ *)
 
 (** List operations.
 
index b64fd7479befa350ffa85fa637ca84edf8a035ee..2975dadbf5566f7d0fd5705553bdcf89d345fad8 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: map.ml 10468 2010-05-25 13:29:43Z frisch $ *)
 
 module type OrderedType =
   sig
@@ -25,16 +25,28 @@ module type S =
     type +'a t
     val empty: 'a t
     val is_empty: 'a t -> bool
+    val mem:  key -> 'a t -> bool
     val add: key -> 'a -> 'a t -> 'a t
-    val find: key -> 'a t -> 'a
+    val singleton: key -> 'a -> 'a t
     val remove: key -> 'a t -> 'a t
-    val mem:  key -> 'a t -> bool
+    val merge: (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+    val compare: ('a -> 'a -> int) -> 'a t -> 'a t -> int
+    val equal: ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
     val iter: (key -> 'a -> unit) -> 'a t -> unit
+    val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
+    val for_all: (key -> 'a -> bool) -> 'a t -> bool
+    val exists: (key -> 'a -> bool) -> 'a t -> bool
+    val filter: (key -> 'a -> bool) -> 'a t -> 'a t
+    val partition: (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
+    val cardinal: 'a t -> int
+    val bindings: 'a t -> (key * 'a) list
+    val min_binding: 'a t -> (key * 'a)
+    val max_binding: 'a t -> (key * 'a)
+    val choose: 'a t -> (key * 'a)
+    val split: key -> 'a t -> 'a t * 'a option * 'a t
+    val find: key -> 'a t -> 'a
     val map: ('a -> 'b) -> 'a t -> 'b t
     val mapi: (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare: ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal: ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
   end
 
 module Make(Ord: OrderedType) = struct
@@ -53,6 +65,8 @@ module Make(Ord: OrderedType) = struct
       let hl = height l and hr = height r in
       Node(l, x, d, r, (if hl >= hr then hl + 1 else hr + 1))
 
+    let singleton x d = Node(Empty, x, d, Empty, 1)
+
     let bal l x d r =
       let hl = match l with Empty -> 0 | Node(_,_,_,_,h) -> h in
       let hr = match r with Empty -> 0 | Node(_,_,_,_,h) -> h in
@@ -119,6 +133,11 @@ module Make(Ord: OrderedType) = struct
       | Node(Empty, x, d, r, _) -> (x, d)
       | Node(l, x, d, r, _) -> min_binding l
 
+    let rec max_binding = function
+        Empty -> raise Not_found
+      | Node(l, x, d, Empty, _) -> (x, d)
+      | Node(l, x, d, r, _) -> max_binding r
+
     let rec remove_min_binding = function
         Empty -> invalid_arg "Map.remove_min_elt"
       | Node(Empty, x, d, r, _) -> r
@@ -150,12 +169,22 @@ module Make(Ord: OrderedType) = struct
           iter f l; f v d; iter f r
 
     let rec map f = function
-        Empty               -> Empty
-      | Node(l, v, d, r, h) -> Node(map f l, v, f d, map f r, h)
+        Empty ->
+          Empty
+      | Node(l, v, d, r, h) ->
+          let l' = map f l in
+          let d' = f d in
+          let r' = map f r in
+          Node(l', v, d', r', h)
 
     let rec mapi f = function
-        Empty               -> Empty
-      | Node(l, v, d, r, h) -> Node(mapi f l, v, f v d, mapi f r, h)
+        Empty ->
+          Empty
+      | Node(l, v, d, r, h) ->
+          let l' = mapi f l in
+          let d' = f v d in
+          let r' = mapi f r in
+          Node(l', v, d', r', h)
 
     let rec fold f m accu =
       match m with
@@ -163,6 +192,80 @@ module Make(Ord: OrderedType) = struct
       | Node(l, v, d, r, _) ->
           fold f r (f v d (fold f l accu))
 
+    let rec for_all p = function
+        Empty -> true
+      | Node(l, v, d, r, _) -> p v d && for_all p l && for_all p r
+
+    let rec exists p = function
+        Empty -> false
+      | Node(l, v, d, r, _) -> p v d || exists p l || exists p r
+
+    let filter p s =
+      let rec filt accu = function
+        | Empty -> accu
+        | Node(l, v, d, r, _) ->
+            filt (filt (if p v d then add v d accu else accu) l) r in
+      filt Empty s
+
+    let partition p s =
+      let rec part (t, f as accu) = function
+        | Empty -> accu
+        | Node(l, v, d, r, _) ->
+            part (part (if p v d then (add v d t, f) else (t, add v d f)) l) r in
+      part (Empty, Empty) s
+
+    (* Same as create and bal, but no assumptions are made on the
+       relative heights of l and r. *)
+
+    let rec join l v d r =
+      match (l, r) with
+        (Empty, _) -> add v d r
+      | (_, Empty) -> add v d l
+      | (Node(ll, lv, ld, lr, lh), Node(rl, rv, rd, rr, rh)) ->
+          if lh > rh + 2 then bal ll lv ld (join lr v d r) else
+          if rh > lh + 2 then bal (join l v d rl) rv rd rr else
+          create l v d r
+
+    (* Merge two trees l and r into one.
+       All elements of l must precede the elements of r.
+       No assumption on the heights of l and r. *)
+
+    let concat t1 t2 =
+      match (t1, t2) with
+        (Empty, t) -> t
+      | (t, Empty) -> t
+      | (_, _) ->
+          let (x, d) = min_binding t2 in
+          join t1 x d (remove_min_binding t2)
+
+    let concat_or_join t1 v d t2 =
+      match d with
+      | Some d -> join t1 v d t2
+      | None -> concat t1 t2
+
+    let rec split x = function
+        Empty ->
+          (Empty, None, Empty)
+      | Node(l, v, d, r, _) ->
+          let c = Ord.compare x v in
+          if c = 0 then (l, Some d, r)
+          else if c < 0 then
+            let (ll, pres, rl) = split x l in (ll, pres, join rl v d r)
+          else
+            let (lr, pres, rr) = split x r in (join l v d lr, pres, rr)
+
+    let rec merge f s1 s2 =
+      match (s1, s2) with
+        (Empty, Empty) -> Empty
+      | (Node (l1, v1, d1, r1, h1), _) when h1 >= height s2 ->
+          let (l2, d2, r2) = split v1 s2 in
+          concat_or_join (merge f l1 l2) v1 (f v1 (Some d1) d2) (merge f r1 r2)
+      | (_, Node (l2, v2, d2, r2, h2)) ->
+          let (l1, d1, r1) = split v2 s1 in
+          concat_or_join (merge f l1 l2) v2 (f v2 d1 (Some d2)) (merge f r1 r2)
+      | _ ->
+          assert false
+
     type 'a enumeration = End | More of key * 'a * 'a t * 'a enumeration
 
     let rec cons_enum m e =
@@ -195,4 +298,17 @@ module Make(Ord: OrderedType) = struct
             equal_aux (cons_enum r1 e1) (cons_enum r2 e2)
       in equal_aux (cons_enum m1 End) (cons_enum m2 End)
 
+    let rec cardinal = function
+        Empty -> 0
+      | Node(l, _, _, r, _) -> cardinal l + 1 + cardinal r
+
+    let rec bindings_aux accu = function
+        Empty -> accu
+      | Node(l, v, d, r, _) -> bindings_aux ((v, d) :: bindings_aux accu r) l
+
+    let bindings s =
+      bindings_aux [] s
+
+    let choose = min_binding
+
 end
index af1d4d37b780d96e6b1dbe729a373e43bb647978..8778cef1c666517d5438ef775120ba4f0b298c1f 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: map.mli 10483 2010-05-31 12:48:13Z doligez $ *)
 
 (** Association tables over ordered types.
 
@@ -52,22 +52,42 @@ module type S =
     val is_empty: 'a t -> bool
     (** Test whether a map is empty or not. *)
 
+    val mem: key -> 'a t -> bool
+    (** [mem x m] returns [true] if [m] contains a binding for [x],
+       and [false] otherwise. *)
+
     val add: key -> 'a -> 'a t -> 'a t
     (** [add x y m] returns a map containing the same bindings as
        [m], plus a binding of [x] to [y]. If [x] was already bound
        in [m], its previous binding disappears. *)
 
-    val find: key -> 'a t -> 'a
-    (** [find x m] returns the current binding of [x] in [m],
-       or raises [Not_found] if no such binding exists. *)
+    val singleton: key -> 'a -> 'a t
+    (** [singleton x y] returns the one-element map that contains a binding [y]
+        for [x].
+        @since 3.12.0
+     *)
 
     val remove: key -> 'a t -> 'a t
     (** [remove x m] returns a map containing the same bindings as
        [m], except for [x] which is unbound in the returned map. *)
 
-    val mem: key -> 'a t -> bool
-    (** [mem x m] returns [true] if [m] contains a binding for [x],
-       and [false] otherwise. *)
+    val merge:
+         (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+    (** [merge f m1 m2] computes a map whose keys is a subset of keys of [m1]
+        and of [m2]. The presence of each such binding, and the corresponding
+        value, is determined with the function [f].
+        @since 3.12.0
+     *)
+
+    val compare: ('a -> 'a -> int) -> 'a t -> 'a t -> int
+    (** Total ordering between maps.  The first argument is a total ordering
+        used to compare data associated with equal keys in the two maps. *)
+
+    val equal: ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+    (** [equal cmp m1 m2] tests whether the maps [m1] and [m2] are
+       equal, that is, contain equal keys and associate them with
+       equal data.  [cmp] is the equality predicate used to compare
+       the data associated with the keys. *)
 
     val iter: (key -> 'a -> unit) -> 'a t -> unit
     (** [iter f m] applies [f] to all bindings in map [m].
@@ -75,6 +95,85 @@ module type S =
        as second argument.  The bindings are passed to [f] in increasing
        order with respect to the ordering over the type of the keys. *)
 
+    val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
+    (** [fold f m a] computes [(f kN dN ... (f k1 d1 a)...)],
+       where [k1 ... kN] are the keys of all bindings in [m]
+       (in increasing order), and [d1 ... dN] are the associated data. *)
+
+    val for_all: (key -> 'a -> bool) -> 'a t -> bool
+    (** [for_all p m] checks if all the bindings of the map
+        satisfy the predicate [p].
+        @since 3.12.0
+     *)
+
+    val exists: (key -> 'a -> bool) -> 'a t -> bool
+    (** [exists p m] checks if at least one binding of the map
+        satisfy the predicate [p].
+        @since 3.12.0
+     *)
+
+    val filter: (key -> 'a -> bool) -> 'a t -> 'a t
+    (** [filter p m] returns the map with all the bindings in [m]
+        that satisfy predicate [p].
+        @since 3.12.0
+     *)
+
+    val partition: (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
+    (** [partition p m] returns a pair of maps [(m1, m2)], where
+        [m1] contains all the bindings of [s] that satisfy the
+        predicate [p], and [m2] is the map with all the bindings of
+        [s] that do not satisfy [p].
+        @since 3.12.0
+     *)
+
+    val cardinal: 'a t -> int
+    (** Return the number of bindings of a map.
+        @since 3.12.0
+     *)
+
+    val bindings: 'a t -> (key * 'a) list
+    (** Return the list of all bindings of the given map.
+       The returned list is sorted in increasing order with respect
+       to the ordering [Ord.compare], where [Ord] is the argument
+       given to {!Map.Make}.
+        @since 3.12.0
+     *)
+
+    val min_binding: 'a t -> (key * 'a)
+    (** Return the smallest binding of the given map
+       (with respect to the [Ord.compare] ordering), or raise
+       [Not_found] if the map is empty.
+        @since 3.12.0
+     *)
+
+    val max_binding: 'a t -> (key * 'a)
+    (** Same as {!Map.S.max_binding}, but returns the largest binding
+        of the given map.
+        @since 3.12.0
+     *)
+
+    val choose: 'a t -> (key * 'a)
+    (** Return one binding of the given map, or raise [Not_found] if
+       the map is empty. Which binding is chosen is unspecified,
+       but equal bindings will be chosen for equal maps.
+        @since 3.12.0
+     *)
+
+    val split: key -> 'a t -> 'a t * 'a option * 'a t
+    (** [split x m] returns a triple [(l, data, r)], where
+          [l] is the map with all the bindings of [m] whose key
+        is strictly less than [x];
+          [r] is the map with all the bindings of [m] whose key
+        is strictly greater than [x];
+          [data] is [None] if [m] contains no binding for [x],
+          or [Some v] if [m] binds [v] to [x].
+        @since 3.12.0
+     *)
+
+    val find: key -> 'a t -> 'a
+    (** [find x m] returns the current binding of [x] in [m],
+       or raises [Not_found] if no such binding exists. *)
+
     val map: ('a -> 'b) -> 'a t -> 'b t
     (** [map f m] returns a map with same domain as [m], where the
        associated value [a] of all bindings of [m] has been
@@ -86,20 +185,6 @@ module type S =
     (** Same as {!Map.S.map}, but the function receives as arguments both the
        key and the associated value for each binding of the map. *)
 
-    val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    (** [fold f m a] computes [(f kN dN ... (f k1 d1 a)...)],
-       where [k1 ... kN] are the keys of all bindings in [m]
-       (in increasing order), and [d1 ... dN] are the associated data. *)
-
-    val compare: ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    (** Total ordering between maps.  The first argument is a total ordering
-        used to compare data associated with equal keys in the two maps. *)
-
-    val equal: ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    (** [equal cmp m1 m2] tests whether the maps [m1] and [m2] are
-       equal, that is, contain equal keys and associate them with
-       equal data.  [cmp] is the equality predicate used to compare
-       the data associated with the keys. *)
 
   end
 (** Output signature of the functor {!Map.Make}. *)
index 0410a23e991d76fdca011f5695d8ecc1a55fa835..f2eaf00dbb23099e379f990a3800a3c431a7cfee 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: marshal.ml 7164 2005-10-25 18:34:07Z doligez $ *)
 
 type extern_flags =
     No_sharing
index ac0775bb16872127b83a07cd25291e33d06cea4a..16ba32c1b539fbd976bb91ab14536b34e3738518 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: marshal.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Marshaling of data structures.
 
index f6cfddabc6687eb33be0dcd8f8d33242a5c58754..567c316f5cc3c09b86c751480795e5e1c7da8551 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: moreLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 (* Module [MoreLabels]: meta-module for compatibility labelled libraries *)
 
index fbf848cba8b6a71cedada28f25453711803a7f3a..96f9119cc39b6233e68a2600fa29cf5f59a0dfbd 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: moreLabels.mli 10468 2010-05-25 13:29:43Z frisch $ *)
 
 (** Extra labeled libraries.
 
@@ -73,18 +73,30 @@ module Map : sig
       and (+'a) t
       val empty : 'a t
       val is_empty: 'a t -> bool
+      val mem : key -> 'a t -> bool
       val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
+      val singleton: key -> 'a -> 'a t
       val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
+      val merge: f:(key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+      val compare: cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
+      val equal: cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
       val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
       val fold :
           f:(key:key -> data:'a -> 'b -> 'b) ->
           'a t -> init:'b -> 'b
-      val compare: cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal: cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+      val for_all: f:(key -> 'a -> bool) -> 'a t -> bool
+      val exists: f:(key -> 'a -> bool) -> 'a t -> bool
+      val filter: f:(key -> 'a -> bool) -> 'a t -> 'a t
+      val partition: f:(key -> 'a -> bool) -> 'a t -> 'a t * 'a t
+      val cardinal: 'a t -> int
+      val bindings: 'a t -> (key * 'a) list
+      val min_binding: 'a t -> (key * 'a)
+      val max_binding: 'a t -> (key * 'a)
+      val choose: 'a t -> (key * 'a)
+      val split: key -> 'a t -> 'a t * 'a option * 'a t
+      val find : key -> 'a t -> 'a
+      val map : f:('a -> 'b) -> 'a t -> 'b t
+      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
   end
   module Make : functor (Ord : OrderedType) -> S with type key = Ord.t
 end
index 934784361990e6b085cb29b63bf13a1db1dfa7dc..126e4d380c1766c51dd0db121356ad5d9b7678da 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: nativeint.ml 7818 2007-01-30 09:34:36Z xleroy $ *)
 
 (* Module [Nativeint]: processor-native integers *)
 
index ff499a26f8abd78d5ad81aa68ed40e3d3c572dab..dd3fd7f764fcc7fe98a44d2b57528e1cb492be70 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: nativeint.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Processor-native integers.
 
index c16b511560759d244dbd3fb8c1301f14731e0744..0d3c2728c24ac726a6273b58d55d15a456acb223 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: obj.ml 9561 2010-01-25 11:55:30Z doligez $ *)
 
 (* Operations on internal representations of values *)
 
index d9c876019f23b336e7fe813a7af4ed4934c13bd6..7da25aec1810da214c9cb2ebd4894ad12be462c1 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: obj.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Operations on internal representations of values.
 
@@ -30,12 +30,13 @@ external set_tag : t -> int -> unit = "caml_obj_set_tag"
 external size : t -> int = "%obj_size"
 external field : t -> int -> t = "%obj_field"
 external set_field : t -> int -> t -> unit = "%obj_set_field"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
+val double_field : t -> int -> float  (* @since 3.11.2 *)
+val set_double_field : t -> int -> float -> unit  (* @since 3.11.2 *)
 external new_block : int -> int -> t = "caml_obj_block"
 external dup : t -> t = "caml_obj_dup"
 external truncate : t -> int -> unit = "caml_obj_truncate"
 external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
+         (* @since 3.12.0 *)
 
 val lazy_tag : int
 val closure_tag : int
@@ -52,7 +53,7 @@ val final_tag : int  (* DEPRECATED *)
 
 val int_tag : int
 val out_of_heap_tag : int
-val unaligned_tag : int   (* should never happen *)
+val unaligned_tag : int   (* should never happen @since 3.11.0 *)
 
 (** The following two functions are deprecated.  Use module {!Marshal}
     instead. *)
index c9ec64ae44dccaa51f195f3effecdaa5f18487ce..c7322c849b0a95f2ebf3a2e51c40a01103c0b9a2 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: oo.ml 6331 2004-05-26 11:10:52Z garrigue $ *)
 
 let copy = CamlinternalOO.copy
 external id : < .. > -> int = "%field1"
index b3111ce85704d8dac8456e1a84d9d502700c0e4d..7ff2f1bc39a2e1727ee12d6d2a39bbd7852187e0 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: oo.mli 6331 2004-05-26 11:10:52Z garrigue $ *)
 
 (** Operations on objects *)
 
index 44c7fb27155f1bb947a730d1ab7d852043ec4c2c..11e169e09aa037d4b77e52f0fc52b013032feb6a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parsing.ml 9270 2009-05-20 11:52:42Z doligez $ *)
 
 (* The parsing engine *)
 
index c323922cfad8910f2f89e6daa4995031149cddf7..21f38cd3c519081f6664f6a7a343554b4581904a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parsing.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** The run-time library for parsers generated by [ocamlyacc]. *)
 
@@ -65,7 +65,9 @@ val set_trace: bool -> bool
     executes the parsers prints a trace of its actions (reading a token,
     shifting a state, reducing by a rule) on standard output.
     [Parsing.set_trace false] turns this debugging trace off.
-    The boolean returned is the previous state of the trace flag. *)
+    The boolean returned is the previous state of the trace flag.
+    @since 3.11.0
+*)
 
 (**/**)
 
index c4f0bcfd84a3b46e68f24547758db6ad5efa98b7..38d8eebd5337327724fc3133c3e42cd7d1112ef6 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pervasives.ml 10549 2010-06-09 10:27:01Z weis $ *)
 
 (* type 'a option = None | Some of 'a *)
 
@@ -51,6 +51,7 @@ external (||) : bool -> bool -> bool = "%sequor"
 (* Integer operations *)
 
 external (~-) : int -> int = "%negint"
+external (~+) : int -> int = "%identity"
 external succ : int -> int = "%succint"
 external pred : int -> int = "%predint"
 external (+) : int -> int -> int = "%addint"
@@ -77,6 +78,7 @@ let max_int = min_int - 1
 (* Floating-point operations *)
 
 external (~-.) : float -> float = "%negfloat"
+external (~+.) : float -> float = "%identity"
 external (+.) : float -> float -> float = "%addfloat"
 external (-.) : float -> float -> float = "%subfloat"
 external ( *. ) : float -> float -> float = "%mulfloat"
index 754125f9e88ce8f261a096350425487a01236978..ae85bd03913a4963dbbc71a91dd8c192935e8129 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: pervasives.mli 10548 2010-06-09 10:26:19Z weis $ *)
 
 (** The initially opened module.
 
@@ -127,7 +127,7 @@ external ( && ) : bool -> bool -> bool = "%sequand"
    [e2] is not evaluated at all. *)
 
 external ( & ) : bool -> bool -> bool = "%sequand"
-(** @deprecated {!Pervasives.(&&)} should be used instead. *)
+(** @deprecated {!Pervasives.( && )} should be used instead. *)
 
 external ( || ) : bool -> bool -> bool = "%sequor"
 (** The boolean ``or''. Evaluation is sequential, left-to-right:
@@ -135,7 +135,7 @@ external ( || ) : bool -> bool -> bool = "%sequor"
    [e2] is not evaluated at all. *)
 
 external ( or ) : bool -> bool -> bool = "%sequor"
-(** @deprecated {!Pervasives.(||)} should be used instead.*)
+(** @deprecated {!Pervasives.( || )} should be used instead.*)
 
 
 (** {6 Integer arithmetic} *)
@@ -145,13 +145,18 @@ external ( or ) : bool -> bool -> bool = "%sequor"
    They do not fail on overflow. *)
 
 external ( ~- ) : int -> int = "%negint"
-(** Unary negation. You can also write [-e] instead of [~-e]. *)
+(** Unary negation. You can also write [- e] instead of [~- e]. *)
+
+external ( ~+ ) : int -> int = "%identity"
+(** Unary addition. You can also write [+ e] instead of [~+ e].
+    @since 3.12.0
+*)
 
 external succ : int -> int = "%succint"
-(** [succ x] is [x+1]. *)
+(** [succ x] is [x + 1]. *)
 
 external pred : int -> int = "%predint"
-(** [pred x] is [x-1]. *)
+(** [pred x] is [x - 1]. *)
 
 external ( + ) : int -> int -> int = "%addint"
 (** Integer addition. *)
@@ -168,15 +173,15 @@ external ( / ) : int -> int -> int = "%divint"
    Integer division rounds the real quotient of its arguments towards zero.
    More precisely, if [x >= 0] and [y > 0], [x / y] is the greatest integer
    less than or equal to the real quotient of [x] by [y].  Moreover,
-   [(-x) / y = x / (-y) = -(x / y)].  *)
+   [(- x) / y = x / (- y) = - (x / y)].  *)
 
 external ( mod ) : int -> int -> int = "%modint"
 (** Integer remainder.  If [y] is not zero, the result
    of [x mod y] satisfies the following properties:
    [x = (x / y) * y + x mod y] and
-   [abs(x mod y) <= abs(y)-1].
+   [abs(x mod y) <= abs(y) - 1].
    If [y = 0], [x mod y] raises [Division_by_zero].
-   Notice that [x mod y] is nonpositive if and only if [x < 0].
+   Note that [x mod y] is negative only if [x < 0].
    Raise [Division_by_zero] if [y] is zero. *)
 
 val abs : int -> int
@@ -237,7 +242,12 @@ external ( asr ) : int -> int -> int = "%asrint"
 *)
 
 external ( ~-. ) : float -> float = "%negfloat"
-(** Unary negation. You can also write [-.e] instead of [~-.e]. *)
+(** Unary negation. You can also write [-. e] instead of [~-. e]. *)
+
+external ( ~+. ) : float -> float = "%identity"
+(** Unary addition. You can also write [+. e] instead of [~+. e].
+    @since 3.12.0
+*)
 
 external ( +. ) : float -> float -> float = "%addfloat"
 (** Floating-point addition *)
@@ -268,11 +278,15 @@ external log10 : float -> float = "caml_log10_float" "log10" "float"
 
 external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
 (** [expm1 x] computes [exp x -. 1.0], giving numerically-accurate results
-    even if [x] is close to [0.0]. *)
+    even if [x] is close to [0.0].
+    @since 3.12.0
+*)
 
 external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
 (** [log1p x] computes [log(1.0 +. x)] (natural logarithm),
-    giving numerically-accurate results even if [x] is close to [0.0]. *)
+    giving numerically-accurate results even if [x] is close to [0.0].
+    @since 3.12.0
+*)
 
 external cos : float -> float = "caml_cos_float" "cos" "float"
 (** Cosine.  Argument is in radians. *)
index 9e435c590b2b552fc8d0c845d7e571d97d6e1493..270862dd066dda04ddca8aa8e26530ba61905801 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printexc.ml 10272 2010-04-19 12:25:46Z frisch $ *)
 
 open Printf;;
 
index 166b4988942c6c613cb820666eb520c28a8fa267..ba6260b80b219a8f759be5b66647c1aa1bf7b237 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printexc.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Facilities for printing exceptions. *)
 
@@ -41,22 +41,30 @@ val print_backtrace: out_channel -> unit
 (** [Printexc.print_backtrace oc] prints an exception backtrace
     on the output channel [oc].  The backtrace lists the program
     locations where the most-recently raised exception was raised
-    and where it was propagated through function calls. *)
+    and where it was propagated through function calls.
+    @since 3.11.0
+*)
 
 val get_backtrace: unit -> string
 (** [Printexc.get_backtrace ()] returns a string containing the
     same exception backtrace that [Printexc.print_backtrace] would
-    print. *)
+    print.
+    @since 3.11.0
+*)
 
 val record_backtrace: bool -> unit
 (** [Printexc.record_backtrace b] turns recording of exception backtraces
     on (if [b = true]) or off (if [b = false]).  Initially, backtraces
     are not recorded, unless the [b] flag is given to the program
-    through the [OCAMLRUNPARAM] variable.  *)
+    through the [OCAMLRUNPARAM] variable.
+    @since 3.11.0
+*)
 
 val backtrace_status: unit -> bool
 (** [Printexc.backtrace_status()] returns [true] if exception
-    backtraces are currently recorded, [false] if not. *)
+    backtraces are currently recorded, [false] if not.
+    @since 3.11.0
+*)
 
 val register_printer: (exn -> string option) -> unit
 (** [Printexc.register_printer fn] registers [fn] as an exception
@@ -68,4 +76,6 @@ val register_printer: (exn -> string option) -> unit
     When converting an exception into a string, the printers will be invoked
     in the reverse order of their registrations, until a printer returns
     a [Some s] value (if no such printer exists, the runtime will use a
-    generic printer). *)
+    generic printer).
+    @since 3.11.2
+*)
index a16c9184a1b529650531446a1c56ff7449287189..e253c9f380e38f944804a85d5984f0cb6931c5e6 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printf.ml 9463 2009-12-09 08:28:59Z weis $ *)
 
 external format_float: string -> float -> string
   = "caml_format_float"
index 43106505a3ce33cd157b24c54aa143da32442293..1bf2a9ce361b4ebbe41b2546a6848905a84ba95c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printf.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Formatted output functions. *)
 
@@ -111,7 +111,9 @@ val eprintf : ('a, out_channel, unit) format -> 'a
 
 val ifprintf : 'a -> ('b, 'a, unit) format -> 'b
 (** Same as {!Printf.fprintf}, but does not print anything.
-    Useful to ignore some material when conditionally printing. *)
+    Useful to ignore some material when conditionally printing.
+    @since 3.10.0
+*)
 
 val sprintf : ('a, unit, string) format -> 'a
 (** Same as {!Printf.fprintf}, but instead of printing on an output channel,
@@ -127,16 +129,22 @@ val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
 val kfprintf : (out_channel -> 'a) -> out_channel ->
               ('b, out_channel, unit, 'a) format4 -> 'b;;
 (** Same as [fprintf], but instead of returning immediately,
-   passes the out channel to its first argument at the end of printing. *)
+   passes the out channel to its first argument at the end of printing.
+   @since 3.09.0
+*)
 
 val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b;;
 (** Same as [sprintf] above, but instead of returning the string,
-   passes it to the first argument. *)
+   passes it to the first argument.
+   @since 3.09.0
+*)
 
 val kbprintf : (Buffer.t -> 'a) -> Buffer.t ->
               ('b, Buffer.t, unit, 'a) format4 -> 'b;;
 (** Same as [bprintf], but instead of returning immediately,
-   passes the buffer to its first argument at the end of printing. *)
+   passes the buffer to its first argument at the end of printing.
+   @since 3.10.0
+*)
 
 val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b;;
 (** A deprecated synonym for [ksprintf]. *)
index 9e21686a13b1912e1731c1e5813855a0fae9b4cc..d7d66a8419a6dc1667af92ccf49d999dfb39af51 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: queue.ml 7032 2005-08-26 12:10:47Z doligez $ *)
 
 exception Empty
 
index 085cfb003e1036616cdc049c8880ba6af570df98..d8b802e90048ce1aadb4df44db4be318d6f3b19c 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: queue.mli 4956 2002-06-27 08:48:26Z xleroy $ *)
 
 (** First-in first-out queues.
 
index bd3979914a85972c4a77d796e6400e7a5ab1b05c..dde660dbc788c78bbf14a7d917e43f8315a20a71 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: random.ml 9621 2010-02-05 17:34:14Z doligez $ *)
 
 (* Pseudo-random number generator
    This is a lagged-Fibonacci F(55, 24, +) with a modified addition
index 587a78206c1a9443743f4751a6a4cf9bb3afe2e8..22792e8a631ff3da24a22da730cae7328d5badc9 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: random.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Pseudo-random number generators (PRNG). *)
 
@@ -29,7 +29,10 @@ val self_init : unit -> unit
    in a system-dependent way. *)
 
 val bits : unit -> int
-(** Return 30 random bits in a nonnegative integer. *)
+(** Return 30 random bits in a nonnegative integer.
+    @before 3.12.0 used a different algorithm (affects all the following
+                   functions)
+*)
 
 val int : int -> int
 (** [Random.int bound] returns a random integer between 0 (inclusive)
index 3d3d16c233b9c439ff8585ad3bb46e21fca3ceff..f4b2c22466bd3bf84d97aaa59eef90ec06d0a982 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scanf.ml 10377 2010-05-05 17:49:19Z weis $ *)
 
 (* The run-time library for scanners. *)
 
index dae3000c737a29e2838b838877af41e9e902ed70..9ab1f8d91483fa84094a69271f68bd6391d0d933 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scanf.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** Formatted input functions. *)
 
@@ -86,7 +86,9 @@ type in_channel;;
    [Pervasives.in_channel] value.
    A [Scanf.Scanning.in_channel] value is also called a {i formatted input
    channel} or equivalently a {i scanning buffer}.
-   The type [scanbuf] below is an alias for [in_channel]. *)
+   The type [scanbuf] below is an alias for [in_channel].
+   @since 3.12.0
+*)
 
 type scanbuf = in_channel;;
 (** The type of scanning buffers. A scanning buffer is the source from which a
@@ -106,7 +108,9 @@ val stdin : in_channel;;
     Note: when input is read interactively from [stdin], the newline character
     that triggers the evaluation is incorporated in the input; thus, scanning
     specifications must properly skip this character (simply add a ['\n']
-    as the last character of the format string). *)
+    as the last character of the format string).
+    @since 3.12.0
+*)
 
 val open_in : string -> in_channel;;
 (** Bufferized file reading in text mode. The efficient and usual
@@ -114,14 +118,18 @@ val open_in : string -> in_channel;;
     scanning buffer that reads characters in large chunks, rather than one
     character at a time as buffers returned by [from_channel] below do).
     [Scanning.from_file fname] returns a scanning buffer which reads
-    from the given file [fname] in text mode. *)
+    from the given file [fname] in text mode.
+    @since 3.12.0
+*)
 
 val open_in_bin : string -> in_channel;;
-(** Bufferized file reading in binary mode. *)
+(** Bufferized file reading in binary mode. @since 3.12.0 *)
 
 val close_in : in_channel -> unit;;
 (** Close the [Pervasives.input_channel] associated with the given
-  [Scanning.in_channel]. *)
+  [Scanning.in_channel].
+  @since 3.12.0
+*)
 
 val from_file : string -> in_channel;;
 (** An alias for [open_in] above. *)
@@ -158,7 +166,9 @@ val beginning_of_input : in_channel -> bool;;
 
 val name_of_input : in_channel -> string;;
 (** [Scanning.file_name_of_input ic] returns the name of the character source
-    for the formatted input channel [ic]. *)
+    for the formatted input channel [ic].
+    @since 3.09.0
+*)
 
 val stdib : in_channel;;
 (** A deprecated alias for [Scanning.stdin], the scanning buffer reading from
@@ -186,7 +196,9 @@ type ('a, 'b, 'c, 'd) scanner =
     functions must be provided before the receiver [f] argument. For
     instance, if [read_elem] is an input function for values of type [t],
     then [bscanf ic "%r;" read_elem f] reads a value [v] of type [t] followed
-    by a [';'] character, and returns [f v]. *)
+    by a [';'] character, and returns [f v].
+    @since 3.10.0
+*)
 
 exception Scan_failure of string;;
 (** The exception that formatted input functions raise when the input cannot be
@@ -439,12 +451,16 @@ val bscanf_format :
     input channel [ic], according to the given format string [fmt], and
     applies [f] to the resulting format string value.
     Raise [Scan_failure] if the format string value read does not have the
-    same type as [fmt]. *)
+    same type as [fmt].
+    @since 3.09.0
+*)
 
 val sscanf_format :
   string -> ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
     (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g;;
-(** Same as {!Scanf.bscanf_format}, but reads from the given string. *)
+(** Same as {!Scanf.bscanf_format}, but reads from the given string.
+    @since 3.09.0
+*)
 
 val format_from_string :
   string ->
@@ -452,4 +468,6 @@ val format_from_string :
 (** [format_from_string s fmt] converts a string argument to a format string,
     according to the given format string [fmt].
     Raise [Scan_failure] if [s], considered as a format string, does not
-    have the same type as [fmt]. *)
+    have the same type as [fmt].
+    @since 3.10.0
+*)
index 375fc5d0e4dac8bda32a08413ec63f969eb852e1..103595e380b7c745125147bda51a3fb1a2b120b5 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: set.ml 6694 2004-11-25 00:06:06Z doligez $ *)
 
 (* Sets over ordered types *)
 
index 851a9ef51c76babe742c9a785e15095964f17779..d8317bc2bce40fad45e0802c3fa77b9019f9c757 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: set.mli 6974 2005-07-21 14:52:45Z doligez $ *)
 
 (** Sets over ordered types.
 
index 7c53ab777499d25bcdbff9c46cc5bb1980c80c32..4bc0b8f538de317f79eb7873f4d2a1a7111c75ac 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: sort.ml 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (* Merging and sorting *)
 
index 7069052eb4711e29966617433487184aaa5558a3..4a2a217b83b1043beab528a442480deb6fa4caf7 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: sort.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Sorting and merging lists.
 
index 03277d0794d0f362b3739a3509dce90315018e22..94008f5a7c9c1ea6b9488524a8ec06d713849ff8 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stack.ml 4956 2002-06-27 08:48:26Z xleroy $ *)
 
 type 'a t = { mutable c : 'a list }
 
index bf33d01aba95cba218a6223c78403a14f7641ce2..dc305898891c496b68e6c50379a820de3a88cad6 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stack.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Last-in first-out stacks.
 
index bd6a5841de6a8c22bc8da3d06ae3c1ea81d58825..d0f9730a8dbaf75d71bf91e6ea71683f4bb4cc8e 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stdLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 (* Module [StdLabels]: meta-module for labelled libraries *)
 
index 73f72dc6874f0659d53ef5d8ed98c8b64b6d4edd..325afd6b7241cb66ba55a646bc875e123a05986b 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stdLabels.mli 6694 2004-11-25 00:06:06Z doligez $ *)
 
 (** Standard labeled libraries.
 
index 6f5ff301aa089f60cf9008416e04eb671cc79709..f000f4b4a9a6487e9fb663672cdb96fa77be3735 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: std_exit.ml 4144 2001-12-07 13:41:02Z xleroy $ *)
 
 (* Ensure that [at_exit] functions are called at the end of every program *)
 
index 91265e5da92fd62f021023e49811013085938444..803c952358cca11b1ce662f9eaeb762c604cea8b 100644 (file)
@@ -1,7 +1,7 @@
 # This file lists all standard library modules
 # (in the same order as Makefile.shared).
 # It is used in particular to know what to expunge in toplevels.
-# $Id$
+# $Id: stdlib.mllib 9540 2010-01-20 16:26:46Z doligez $
 
 Pervasives
 Array
index aa6a2a2ab263a0b3d26a91a55f092f8fef1f5ea6..c1a74ac8a1e7220716bd743cfb2caca2308e126f 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stream.ml 8893 2008-06-18 15:35:02Z mauny $ *)
 
 (* The fields of type t are not mutable to preserve polymorphism of
    the empty stream. This is type safe because the empty stream is never
index 28cfd3a1c4e9e37722fb8c56030aac99ad1e67e5..05b9b523866269bf42e942b8e35b066d086328f0 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stream.mli 7164 2005-10-25 18:34:07Z doligez $ *)
 
 (** Streams and parsers. *)
 
index 0cb67d289fca8f0278abb9f03f9d63bf14d7eb6b..767562d7d94a8327ff3a6e30e6dd1e88a5aad93d 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: string.ml 9153 2008-12-03 18:09:09Z doligez $ *)
 
 (* String operations *)
 
index 21bfb7c0e1987e9b1aa829ee88c3f602fce8bb2c..383319b665f05247d47382bd51022c0cb8527bca 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: string.mli 9153 2008-12-03 18:09:09Z doligez $ *)
 
 (** String operations.
   Given a string [s] of length [l], we call character number in [s]
index 87d23d86fcfedbbb8944d2c1c9680519b6019100..86701dcc229df860299141f6d081e9d13a48c08a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stringLabels.ml 6054 2004-01-03 22:08:38Z doligez $ *)
 
 (* Module [StringLabels]: labelled String module *)
 
index 9cbee708bbdf746d7f965be4df0f20d54b0b0955..3e16254ce081ec5ca8f788d9150a9ec1c2b4e896 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stringLabels.mli 7805 2007-01-22 08:06:09Z garrigue $ *)
 
 (** String operations. *)
 
index c88e8812db8247b4324a4da203b9b3a505e2a3f7..b6bf631a4bc3c67a2b3a41984ec811582266bacf 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: sys.mli 10457 2010-05-21 18:30:12Z doligez $ *)
 
 (** System interface. *)
 
@@ -30,7 +30,9 @@ external file_exists : string -> bool = "caml_sys_file_exists"
 external is_directory : string -> bool = "caml_sys_is_directory"
 (** Returns [true] if the given name refers to a directory,
     [false] if it refers to another kind of file.
-    Raise [Sys_error] if no file exists with the given name. *)
+    Raise [Sys_error] if no file exists with the given name.
+    @since 3.12.0
+*)
 
 external remove : string -> unit = "caml_sys_remove"
 (** Remove the given file name from the file system. *)
index b58ca0bb3a63740e6fb664f42daab91af58dad2b..03e2b91f65cb9b759dbd9475eb3175802d5d7412 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: sys.mlp 7927 2007-02-26 14:21:57Z xleroy $ *)
 
 (* WARNING: sys.ml is generated from sys.mlp.  DO NOT EDIT sys.ml or
    your changes will be lost.
index 4adacd8e4a7a3e6ec71ad8e3c0cde578b4df5f97..4799c74c020b864be12c28bcc32823f3392b9d6a 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: weak.ml 8823 2008-02-29 14:21:22Z doligez $ *)
 
 (** Weak array operations *)
 
index 33f4bf1d0ce07401e449ca48c877bcbb7b833539..118007bbe500d902e2ff5f5c23f9e2ada77127d9 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: weak.mli 9153 2008-12-03 18:09:09Z doligez $ *)
 
 (** Arrays of weak pointers and hash tables of weak pointers. *)
 
diff --git a/test/.cvsignore b/test/.cvsignore
deleted file mode 100644 (file)
index 66d34d7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-*.byt
-*.out
diff --git a/test/.depend b/test/.depend
deleted file mode 100644 (file)
index ac5de61..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-KB/equations.cmi: KB/terms.cmi 
-KB/kb.cmi: KB/equations.cmi KB/terms.cmi 
-KB/orderings.cmi: KB/terms.cmi 
-KB/equations.cmo: KB/equations.cmi KB/terms.cmi 
-KB/equations.cmx: KB/equations.cmi KB/terms.cmx 
-KB/kb.cmo: KB/kb.cmi KB/equations.cmi KB/terms.cmi 
-KB/kb.cmx: KB/kb.cmi KB/equations.cmx KB/terms.cmx 
-KB/kbmain.cmo: KB/kb.cmi KB/orderings.cmi KB/equations.cmi KB/terms.cmi 
-KB/kbmain.cmx: KB/kb.cmx KB/orderings.cmx KB/equations.cmx KB/terms.cmx 
-KB/orderings.cmo: KB/orderings.cmi KB/terms.cmi 
-KB/orderings.cmx: KB/orderings.cmi KB/terms.cmx 
-KB/terms.cmo: KB/terms.cmi 
-KB/terms.cmx: KB/terms.cmi 
-Lex/grammar.cmi: Lex/syntax.cmo 
-Lex/gram_aux.cmo: Lex/syntax.cmo 
-Lex/gram_aux.cmx: Lex/syntax.cmx 
-Lex/grammar.cmo: Lex/grammar.cmi Lex/gram_aux.cmo Lex/syntax.cmo 
-Lex/grammar.cmx: Lex/grammar.cmi Lex/gram_aux.cmx Lex/syntax.cmx 
-Lex/lexgen.cmo: Lex/syntax.cmo 
-Lex/lexgen.cmx: Lex/syntax.cmx 
-Lex/main.cmo: Lex/lexgen.cmo Lex/output.cmo Lex/grammar.cmi \
-    Lex/scanner.cmo Lex/syntax.cmo Lex/scan_aux.cmo 
-Lex/main.cmx: Lex/lexgen.cmx Lex/output.cmx Lex/grammar.cmx \
-    Lex/scanner.cmx Lex/syntax.cmx Lex/scan_aux.cmx 
-Lex/output.cmo: Lex/syntax.cmo 
-Lex/output.cmx: Lex/syntax.cmx 
-Lex/scanner.cmo: Lex/syntax.cmo Lex/scan_aux.cmo Lex/grammar.cmi 
-Lex/scanner.cmx: Lex/syntax.cmx Lex/scan_aux.cmx Lex/grammar.cmx 
diff --git a/test/test_bng.c b/test/test_bng.c
deleted file mode 100644 (file)
index 2d6a6e8..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                           Objective Caml                            */
-/*                                                                     */
-/*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         */
-/*                                                                     */
-/*  Copyright 2003 Institut National de Recherche en Informatique et   */
-/*  en Automatique.  All rights reserved.  This file is distributed    */
-/*  under the terms of the GNU Library General Public License, with    */
-/*  the special exception on linking described in file ../../LICENSE.  */
-/*                                                                     */
-/***********************************************************************/
-
-/* $Id: test_bng.c 5900 2003-11-07 07:59:10Z xleroy $ */
-
-/* Test harness for the BNG primitives.  Use BigNum as a reference. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <BigNum.h>
-
-#include "../../../config/m.h"
-#include "bng.h"
-
-#if defined(__GNUC__) && BNG_ASM_LEVEL > 0
-#if defined(BNG_ARCH_ia32)
-#include "bng_ia32.c"
-#elif defined(BNG_ARCH_amd64)
-#include "bng_amd64.c"
-#elif defined(BNG_ARCH_ppc)
-#include "bng_ppc.c"
-#elif defined (BNG_ARCH_alpha)
-#include "bng_alpha.c"
-#elif defined (BNG_ARCH_sparc)
-#include "bng_sparc.c"
-#elif defined (BNG_ARCH_mips)
-#include "bng_mips.c"
-#endif
-#endif
-
-#include "bng_digit.c"
-
-/* Random generator for digits.  Can either generate "true" PRN numbers
-   or numbers consisting of long sequences of 0 and 1 bits. */
-
-static int rand_skewed = 0;
-static int rand_runlength = 0;
-static int rand_bit = 0;
-static bngdigit rand_seed = 0;
-
-static bngdigit randdigit(void)
-{
-  bngdigit res;
-  int i;
-
-  if (rand_skewed) {
-    for (i = 0, res = 0; i < BNG_BITS_PER_DIGIT; i++) {
-      if (rand_runlength == 0) {
-        rand_runlength = 1 + (rand() % (2 * BNG_BITS_PER_DIGIT));
-        rand_bit ^= 1;
-      }
-      res = (res << 1) | rand_bit;
-      rand_runlength--;
-    }
-    return res;
-  } else {
-    rand_seed = rand_seed * 69069 + 25173;
-    return rand_seed;
-  }
-}
-
-/* Test the operations on digits.  
-   This uses double-width integer arithmetic as reference.
-   This is only available on 32-bit platforms that support a 64-bit int type.
-*/
-
-#if defined(ARCH_UINT64_TYPE) && !defined(ARCH_SIXTYFOUR)
-
-typedef ARCH_UINT64_TYPE dbldigit;
-
-static int test_digit_ops(int i)
-{
-  bngdigit a1, a2, a3, r1, r2;
-  int ci, co, n;
-
-  a1 = randdigit();
-  a2 = randdigit();
-  a3 = randdigit();
-  ci = randdigit() & 1;
-
-  BngAdd2(r1,co,a1,a2);
-  if ((dbldigit) r1 + ((dbldigit) co << BNG_BITS_PER_DIGIT)
-      != (dbldigit) a1 + (dbldigit) a2) {
-    printf("Round %d, BngAdd2(%lx,%x,%lx, %lx)\n", i, r1, co, a1, a2);
-    return 1;
-  }
-
-  BngAdd2Carry(r1,co,a1,a2,ci);
-  if ((dbldigit) r1 + ((dbldigit) co << BNG_BITS_PER_DIGIT)
-      != (dbldigit) a1 + (dbldigit) a2 + (dbldigit) ci) {
-    printf("Round %d, BngAdd2Carry(%lx,%x,%lx, %lx, %x)\n", i, r1, co, a1, a2, ci);
-    return 1;
-  }
-
-  r2 = 0;
-  BngAdd3(r1,r2,a1,a2,a3);
-  if ((dbldigit) r1 + ((dbldigit) r2 << BNG_BITS_PER_DIGIT)
-      != (dbldigit) a1 + (dbldigit) a2 + (dbldigit) a3) {
-    printf("Round %d, BngAdd3(%lx,%x,%lx, %lx, %lx)\n", i, r1, co, a1, a2, a3);
-    return 1;
-  }
-
-  BngSub2(r1,co,a1,a2);
-  if ((dbldigit) r1 - ((dbldigit) co << BNG_BITS_PER_DIGIT)
-      != (dbldigit) a1 - (dbldigit) a2) {
-    printf("Round %d, BngSub2(%lx,%x,%lx, %lx)\n", i, r1, co, a1, a2);
-    return 1;
-  }
-
-  BngSub2Carry(r1,co,a1,a2,ci);
-  if ((dbldigit) r1 - ((dbldigit) co << BNG_BITS_PER_DIGIT)
-      != (dbldigit) a1 - (dbldigit) a2 - (dbldigit) ci) {
-    printf("Round %d, BngSub2Carry(%lx,%x,%lx, %lx, %x)\n", i, r1, co, a1, a2, ci);
-    return 1;
-  }
-
-  r2 = 0;
-  BngSub3(r1,r2,a1,a2,a3);
-  if ((dbldigit) r1 - ((dbldigit) r2 << BNG_BITS_PER_DIGIT)
-      != (dbldigit) a1 - (dbldigit) a2 - (dbldigit) a3) {
-    printf("Round %d, BngSub3(%lx,%x,%lx, %lx, %lx)\n", i, r1, co, a1, a2, a3);
-    return 1;
-  }
-
-  BngMult(r1,r2,a1,a2);
-  if ((((dbldigit) r1 << BNG_BITS_PER_DIGIT) | (dbldigit) r2)
-      != (dbldigit) a1 * (dbldigit) a2) {
-    printf("Round %d, BngMult(%lx,%lx,%lx, %lx)\n", i, r1, r2, a1, a2);
-    return 1;
-  }
-
-  /* Make sure a3 is normalized */
-  a3 |= 1L << (BNG_BITS_PER_DIGIT - 1);
-  if (a1 < a3) {
-    BngDiv(r1,r2,a1,a2,a3);
-    if (r1 != (((dbldigit) a1 << BNG_BITS_PER_DIGIT) | (dbldigit) a2) / a3
-        ||
-        r2 != (((dbldigit) a1 << BNG_BITS_PER_DIGIT) | (dbldigit) a2) % a3)
-      {
-        printf("Round %d, BngDiv(%lx,%lx,%lx, %lx, %lx)\n", i, r1, r2, a1, a2, a3);
-        return 1;
-      }
-  }
-
-  n = bng_leading_zero_bits(a1);
-  if (a1 == 0) {
-    if (n != BNG_BITS_PER_DIGIT) {
-      printf("Round %d, bng_leading_zero(bits(%lx) = %d", i, a1, n);
-      return 1;
-    }
-  } else {
-    if ((a1 << n) >> n != a1 ||
-        ((a1 << n) & (1L << (BNG_BITS_PER_DIGIT - 1))) == 0) {
-      printf("Round %d, bng_leading_zero(bits(%lx) = %d", i, a1, n);
-      return 1;
-    }
-  }
-  return 0;
-}
-
-#endif
-
-/* Test the bng operations.  Use BigNum as a reference. */
-
-#define MAX_DIGITS 32
-
-void randbng(bng a, bngsize n)
-{
-  int i;
-  for (i = 0; i < n; i++) a[i] = randdigit();
-}
-
-char * bng2string(bng a, bngsize n)
-{
-  char * buffer = malloc((BNG_BITS_PER_DIGIT / 4 + 1) * MAX_DIGITS);
-  char temp[BNG_BITS_PER_DIGIT / 4 + 1];
-  int i;
-
-  buffer[0] = 0;
-  for (i = n - 1; i >= 0; i--) {
-    sprintf(temp, "%lx", a[i]);
-    strcat(buffer, temp);
-    if (i > 0) strcat(buffer, "_");
-  }
-  return buffer;
-}
-
-int bngsame(bng a, bng b, bngsize n)
-{
-  int i;
-  for (i = 0; i < n; i++)
-    if (a[i] != b[i]) return 0;
-  return 1;
-}
-
-int test_bng_ops(int i)
-{
-  bngsize p, q;
-  bngdigit a[MAX_DIGITS], b[MAX_DIGITS], c[MAX_DIGITS], d[MAX_DIGITS];
-  bngdigit f[2 * MAX_DIGITS], g[2 * MAX_DIGITS], h[2 * MAX_DIGITS];
-  bngcarry ci, co, cp;
-  bngdigit dg, do_, dp;
-  int amount;
-
-  /* Determine random lengths p and q between 1 and MAX_DIGITS.
-     Ensure p >= q. */
-  p = 1 + (rand() % MAX_DIGITS);
-  q = 1 + (rand() % MAX_DIGITS);
-  if (q > p) { bngsize t = p; p = q; q = t; }
-
-  /* Randomly generate bignums a of size p, b of size q */
-  randbng(a, p);
-  randbng(b, q);
-  ci = rand() & 1;
-
-  /* comparison */
-  co = bng_compare(a, p, b, q);
-  cp = BnnCompare(a, p, b, q);
-  if (co != cp) {
-    printf("Round %d, bng_compare(%s, %ld, %s, %ld) = %d\n",
-           i, bng2string(a, p), p, bng2string(b, q), q, co);
-    return 1;
-  }
-  co = bng_compare(b, q, a, p);
-  cp = BnnCompare(b, q, a, p);
-  if (co != cp) {
-    printf("Round %d, bng_compare(%s, %ld, %s, %ld) = %d\n",
-           i, bng2string(b, q), q, bng2string(a, p), p, co);
-    return 1;
-  }
-  /* add carry */
-  bng_assign(c, a, p);
-  co = bng_add_carry(c, p, ci);
-  BnnAssign(d, a, p);
-  cp = BnnAddCarry(d, p, ci);
-  if (co != cp || !bngsame(c, d, p)) {
-    printf("Round %d, bng_add_carry(%s, %ld, %d) -> %s, %d\n",
-           i, bng2string(a, p), p, ci, bng2string(c, p), co);
-    return 1;
-  }
-  /* add */
-  bng_assign(c, a, p);
-  co = bng_add(c, p, b, q, ci);
-  BnnAssign(d, a, p);
-  cp = BnnAdd(d, p, b, q, ci);
-  if (co != cp || !bngsame(c, d, p)) {
-    printf("Round %d, bng_add(%s, %ld, %s, %ld, %d) -> %s, %d\n",
-           i, bng2string(a, p), p, bng2string(b, q), q, ci,
-           bng2string(c, p), co);
-    return 1;
-  }
-  /* sub carry */
-  bng_assign(c, a, p);
-  co = bng_sub_carry(c, p, ci);
-  BnnAssign(d, a, p);
-  cp = BnnSubtractBorrow(d, p, ci ^ 1) ^ 1;
-  if (co != cp || !bngsame(c, d, p)) {
-    printf("Round %d, bng_sub_carry(%s, %ld, %d) -> %s, %d\n",
-           i, bng2string(a, p), p, ci, bng2string(c, p), co);
-    return 1;
-  }
-  /* sub */
-  bng_assign(c, a, p);
-  co = bng_sub(c, p, b, q, ci);
-  BnnAssign(d, a, p);
-  cp = BnnSubtract(d, p, b, q, ci ^ 1) ^ 1;
-  if (co != cp || !bngsame(c, d, p)) {
-    printf("Round %d, bng_sub(%s, %ld, %s, %ld, %d) -> %s, %d\n",
-           i, bng2string(a, p), p, bng2string(b, q), q, ci,
-           bng2string(c, p), co);
-    return 1;
-  }
-  /* shift left */
-  amount = rand() % BNG_BITS_PER_DIGIT;
-  bng_assign(c, a, p);
-  do_ = bng_shift_left(c, p, amount);
-  BnnAssign(d, a, p);
-  dp = BnnShiftLeft(d, p, amount);
-  if (do_ != dp || !bngsame(c, d, p)) {
-    printf("Round %d, bng_shift_left(%s, %ld, %d) -> %s, %ld\n",
-           i, bng2string(a, p), p, amount, bng2string(c, p), do_);
-    return 1;
-  }
-  /* shift right */
-  amount = rand() % BNG_BITS_PER_DIGIT;
-  bng_assign(c, a, p);
-  do_ = bng_shift_right(c, p, amount);
-  BnnAssign(d, a, p);
-  dp = BnnShiftRight(d, p, amount);
-  if (do_ != dp || !bngsame(c, d, p)) {
-    printf("Round %d, bng_shift_right(%s, %ld, %d) -> %s, %ld\n",
-           i, bng2string(a, p), p, amount, bng2string(c, p), do_);
-    return 1;
-  }
-  /* mult_add_digit */
-  dg = randdigit();
-  if (p >= q + 1) {
-    bng_assign(c, a, p);
-    co = bng_mult_add_digit(c, p, b, q, dg);
-    BnnAssign(d, a, p);
-    cp = BnnMultiplyDigit(d, p, b, q, dg);
-    if (co != cp || !bngsame(c, d, p)) {
-      printf("Round %d, bng_mult_add_digit(%s, %ld, %s, %ld, %ld) -> %s, %d\n",
-             i, bng2string(a, p), p, bng2string(b, q), q, dg,
-             bng2string(c, p), co);
-      return 1;
-    }
-  }
-  /* mult_sub_digit */
-  dg = randdigit();
-  bng_assign(c, a, p);
-  do_ = bng_mult_add_digit(c, p, b, q, dg);
-  bng_assign(d, c, p);
-  dp = bng_mult_sub_digit(d, p, b, q, dg);
-  if (do_ != dp || !bngsame(a, d, p)) {
-    printf("Round %d, bng_mult_sub_digit(%s, %ld, %s, %ld, %ld) -> %s, %ld\n",
-           i, bng2string(c, p), p, bng2string(b, q), q, dg,
-           bng2string(d, p), dp);
-    return 1;
-  }
-  /* mult_add */
-  randbng(f, 2*p);
-  bng_assign(g, f, 2*p);
-  co = bng_mult_add(g, 2*p, a, p, b, q);
-  BnnAssign(h, f, 2*p);
-  cp = BnnMultiply(h, 2*p, a, p, b, q);
-  if (co != cp || !bngsame(g, h, 2*p)) {
-    printf("Round %d, bng_mult_add(%s, %ld, %s, %ld, %s, %ld) -> %s, %d\n",
-           i, bng2string(f, 2*p), 2*p,
-           bng2string(a, p), p,
-           bng2string(b, q), q,
-           bng2string(g, 2*p), co);
-    return 1;
-  }
-  /* square_add */
-  randbng(f, 2*p);
-  bng_assign(g, f, 2*p);
-  co = bng_square_add(g, 2*p, b, q);
-  BnnAssign(h, f, 2*p);
-  cp = BnnAdd(h, 2*p, h, 2*p);
-  cp += BnnMultiply(h, 2*p, b, q, b, q);
-  if (co != cp || !bngsame(g, h, 2*p)) {
-    printf("Round %d, bng_square_add(%s, %ld, %s, %ld) -> %s, %d\n",
-           i, bng2string(f, 2*p), 2*p,
-           bng2string(b, q), q,
-           bng2string(g, 2*p), co);
-    return 1;
-  }
-  /* div_rem_digit */
-  if (a[p - 1] < dg) {
-    do_ = bng_div_rem_digit(c, a, p, dg);
-    dp = BnnDivideDigit(d, a, p, dg);
-    if (do_ != dp || !bngsame(c, d, p-1)) {
-      printf("Round %d, bng_div_rem_digit(%s, %s, %ld, %lx) -> %lx\n",
-             i, bng2string(d, p-1), bng2string(a, p), p, dg, do_);
-      return 1;
-    }
-  }
-  /* div_rem */
-  if (p > q && a[p - 1] < b[q - 1]) {
-    bng_assign(c, a, p);
-    bng_div_rem(c, p, b, q);
-    BnnAssign(d, a, p);
-    BnnDivide(d, p, b, q);
-    if (!bngsame(c, d, p)) {
-      printf("Round %d, bng_div_rem(%s, %ld, %s, %ld) -> %s, %s\n",
-             i, bng2string(a, p), p, bng2string(b, q), q,
-             bng2string(c + q, p - q),
-             bng2string(c, q));
-      return 1;
-    }
-  }
-  return 0;
-}
-
-int main(int argc, char ** argv)
-{
-  int niter = 100000;
-  int i, err;
-
-  bng_init();
-  if (argc >= 2) niter = atoi(argv[1]);
-#if defined(ARCH_UINT64_TYPE) && !defined(ARCH_SIXTYFOUR)
-  printf("Testing single-digit operations\n");
-  for (err = 0, i = 1; i < niter; i++) err += test_digit_ops(i);
-  printf("%d rounds performed, %d errors found\n", niter, err);
-#endif
-  printf("Testing bignum operations\n");
-  for (err = 0, i = 1; i < niter; i++) err += test_bng_ops(i);
-  printf("%d rounds performed, %d errors found\n", niter, err);
-  printf("Testing bignum operations with skewed PRNG\n");
-  rand_skewed = 1;
-  for (err = 0, i = 1; i < niter; i++) err += test_bng_ops(i);
-  printf("%d rounds performed, %d errors found\n", niter, err);
-  return 0;
-}
diff --git a/testlabl/.cvsignore b/testlabl/.cvsignore
deleted file mode 100644 (file)
index 4c57147..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.out *.out2
\ No newline at end of file
diff --git a/testlabl/coerce.diffs b/testlabl/coerce.diffs
deleted file mode 100644 (file)
index e90e1fc..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-Index: typing/ctype.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/ctype.ml,v
-retrieving revision 1.201
-diff -u -r1.201 ctype.ml
---- typing/ctype.ml    5 Apr 2006 02:28:13 -0000       1.201
-+++ typing/ctype.ml    17 May 2006 23:48:22 -0000
-@@ -490,6 +490,31 @@
-     unmark_class_signature sign;
-     Some reason
-+(* Variant for checking principality *)
-+
-+let rec free_nodes_rec ty =
-+  let ty = repr ty in
-+  if ty.level >= lowest_level then begin
-+    if ty.level <= !current_level then raise Exit;
-+    ty.level <- pivot_level - ty.level;
-+    begin match ty.desc with
-+      Tvar ->
-+        raise Exit
-+    | Tobject (ty, _) ->
-+        free_nodes_rec ty
-+    | Tfield (_, _, ty1, ty2) ->
-+        free_nodes_rec ty1; free_nodes_rec ty2
-+    | Tvariant row ->
-+        let row = row_repr row in
-+        iter_row free_nodes_rec {row with row_bound = []};
-+        if not (static_row row) then free_nodes_rec row.row_more
-+    | _    ->
-+        iter_type_expr free_nodes_rec ty
-+    end;
-+  end
-+
-+let has_free_nodes ty =
-+  try free_nodes_rec ty; false with Exit -> true
-                             (**********************)
-                             (*  Type duplication  *)
-Index: typing/ctype.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/ctype.mli,v
-retrieving revision 1.54
-diff -u -r1.54 ctype.mli
---- typing/ctype.mli   5 Apr 2006 02:28:13 -0000       1.54
-+++ typing/ctype.mli   17 May 2006 23:48:22 -0000
-@@ -228,6 +228,9 @@
- val closed_class:
-         type_expr list -> class_signature -> closed_class_failure option
-         (* Check whether all type variables are bound *)
-+val has_free_nodes: type_expr -> bool
-+        (* Check whether there are free type variables, or nodes with
-+           level lower or equal to !current_level *)
- val unalias: type_expr -> type_expr
- val signature_of_class_type: class_type -> class_signature
-Index: typing/typecore.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typecore.ml,v
-retrieving revision 1.181
-diff -u -r1.181 typecore.ml
---- typing/typecore.ml 16 Apr 2006 23:28:22 -0000      1.181
-+++ typing/typecore.ml 17 May 2006 23:48:22 -0000
-@@ -1183,12 +1183,29 @@
-             let (ty', force) =
-               Typetexp.transl_simple_type_delayed env sty'
-             in
-+            if !Clflags.principal then begin_def ();
-             let arg = type_exp env sarg in
-+            let has_fv =
-+              if !Clflags.principal then begin
-+                end_def ();
-+                let b = has_free_nodes arg.exp_type in
-+                Ctype.unify env arg.exp_type (newvar ());
-+                b
-+              end else
-+                free_variables arg.exp_type <> []
-+            in
-             begin match arg.exp_desc, !self_coercion, (repr ty').desc with
-               Texp_ident(_, {val_kind=Val_self _}), (path,r) :: _,
-               Tconstr(path',_,_) when Path.same path path' ->
-                 r := sexp.pexp_loc :: !r;
-                 force ()
-+            | _ when not has_fv ->
-+                begin try
-+                  let force' = subtype env arg.exp_type ty' in
-+                  force (); force' ()
-+                with Subtype (tr1, tr2) ->
-+                  raise(Error(sexp.pexp_loc, Not_subtype(tr1, tr2)))
-+                end
-             | _ ->
-                 let ty, b = enlarge_type env ty' in
-                 force ();
diff --git a/testlabl/dirs_multimatch b/testlabl/dirs_multimatch
deleted file mode 100644 (file)
index b449514..0000000
+++ /dev/null
@@ -1 +0,0 @@
-parsing typing bytecomp driver toplevel
\ No newline at end of file
diff --git a/testlabl/dirs_poly b/testlabl/dirs_poly
deleted file mode 100644 (file)
index 3aec606..0000000
+++ /dev/null
@@ -1 +0,0 @@
-bytecomp byterun driver parsing stdlib tools toplevel typing utils otherlibs/labltk/browser/searchpos.ml
diff --git a/testlabl/els.ml b/testlabl/els.ml
deleted file mode 100644 (file)
index fdd292d..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-(* Adapted from: An Expressive Language of Signatures
-   by Norman Ramsey, Kathleen Fisher and Paul Govereau *)
-
-module type VALUE = sig
-  type value (* a Lua value *)
-  type state (* the state of a Lua interpreter *)
-  type usert (* a user-defined value *)
-end
-
-module type CORE0 = sig
-  module V : VALUE
-  val setglobal : V.state -> string -> V.value -> unit
-  (* five more functions common to core and evaluator *)
-end
-
-module type CORE = sig
-  include CORE0
-  val apply : V.value -> V.state -> V.value list -> V.value
-  (* apply function f in state s to list of args *)
-end
-
-module type AST = sig
-  module Value : VALUE
-  type chunk
-  type program
-  val get_value : chunk -> Value.value
-end
-
-module type EVALUATOR = sig
-  module Value : VALUE
-  module Ast : (AST with module Value := Value)
-  type state = Value.state
-  type value = Value.value
-  exception Error of string
-  val compile : Ast.program -> string
-  include CORE0 with module V := Value
-end
-
-module type PARSER = sig
-  type chunk
-  val parse : string -> chunk
-end
-
-module type INTERP = sig
-  include EVALUATOR
-  module Parser : PARSER with type chunk = Ast.chunk
-  val dostring : state -> string -> value list
-  val mk       : unit -> state
-end
-
-module type USERTYPE = sig
-  type t
-  val eq       : t -> t -> bool
-  val to_string : t -> string
-end
-
-module type TYPEVIEW = sig
-  type combined
-  type t
-  val map : (combined -> t) * (t -> combined)
-end
-
-module type COMBINED_COMMON = sig
-  module T : sig type t end
-  module TV1 : TYPEVIEW with type combined := T.t
-  module TV2 : TYPEVIEW with type combined := T.t
-end
-
-module type COMBINED_TYPE = sig
-  module T : USERTYPE
-  include COMBINED_COMMON with module T := T
-end
-
-module type BARECODE = sig
-  type state
-  val init : state -> unit
-end
-
-module USERCODE(X : TYPEVIEW) = struct
-  module type F =
-      functor (C : CORE with type V.usert = X.combined) ->
-        BARECODE with type state := C.V.state
-end
-
-module Weapon = struct type t end
-
-module type WEAPON_LIB = sig
-  type t = Weapon.t
-  module T : USERTYPE with type t = t
-  module Make :
-    functor (TV : TYPEVIEW with type t = t) -> USERCODE(TV).F
-end
diff --git a/testlabl/fixedtypes.ml b/testlabl/fixedtypes.ml
deleted file mode 100644 (file)
index a7d7ca4..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-(* cvs update -r fixedtypes parsing typing *)
-
-(* recursive types *)
-class c = object (self) method m = 1 method s = self end
-module type S = sig type t = private #c end;;
-
-module M : S = struct type t = c end
-module type S' = S with type t = c;;
-
-class d = object inherit c method n = 2 end
-module type S2 = S with type t = private #d;;
-module M2 : S = struct type t = d end;;
-module M3 : S = struct type t = private #d end;;
-
-module T1 = struct
-  type ('a,'b) a = [`A of 'a | `B of 'b]
-  type ('a,'b) b = [`Z | ('a,'b) a]
-end
-module type T2 = sig
-  type a and b
-  val evala : a -> int
-  val evalb : b -> int
-end
-module type T3 = sig
-  type a0 = private [> (a0,b0) T1.a]
-  and b0 = private [> (a0,b0) T1.b]
-end
-module type T4 = sig
-  include T3
-  include T2 with type a = a0 and type b = b0
-end
-module F(X:T4) = struct
-  type a = X.a and b = X.b
-  let a = X.evala (`B `Z)
-  let b = X.evalb (`A(`B `Z))
-  let a2b (x : a) : b = `A x
-  let b2a (x : b) : a = `B x
-end
-module M4 = struct
-  type a = [`A of a | `B of b | `ZA]
-  and b = [`A of a | `B of b | `Z]
-  type a0 = a
-  type b0 = b
-  let rec eval0 = function
-      `A a -> evala a
-    | `B b -> evalb b
-  and evala : a -> int = function
-      #T1.a as x -> 1 + eval0 x
-    | `ZA -> 3
-  and evalb : b -> int = function
-      #T1.a as x -> 1 + eval0 x
-    | `Z -> 7
-end
-module M5 = F(M4)
-
-module M6 : sig
-  class ci : int ->
-    object
-      val x : int
-      method x : int
-      method move : int -> unit
-    end      
-  type c = private #ci
-  val create : int -> c
-end = struct
-  class ci x = object
-    val mutable x : int = x
-    method x = x
-    method move d = x <- x+d
-  end
-  type c = ci
-  let create = new ci
-end
-let f (x : M6.c) = x#move 3; x#x;;
-
-module M : sig type t = private [> `A of bool] end =
-  struct type t = [`A of int] end
diff --git a/testlabl/marshal_objects.diffs b/testlabl/marshal_objects.diffs
deleted file mode 100644 (file)
index bb9b4dd..0000000
+++ /dev/null
@@ -1,800 +0,0 @@
-? bytecomp/alpha_eq.ml
-Index: bytecomp/lambda.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/lambda.ml,v
-retrieving revision 1.44
-diff -u -r1.44 lambda.ml
---- bytecomp/lambda.ml 25 Aug 2005 15:35:16 -0000      1.44
-+++ bytecomp/lambda.ml 2 Feb 2006 05:08:56 -0000
-@@ -287,9 +287,10 @@
-     let compare = compare
-   end)
--let free_ids get l =
-+let free_ids get used l =
-   let fv = ref IdentSet.empty in
-   let rec free l =
-+    let old = !fv in
-     iter free l;
-     fv := List.fold_right IdentSet.add (get l) !fv;
-     match l with
-@@ -307,17 +308,20 @@
-         fv := IdentSet.remove v !fv
-     | Lassign(id, e) ->
-         fv := IdentSet.add id !fv
-+    | Lifused(id, e) ->
-+        if used && not (IdentSet.mem id old) then fv := IdentSet.remove id !fv
-     | Lvar _ | Lconst _ | Lapply _
-     | Lprim _ | Lswitch _ | Lstaticraise _
-     | Lifthenelse _ | Lsequence _ | Lwhile _
--    | Lsend _ | Levent _ | Lifused _ -> ()
-+    | Lsend _ | Levent _ -> ()
-   in free l; !fv
--let free_variables l =
--  free_ids (function Lvar id -> [id] | _ -> []) l
-+let free_variables ?(ifused=false) l =
-+  free_ids (function Lvar id -> [id] | _ -> []) ifused l
- let free_methods l =
--  free_ids (function Lsend(Self, Lvar meth, obj, _) -> [meth] | _ -> []) l
-+  free_ids (function Lsend(Self, Lvar meth, obj, _) -> [meth] | _ -> [])
-+    false l
- (* Check if an action has a "when" guard *)
- let raise_count = ref 0
-Index: bytecomp/lambda.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/lambda.mli,v
-retrieving revision 1.42
-diff -u -r1.42 lambda.mli
---- bytecomp/lambda.mli        25 Aug 2005 15:35:16 -0000      1.42
-+++ bytecomp/lambda.mli        2 Feb 2006 05:08:56 -0000
-@@ -177,7 +177,7 @@
- val iter: (lambda -> unit) -> lambda -> unit
- module IdentSet: Set.S with type elt = Ident.t
--val free_variables: lambda -> IdentSet.t
-+val free_variables: ?ifused:bool -> lambda -> IdentSet.t
- val free_methods: lambda -> IdentSet.t
- val transl_path: Path.t -> lambda
-Index: bytecomp/translclass.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/translclass.ml,v
-retrieving revision 1.38
-diff -u -r1.38 translclass.ml
---- bytecomp/translclass.ml    13 Aug 2005 20:59:37 -0000      1.38
-+++ bytecomp/translclass.ml    2 Feb 2006 05:08:56 -0000
-@@ -46,6 +46,10 @@
- let lfield v i = Lprim(Pfield i, [Lvar v])
-+let ltuple l = Lprim(Pmakeblock(0,Immutable), l)
-+
-+let lprim name args = Lapply(oo_prim name, args)
-+
- let transl_label l = share (Const_immstring l)
- let rec transl_meth_list lst =
-@@ -68,8 +72,8 @@
-                                                     Lvar offset])])]))
- let transl_val tbl create name =
--  Lapply (oo_prim (if create then "new_variable" else "get_variable"),
--          [Lvar tbl; transl_label name])
-+  lprim (if create then "new_variable" else "get_variable")
-+    [Lvar tbl; transl_label name]
- let transl_vals tbl create vals rem =
-   List.fold_right
-@@ -82,7 +86,7 @@
-     (fun (nm, id) rem ->
-        try
-          (nm, id,
--          Lapply(oo_prim "get_method", [Lvar tbl; Lvar (Meths.find nm meths)]))
-+          lprim "get_method" [Lvar tbl; Lvar (Meths.find nm meths)])
-          :: rem
-        with Not_found -> rem)
-     inh_meths []
-@@ -97,17 +101,15 @@
-   let (inh_init, obj_init, has_init) = init obj' in
-   if obj_init = lambda_unit then
-     (inh_init,
--     Lapply (oo_prim (if has_init then "create_object_and_run_initializers"
--                      else"create_object_opt"),
--             [obj; Lvar cl]))
-+     lprim (if has_init then "create_object_and_run_initializers"
-+            else"create_object_opt")
-+       [obj; Lvar cl])
-   else begin
-    (inh_init,
--    Llet(Strict, obj',
--            Lapply (oo_prim "create_object_opt", [obj; Lvar cl]),
-+    Llet(Strict, obj', lprim "create_object_opt" [obj; Lvar cl],
-          Lsequence(obj_init,
-                    if not has_init then Lvar obj' else
--                   Lapply (oo_prim "run_initializers_opt",
--                         [obj; Lvar obj'; Lvar cl]))))
-+                   lprim "run_initializers_opt" [obj; Lvar obj'; Lvar cl])))
-   end
- let rec build_object_init cl_table obj params inh_init obj_init cl =
-@@ -203,14 +205,13 @@
- let bind_method tbl lab id cl_init =
--  Llet(StrictOpt, id, Lapply (oo_prim "get_method_label",
--                              [Lvar tbl; transl_label lab]),
-+  Llet(StrictOpt, id, lprim "get_method_label" [Lvar tbl; transl_label lab],
-        cl_init)
--let bind_methods tbl meths vals cl_init =
--  let methl = Meths.fold (fun lab id tl -> (lab,id) :: tl) meths [] in
-+let bind_methods tbl methl vals cl_init =
-   let len = List.length methl and nvals = List.length vals in
--  if len < 2 && nvals = 0 then Meths.fold (bind_method tbl) meths cl_init else
-+  if len < 2 && nvals = 0 then
-+    List.fold_right (fun (n,i) -> bind_method tbl n i) methl cl_init else
-   if len = 0 && nvals < 2 then transl_vals tbl true vals cl_init else
-   let ids = Ident.create "ids" in
-   let i = ref len in
-@@ -229,21 +230,19 @@
-              vals' cl_init)
-   in
-   Llet(StrictOpt, ids,
--       Lapply (oo_prim getter,
--               [Lvar tbl; transl_meth_list (List.map fst methl)] @ names),
-+       lprim getter
-+         ([Lvar tbl; transl_meth_list (List.map fst methl)] @ names),
-        List.fold_right
--         (fun (lab,id) lam -> decr i; Llet(StrictOpt, id, lfield ids !i, lam))
-+         (fun (lab,id) lam -> decr i; Llet(Alias, id, lfield ids !i, lam))
-          methl cl_init)
- let output_methods tbl methods lam =
-   match methods with
-     [] -> lam
-   | [lab; code] ->
--      lsequence (Lapply(oo_prim "set_method", [Lvar tbl; lab; code])) lam
-+      lsequence (lprim "set_method" [Lvar tbl; lab; code]) lam
-   | _ ->
--      lsequence (Lapply(oo_prim "set_methods",
--                        [Lvar tbl; Lprim(Pmakeblock(0,Immutable), methods)]))
--        lam
-+      lsequence (lprim "set_methods" [Lvar tbl; ltuple methods]) lam
- let rec ignore_cstrs cl =
-   match cl.cl_desc with
-@@ -266,7 +265,8 @@
-            Llet (Strict, obj_init, 
-                  Lapply(Lprim(Pfield 1, [lpath]), Lvar cla ::
-                       if top then [Lprim(Pfield 3, [lpath])] else []),
--                 bind_super cla super cl_init))
-+                 bind_super cla super cl_init),
-+           [], [])
-       | _ ->
-           assert false
-       end
-@@ -278,10 +278,11 @@
-             match field with
-               Cf_inher (cl, vals, meths) ->
-                 let cl_init = output_methods cla methods cl_init in
--                let inh_init, cl_init =
-+                let (inh_init, cl_init, meths', vals') =
-                   build_class_init cla false
-                     (vals, meths_super cla str.cl_meths meths)
-                     inh_init cl_init msubst top cl in
-+                let cl_init = bind_methods cla meths' vals' cl_init in
-                 (inh_init, cl_init, [], values)
-             | Cf_val (name, id, exp) ->
-                 (inh_init, cl_init, methods, (name, id)::values)
-@@ -304,29 +305,37 @@
-                 (inh_init, cl_init, methods, vals @ values)
-             | Cf_init exp ->
-                 (inh_init,
--                 Lsequence(Lapply (oo_prim "add_initializer",
--                                   Lvar cla :: msubst false (transl_exp exp)),
-+                 Lsequence(lprim "add_initializer"
-+                             (Lvar cla :: msubst false (transl_exp exp)),
-                            cl_init),
-                  methods, values))
-           str.cl_field
-           (inh_init, cl_init, [], [])
-       in
-       let cl_init = output_methods cla methods cl_init in
--      (inh_init, bind_methods cla str.cl_meths values cl_init)
-+      (* inh_init, bind_methods cla str.cl_meths values cl_init *)
-+      let methods =  Meths.fold (fun n i l -> (n,i)::l) str.cl_meths [] in
-+      (inh_init, cl_init, methods, values)
-   | Tclass_fun (pat, vals, cl, _) ->
--      let (inh_init, cl_init) =
-+      let (inh_init, cl_init, methods, values) =
-         build_class_init cla cstr super inh_init cl_init msubst top cl
-       in
-+      let fv = free_variables ~ifused:true cl_init in
-+      let vals = List.filter (fun (id,_) -> IdentSet.mem id fv) vals in
-       let vals = List.map (function (id, _) -> (Ident.name id, id)) vals in
--      (inh_init, transl_vals cla true vals cl_init)
-+      (* inh_init, transl_vals cla true vals cl_init *)
-+      (inh_init, cl_init, methods, vals @ values)
-   | Tclass_apply (cl, exprs) ->
-       build_class_init cla cstr super inh_init cl_init msubst top cl
-   | Tclass_let (rec_flag, defs, vals, cl) ->
--      let (inh_init, cl_init) =
-+      let (inh_init, cl_init, methods, values) =
-         build_class_init cla cstr super inh_init cl_init msubst top cl
-       in
-+      let fv = free_variables ~ifused:true cl_init in
-+      let vals = List.filter (fun (id,_) -> IdentSet.mem id fv) vals in
-       let vals = List.map (function (id, _) -> (Ident.name id, id)) vals in
--      (inh_init, transl_vals cla true vals cl_init)
-+      (* inh_init, transl_vals cla true vals cl_init *)
-+      (inh_init, cl_init, methods, vals @ values)
-   | Tclass_constraint (cl, vals, meths, concr_meths) ->
-       let virt_meths =
-         List.filter (fun lab -> not (Concr.mem lab concr_meths)) meths in
-@@ -358,23 +367,34 @@
-               cl_init valids in
-           (inh_init,
-            Llet (Strict, inh, 
--               Lapply(oo_prim "inherits", narrow_args @
--                      [lpath; Lconst(Const_pointer(if top then 1 else 0))]),
-+               lprim "inherits"
-+                   (narrow_args @
-+                    [lpath; Lconst(Const_pointer(if top then 1 else 0))]),
-                  Llet(StrictOpt, obj_init, lfield inh 0,
-                  Llet(Alias, inh_vals, lfield inh 1,
--                 Llet(Alias, inh_meths, lfield inh 2, cl_init)))))
-+                 Llet(Alias, inh_meths, lfield inh 2, cl_init)))),
-+          [], [])
-       | _ ->
-         let core cl_init =
-             build_class_init cla true super inh_init cl_init msubst top cl
-         in
-         if cstr then core cl_init else
--          let (inh_init, cl_init) =
--            core (Lsequence (Lapply (oo_prim "widen", [Lvar cla]), cl_init))
-+          let (inh_init, cl_init, methods, values) =
-+            core (Lsequence (lprim "widen" [Lvar cla], cl_init))
-           in
--          (inh_init,
--           Lsequence(Lapply (oo_prim "narrow", narrow_args), cl_init))
-+          let cl_init = bind_methods cla methods values cl_init in
-+          (inh_init, Lsequence(lprim "narrow" narrow_args, cl_init), [], [])
-       end
-+let build_class_init cla env inh_init obj_init msubst top cl =
-+  let inh_init = List.rev inh_init in
-+  let (inh_init, cl_init, methods, values) =
-+    build_class_init cla true ([],[]) inh_init obj_init msubst top cl in
-+  assert (inh_init = []);
-+  if IdentSet.mem env (free_variables ~ifused:true cl_init)
-+  then bind_methods cla methods (("", env) :: values) cl_init
-+  else Llet(Alias, env, lambda_unit, bind_methods cla methods values cl_init)
-+
- let rec build_class_lets cl =
-   match cl.cl_desc with
-     Tclass_let (rec_flag, defs, vals, cl) ->
-@@ -459,16 +479,16 @@
-     Strict, new_init, lfunction [obj_init] obj_init',
-     Llet(
-     Alias, cla, transl_path path,
--    Lprim(Pmakeblock(0, Immutable),
--          [Lapply(Lvar new_init, [lfield cla 0]);
--           lfunction [table]
--             (Llet(Strict, env_init,
--                   Lapply(lfield cla 1, [Lvar table]),
--                   lfunction [envs]
--                     (Lapply(Lvar new_init,
--                             [Lapply(Lvar env_init, [Lvar envs])]))));
--           lfield cla 2;
--           lfield cla 3])))
-+    ltuple
-+      [Lapply(Lvar new_init, [lfield cla 0]);
-+       lfunction [table]
-+         (Llet(Strict, env_init,
-+               Lapply(lfield cla 1, [Lvar table]),
-+               lfunction [envs]
-+                 (Lapply(Lvar new_init,
-+                         [Lapply(Lvar env_init, [Lvar envs])]))));
-+       lfield cla 2;
-+       lfield cla 3]))
-   with Exit ->
-     lambda_unit
-@@ -541,7 +561,7 @@
-   open CamlinternalOO
-   let builtin_meths arr self env env2 body =
-     let builtin, args = builtin_meths self env env2 body in
--    if not arr then [Lapply(oo_prim builtin, args)] else
-+    if not arr then [lprim builtin args] else
-     let tag = match builtin with
-       "get_const" -> GetConst
-     | "get_var"   -> GetVar
-@@ -599,7 +619,8 @@
-   (* Prepare for heavy environment handling *)
-   let tables = Ident.create (Ident.name cl_id ^ "_tables") in
--  let (top_env, req) = oo_add_class tables in
-+  let table_init = ref None in
-+  let (top_env, req) = oo_add_class tables table_init in
-   let top = not req in
-   let cl_env, llets = build_class_lets cl in
-   let new_ids = if top then [] else Env.diff top_env cl_env in
-@@ -633,6 +654,7 @@
-         begin try
-           (* Doesn't seem to improve size for bytecode *)
-           (* if not !Clflags.native_code then raise Not_found; *)
-+          if !Clflags.debug then raise Not_found;
-           builtin_meths arr [self] env env2 (lfunction args body')
-         with Not_found ->
-           [lfunction (self :: args)
-@@ -665,15 +687,8 @@
-     build_object_init_0 cla [] cl copy_env subst_env top ids in
-   if not (Translcore.check_recursive_lambda ids obj_init) then
-     raise(Error(cl.cl_loc, Illegal_class_expr));
--  let inh_init' = List.rev inh_init in
--  let (inh_init', cl_init) =
--    build_class_init cla true ([],[]) inh_init' obj_init msubst top cl
--  in
--  assert (inh_init' = []);
--  let table = Ident.create "table"
--  and class_init = Ident.create (Ident.name cl_id ^ "_init")
--  and env_init = Ident.create "env_init"
--  and obj_init = Ident.create "obj_init" in
-+  let cl_init = build_class_init cla env2 inh_init obj_init msubst top cl in
-+  let obj_init = Ident.create "obj_init" in
-   let pub_meths =
-     List.sort
-       (fun s s' -> compare (Btype.hash_variant s) (Btype.hash_variant s'))
-@@ -685,42 +700,44 @@
-       let name' = List.assoc tag rev_map in
-       if name' <> name then raise(Error(cl.cl_loc, Tags(name, name'))))
-     tags pub_meths;
-+  let pos = cl.cl_loc.Location.loc_end in
-+  let filepos = [transl_label pos.Lexing.pos_fname;
-+                 Lconst(Const_base(Const_int pos.Lexing.pos_cnum))] in
-   let ltable table lam =
--    Llet(Strict, table,
--         Lapply (oo_prim "create_table", [transl_meth_list pub_meths]), lam)
-+    Llet(Strict, table, lprim "create_table" [transl_meth_list pub_meths], lam)
-   and ldirect obj_init =
-     Llet(Strict, obj_init, cl_init,
--         Lsequence(Lapply (oo_prim "init_class", [Lvar cla]),
-+         Lsequence(lprim "init_class_shared" (Lvar cla :: filepos),
-                    Lapply(Lvar obj_init, [lambda_unit])))
-   in
-   (* Simplest case: an object defined at toplevel (ids=[]) *)
-   if top && ids = [] then llets (ltable cla (ldirect obj_init)) else
-+  let table = Ident.create "table"
-+  and class_init = Ident.create (Ident.name cl_id ^ "_init")
-+  and env_init = Ident.create (Ident.name cl_id ^ "_env_init") in
-+  let cl_init_fun = Lfunction(Curried, [cla], cl_init) in
-   let concrete =
-     ids = [] ||
-     Typeclass.virtual_methods (Ctype.signature_of_class_type cl.cl_type) = []
--  and lclass lam =
--    let cl_init = llets (Lfunction(Curried, [cla], cl_init)) in
-+  and lclass cl_init lam =
-     Llet(Strict, class_init, cl_init, lam (free_variables cl_init))
-   and lbody fv =
-     if List.for_all (fun id -> not (IdentSet.mem id fv)) ids then
--      Lapply (oo_prim "make_class",[transl_meth_list pub_meths;
--                                  Lvar class_init])
-+      lprim "make_class"
-+        (transl_meth_list pub_meths :: Lvar class_init :: filepos)
-     else
-       ltable table (
-       Llet(
-       Strict, env_init, Lapply(Lvar class_init, [Lvar table]),
--      Lsequence(
--      Lapply (oo_prim "init_class", [Lvar table]),
--      Lprim(Pmakeblock(0, Immutable),
--          [Lapply(Lvar env_init, [lambda_unit]);
--           Lvar class_init; Lvar env_init; lambda_unit]))))
-+      Lsequence(lprim "init_class_shared" (Lvar table :: filepos),
-+                ltuple [Lapply(Lvar env_init, [lambda_unit]);
-+                      Lvar class_init; Lvar env_init; lambda_unit])))
-   and lbody_virt lenvs =
--    Lprim(Pmakeblock(0, Immutable),
--          [lambda_unit; Lfunction(Curried,[cla], cl_init); lambda_unit; lenvs])
-+    ltuple [lambda_unit; cl_init_fun; lambda_unit; lenvs]
-   in
-   (* Still easy: a class defined at toplevel *)
--  if top && concrete then lclass lbody else
-+  if top && concrete then lclass (llets cl_init_fun) lbody else
-   if top then llets (lbody_virt lambda_unit) else
-   (* Now for the hard stuff: prepare for table cacheing *)
-@@ -733,23 +750,16 @@
-   let lenv =
-     let menv =
-       if !new_ids_meths = [] then lambda_unit else
--      Lprim(Pmakeblock(0, Immutable),
--            List.map (fun id -> Lvar id) !new_ids_meths) in
-+      ltuple (List.map (fun id -> Lvar id) !new_ids_meths) in
-     if !new_ids_init = [] then menv else
--    Lprim(Pmakeblock(0, Immutable),
--          menv :: List.map (fun id -> Lvar id) !new_ids_init)
-+    ltuple (menv :: List.map (fun id -> Lvar id) !new_ids_init)
-   and linh_envs =
-     List.map (fun (_, p) -> Lprim(Pfield 3, [transl_path p]))
-       (List.rev inh_init)
-   in
-   let make_envs lam =
-     Llet(StrictOpt, envs,
--         (if linh_envs = [] then lenv else
--         Lprim(Pmakeblock(0, Immutable), lenv :: linh_envs)),
--         lam)
--  and def_ids cla lam =
--    Llet(StrictOpt, env2,
--         Lapply (oo_prim "new_variable", [Lvar cla; transl_label ""]),
-+         (if linh_envs = [] then lenv else ltuple (lenv :: linh_envs)),
-          lam)
-   in
-   let inh_paths =
-@@ -757,46 +767,53 @@
-       (fun (_,path) -> List.mem (Path.head path) new_ids) inh_init in
-   let inh_keys =
-     List.map (fun (_,p) -> Lprim(Pfield 1, [transl_path p])) inh_paths in
--  let lclass lam =
--    Llet(Strict, class_init,
--         Lfunction(Curried, [cla], def_ids cla cl_init), lam)
-+  let lclass_init lam =
-+    Llet(Strict, class_init, cl_init_fun, lam)
-   and lcache lam =
-     if inh_keys = [] then Llet(Alias, cached, Lvar tables, lam) else
--    Llet(Strict, cached,
--         Lapply(oo_prim "lookup_tables",
--                [Lvar tables; Lprim(Pmakeblock(0, Immutable), inh_keys)]),
-+    Llet(Strict, cached, lprim "lookup_tables" [Lvar tables; ltuple inh_keys],
-          lam)
-   and lset cached i lam =
-     Lprim(Psetfield(i, true), [Lvar cached; lam])
-   in
--  let ldirect () =
--    ltable cla
--      (Llet(Strict, env_init, def_ids cla cl_init,
--            Lsequence(Lapply (oo_prim "init_class", [Lvar cla]),
--                      lset cached 0 (Lvar env_init))))
--  and lclass_virt () =
--    lset cached 0 (Lfunction(Curried, [cla], def_ids cla cl_init))
-+  let ldirect prim pos =
-+    ltable cla (
-+    Llet(Strict, env_init, cl_init,
-+         Lsequence(lprim prim (Lvar cla :: pos), Lvar env_init)))
-+  and lclass_concrete cached =
-+    ltuple [Lapply (lfield cached 0, [lenvs]);
-+            lfield cached 1; lfield cached 0; lenvs]
-   in
-+
-   llets (
--  lcache (
--  Lsequence(
--  Lifthenelse(lfield cached 0, lambda_unit,
--              if ids = [] then ldirect () else
--              if not concrete then lclass_virt () else
--              lclass (
--              Lapply (oo_prim "make_class_store",
--                      [transl_meth_list pub_meths;
--                       Lvar class_init; Lvar cached]))),
-   make_envs (
--  if ids = [] then Lapply(lfield cached 0, [lenvs]) else
--  Lprim(Pmakeblock(0, Immutable),
--        if concrete then
--          [Lapply(lfield cached 0, [lenvs]);
--           lfield cached 1;
--           lfield cached 0;
--           lenvs]
--        else [lambda_unit; lfield cached 0; lambda_unit; lenvs]
--       )))))
-+  if inh_paths = [] && concrete then
-+    if ids = [] then begin
-+      table_init := Some (ldirect "init_class_shared" filepos);
-+      Lapply (Lvar tables, [lenvs])
-+    end else begin
-+      let init =
-+        lclass cl_init_fun (fun _ ->
-+          lprim "make_class_env"
-+            (transl_meth_list pub_meths :: Lvar class_init :: filepos))
-+      in table_init := Some init;
-+      lclass_concrete tables
-+    end
-+  else begin
-+    lcache (
-+    Lsequence(
-+    Lifthenelse(lfield cached 0, lambda_unit,
-+                if ids = [] then lset cached 0 (ldirect "init_class" []) else
-+                if not concrete then lset cached 0 cl_init_fun else
-+                lclass_init (
-+                lprim "make_class_store"
-+                  [transl_meth_list pub_meths; Lvar class_init; Lvar cached])),
-+    llets (
-+    make_envs (
-+    if ids = [] then Lapply(lfield cached 0, [lenvs]) else
-+    if concrete then lclass_concrete cached else
-+    ltuple [lambda_unit; lfield cached 0; lambda_unit; lenvs]))))
-+  end))
- (* Wrapper for class compilation *)
-Index: bytecomp/translobj.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/translobj.ml,v
-retrieving revision 1.9
-diff -u -r1.9 translobj.ml
---- bytecomp/translobj.ml      26 May 2004 11:10:51 -0000      1.9
-+++ bytecomp/translobj.ml      2 Feb 2006 05:08:56 -0000
-@@ -88,7 +88,6 @@
- (* Insert labels *)
--let string s = Lconst (Const_base (Const_string s))
- let int n = Lconst (Const_base (Const_int n))
- let prim_makearray =
-@@ -124,8 +123,8 @@
- let top_env = ref Env.empty
- let classes = ref []
--let oo_add_class id =
--  classes := id :: !classes;
-+let oo_add_class id init =
-+  classes := (id, init) :: !classes;
-   (!top_env, !cache_required)
- let oo_wrap env req f x =
-@@ -141,10 +140,12 @@
-     let lambda = f x in
-     let lambda =
-       List.fold_left
--        (fun lambda id ->
-+        (fun lambda (id, init) ->
-           Llet(StrictOpt, id,
--               Lprim(Pmakeblock(0, Mutable),
--                     [lambda_unit; lambda_unit; lambda_unit]),
-+               (match !init with
-+                 Some lam -> lam
-+               | None -> Lprim(Pmakeblock(0, Mutable),
-+                               [lambda_unit; lambda_unit; lambda_unit])),
-                lambda))
-         lambda !classes
-     in
-Index: bytecomp/translobj.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/translobj.mli,v
-retrieving revision 1.6
-diff -u -r1.6 translobj.mli
---- bytecomp/translobj.mli     26 May 2004 11:10:51 -0000      1.6
-+++ bytecomp/translobj.mli     2 Feb 2006 05:08:56 -0000
-@@ -25,4 +25,4 @@
-     Ident.t -> int -> ('a -> lambda) -> 'a -> int * lambda
- val oo_wrap: Env.t -> bool -> ('a -> lambda) -> 'a -> lambda
--val oo_add_class: Ident.t -> Env.t * bool
-+val oo_add_class: Ident.t -> Lambda.lambda option ref -> Env.t * bool
-Index: byterun/compare.h
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/byterun/compare.h,v
-retrieving revision 1.2
-diff -u -r1.2 compare.h
---- byterun/compare.h  31 Dec 2003 14:20:35 -0000      1.2
-+++ byterun/compare.h  2 Feb 2006 05:08:56 -0000
-@@ -17,5 +17,6 @@
- #define CAML_COMPARE_H
- CAMLextern int caml_compare_unordered;
-+CAMLextern value caml_compare(value, value);
- #endif /* CAML_COMPARE_H */
-Index: byterun/extern.c
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/byterun/extern.c,v
-retrieving revision 1.59
-diff -u -r1.59 extern.c
---- byterun/extern.c   4 Jan 2006 16:55:49 -0000       1.59
-+++ byterun/extern.c   2 Feb 2006 05:08:56 -0000
-@@ -411,6 +411,22 @@
-       extern_record_location(v);
-       break;
-     }
-+    case Object_tag: {
-+      value field0;
-+      mlsize_t i;
-+      i = Wosize_val(Field(v, 0)) - 1;
-+      field0 = Field(Field(v, 0),i);
-+      if (Wosize_val(field0) > 0) {
-+        writecode32(CODE_OBJECT, Wosize_hd (hd));
-+        extern_record_location(v);
-+        extern_rec(field0);
-+        for (i = 1; i < sz - 1; i++) extern_rec(Field(v, i));
-+        v = Field(v, i);
-+        goto tailcall;
-+      }
-+      if (!extern_closures)
-+        extern_invalid_argument("output_value: dynamic class");
-+    } /* may fall through */
-     default: {
-       value field0;
-       mlsize_t i;
-Index: byterun/intern.c
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/byterun/intern.c,v
-retrieving revision 1.60
-diff -u -r1.60 intern.c
---- byterun/intern.c   22 Sep 2005 14:21:50 -0000      1.60
-+++ byterun/intern.c   2 Feb 2006 05:08:56 -0000
-@@ -28,6 +28,8 @@
- #include "mlvalues.h"
- #include "misc.h"
- #include "reverse.h"
-+#include "callback.h"
-+#include "compare.h"
- static unsigned char * intern_src;
- /* Reading pointer in block holding input data. */
-@@ -98,6 +100,25 @@
- #define readblock(dest,len) \
-   (memmove((dest), intern_src, (len)), intern_src += (len))
-+static value get_method_table (value key)
-+{
-+  static value *classes = NULL;
-+  value current;
-+  if (classes == NULL) {
-+    classes = caml_named_value("caml_oo_classes");
-+    if (classes == NULL) return 0;
-+    caml_register_global_root(classes);
-+  }
-+  for (current = Field(*classes, 0); Is_block(current);
-+       current = Field(current, 1))
-+  {
-+    value head = Field(current, 0);
-+    if (caml_compare(key, Field(head, 0)) == Val_int(0))
-+      return Field(head, 1);
-+  }
-+  return 0;
-+}
-+
- static void intern_cleanup(void)
- {
-   if (intern_input_malloced) caml_stat_free(intern_input);
-@@ -315,6 +336,24 @@
-         Custom_ops_val(v) = ops;
-         intern_dest += 1 + size;
-         break;
-+      case CODE_OBJECT:
-+        size = read32u();
-+        v = Val_hp(intern_dest);
-+        *dest = v;
-+        if (intern_obj_table != NULL) intern_obj_table[obj_counter++] = v;
-+        dest = (value *) (intern_dest + 1);
-+        *intern_dest = Make_header(size, Object_tag, intern_color);
-+        intern_dest += 1 + size;
-+        intern_rec(dest);
-+        *dest = get_method_table(*dest);
-+        if (*dest == 0) {
-+          intern_cleanup();
-+          caml_failwith("input_value: unknown class");
-+        }
-+        for(size--, dest++; size > 1; size--, dest++)
-+          intern_rec(dest);
-+        goto tailcall;
-+        
-       default:
-         intern_cleanup();
-         caml_failwith("input_value: ill-formed message");
-Index: byterun/intext.h
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/byterun/intext.h,v
-retrieving revision 1.32
-diff -u -r1.32 intext.h
---- byterun/intext.h   22 Sep 2005 14:21:50 -0000      1.32
-+++ byterun/intext.h   2 Feb 2006 05:08:56 -0000
-@@ -56,6 +56,7 @@
- #define CODE_CODEPOINTER 0x10
- #define CODE_INFIXPOINTER 0x11
- #define CODE_CUSTOM 0x12
-+#define CODE_OBJECT 0x14
- #if ARCH_FLOAT_ENDIANNESS == 0x76543210
- #define CODE_DOUBLE_NATIVE CODE_DOUBLE_BIG
-Index: stdlib/camlinternalOO.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/stdlib/camlinternalOO.ml,v
-retrieving revision 1.14
-diff -u -r1.14 camlinternalOO.ml
---- stdlib/camlinternalOO.ml   25 Oct 2005 18:34:07 -0000      1.14
-+++ stdlib/camlinternalOO.ml   2 Feb 2006 05:08:56 -0000
-@@ -305,10 +305,38 @@
-     public_methods;
-   table
-+(*
-+let create_table_variables pub_meths priv_meths vars =
-+  let tbl = create_table pub_meths in
-+  let pub_meths = to_array pub_meths
-+  and priv_meths = to_array priv_meths
-+  and vars = to_array vars in
-+  let len = 2 + Array.length pub_meths + Array.length priv_meths in
-+  let res = Array.create len tbl in
-+  let mv = new_methods_variables tbl pub_meths vars in
-+  Array.blit mv 0 res 1;
-+  res
-+*)
-+
- let init_class table =
-   inst_var_count := !inst_var_count + table.size - 1;
-   table.initializers <- List.rev table.initializers;
--  resize table (3 + magic table.methods.(1) * 16 / Sys.word_size)
-+  let len = 3 + magic table.methods.(1) * 16 / Sys.word_size in
-+  (* keep 1 more for extra info *)
-+  let len = if len > Array.length table.methods then len else len+1 in
-+  resize table len
-+
-+let classes = ref []
-+let () = Callback.register "caml_oo_classes" classes
-+
-+let init_class_shared table (file : string) (pos : int) =
-+  init_class table;
-+  let rec unique_pos pos =
-+    if List.mem_assoc (file, pos) !classes then unique_pos (pos + 0x100000)
-+    else pos in
-+  let pos = unique_pos pos in
-+  table.methods.(Array.length table.methods - 1) <- Obj.magic (file, pos);
-+  classes := ((file, pos), table.methods) :: !classes
- let inherits cla vals virt_meths concr_meths (_, super, _, env) top =
-   narrow cla vals virt_meths concr_meths;
-@@ -319,12 +347,18 @@
-    Array.map (fun nm -> get_method cla (get_method_label cla nm))
-      (to_array concr_meths))
--let make_class pub_meths class_init =
-+let make_class pub_meths class_init file pos =
-   let table = create_table pub_meths in
-   let env_init = class_init table in
--  init_class table;
-+  init_class_shared table file pos;
-   (env_init (Obj.repr 0), class_init, env_init, Obj.repr 0)
-+let make_class_env pub_meths class_init file pos =
-+  let table = create_table pub_meths in
-+  let env_init = class_init table in
-+  init_class_shared table file pos;
-+  (env_init, class_init)
-+
- type init_table = { mutable env_init: t; mutable class_init: table -> t }
- let make_class_store pub_meths class_init init_table =
-Index: stdlib/camlinternalOO.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/stdlib/camlinternalOO.mli,v
-retrieving revision 1.9
-diff -u -r1.9 camlinternalOO.mli
---- stdlib/camlinternalOO.mli  25 Oct 2005 18:34:07 -0000      1.9
-+++ stdlib/camlinternalOO.mli  2 Feb 2006 05:08:56 -0000
-@@ -43,14 +43,20 @@
- val add_initializer : table -> (obj -> unit) -> unit
- val dummy_table : table
- val create_table : string array -> table
-+(* val create_table_variables :
-+    string array -> string array -> string array -> table *)
- val init_class : table -> unit
-+val init_class_shared : table -> string -> int -> unit
- val inherits :
-     table -> string array -> string array -> string array ->
-     (t * (table -> obj -> Obj.t) * t * obj) -> bool ->
-     (Obj.t * int array * closure array)
- val make_class :
--    string array -> (table -> Obj.t -> t) ->
-+    string array -> (table -> Obj.t -> t) -> string -> int ->
-     (t * (table -> Obj.t -> t) * (Obj.t -> t) * Obj.t)
-+val make_class_env :
-+    string array -> (table -> Obj.t -> t) -> string -> int ->
-+    (Obj.t -> t) * (table -> Obj.t -> t)
- type init_table
- val make_class_store :
-     string array -> (table -> t) -> init_table -> unit
diff --git a/testlabl/multimatch.diffs b/testlabl/multimatch.diffs
deleted file mode 100644 (file)
index 6eb34b7..0000000
+++ /dev/null
@@ -1,1418 +0,0 @@
-Index: parsing/lexer.mll
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/parsing/lexer.mll,v
-retrieving revision 1.73
-diff -u -r1.73 lexer.mll
---- parsing/lexer.mll  11 Apr 2005 16:44:26 -0000      1.73
-+++ parsing/lexer.mll  2 Feb 2006 06:28:32 -0000
-@@ -63,6 +63,8 @@
-     "match", MATCH;
-     "method", METHOD;
-     "module", MODULE;
-+    "multifun", MULTIFUN;
-+    "multimatch", MULTIMATCH;
-     "mutable", MUTABLE;
-     "new", NEW;
-     "object", OBJECT;
-Index: parsing/parser.mly
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/parsing/parser.mly,v
-retrieving revision 1.123
-diff -u -r1.123 parser.mly
---- parsing/parser.mly 23 Mar 2005 03:08:37 -0000      1.123
-+++ parsing/parser.mly 2 Feb 2006 06:28:32 -0000
-@@ -257,6 +257,8 @@
- %token MINUSDOT
- %token MINUSGREATER
- %token MODULE
-+%token MULTIFUN
-+%token MULTIMATCH
- %token MUTABLE
- %token <nativeint> NATIVEINT
- %token NEW
-@@ -325,7 +327,7 @@
- %nonassoc SEMI                          /* below EQUAL ({lbl=...; lbl=...}) */
- %nonassoc LET                           /* above SEMI ( ...; let ... in ...) */
- %nonassoc below_WITH
--%nonassoc FUNCTION WITH                 /* below BAR  (match ... with ...) */
-+%nonassoc FUNCTION WITH MULTIFUN        /* below BAR  (match ... with ...) */
- %nonassoc AND             /* above WITH (module rec A: SIG with ... and ...) */
- %nonassoc THEN                          /* below ELSE (if ... then ...) */
- %nonassoc ELSE                          /* (if ... then ... else ...) */
-@@ -804,8 +806,12 @@
-       { mkexp(Pexp_function("", None, List.rev $3)) }
-   | FUN labeled_simple_pattern fun_def
-       { let (l,o,p) = $2 in mkexp(Pexp_function(l, o, [p, $3])) }
-+  | MULTIFUN opt_bar match_cases
-+      { mkexp(Pexp_multifun(List.rev $3)) }
-   | MATCH seq_expr WITH opt_bar match_cases
--      { mkexp(Pexp_match($2, List.rev $5)) }
-+      { mkexp(Pexp_match($2, List.rev $5, false)) }
-+  | MULTIMATCH seq_expr WITH opt_bar match_cases
-+      { mkexp(Pexp_match($2, List.rev $5, true)) }
-   | TRY seq_expr WITH opt_bar match_cases
-       { mkexp(Pexp_try($2, List.rev $5)) }
-   | TRY seq_expr WITH error
-@@ -1318,10 +1324,10 @@
-   | simple_core_type2                           { Rinherit $1 }
- ;
- tag_field:
--    name_tag OF opt_ampersand amper_type_list
--      { Rtag ($1, $3, List.rev $4) }
--  | name_tag
--      { Rtag ($1, true, []) }
-+    name_tag OF opt_ampersand amper_type_list amper_type_pair_list
-+      { Rtag ($1, $3, List.rev $4, $5) }
-+  | name_tag amper_type_pair_list
-+      { Rtag ($1, true, [], $2) }
- ;
- opt_ampersand:
-     AMPERSAND                                   { true }
-@@ -1331,6 +1337,11 @@
-     core_type                                   { [$1] }
-   | amper_type_list AMPERSAND core_type         { $3 :: $1 }
- ;
-+amper_type_pair_list:
-+    AMPERSAND core_type EQUAL core_type amper_type_pair_list
-+      { ($2, $4) :: $5 }
-+  | /* empty */
-+      { [] }
- opt_present:
-     LBRACKETGREATER name_tag_list RBRACKET      { List.rev $2 }
-   | /* empty */                                 { [] }
-Index: parsing/parsetree.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/parsing/parsetree.mli,v
-retrieving revision 1.42
-diff -u -r1.42 parsetree.mli
---- parsing/parsetree.mli      23 Mar 2005 03:08:37 -0000      1.42
-+++ parsing/parsetree.mli      2 Feb 2006 06:28:32 -0000
-@@ -43,7 +43,7 @@
-   | Pfield_var
- and row_field =
--    Rtag of label * bool * core_type list
-+    Rtag of label * bool * core_type list * (core_type * core_type) list
-   | Rinherit of core_type
- (* XXX Type expressions for the class language *)
-@@ -86,7 +86,7 @@
-   | Pexp_let of rec_flag * (pattern * expression) list * expression
-   | Pexp_function of label * expression option * (pattern * expression) list
-   | Pexp_apply of expression * (label * expression) list
--  | Pexp_match of expression * (pattern * expression) list
-+  | Pexp_match of expression * (pattern * expression) list * bool
-   | Pexp_try of expression * (pattern * expression) list
-   | Pexp_tuple of expression list
-   | Pexp_construct of Longident.t * expression option * bool
-@@ -111,6 +111,7 @@
-   | Pexp_lazy of expression
-   | Pexp_poly of expression * core_type option
-   | Pexp_object of class_structure
-+  | Pexp_multifun of (pattern * expression) list
- (* Value descriptions *)
-Index: parsing/printast.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/parsing/printast.ml,v
-retrieving revision 1.29
-diff -u -r1.29 printast.ml
---- parsing/printast.ml        4 Jan 2006 16:55:50 -0000       1.29
-+++ parsing/printast.ml        2 Feb 2006 06:28:32 -0000
-@@ -205,10 +205,14 @@
-       line i ppf "Pexp_apply\n";
-       expression i ppf e;
-       list i label_x_expression ppf l;
--  | Pexp_match (e, l) ->
-+  | Pexp_match (e, l, b) ->
-       line i ppf "Pexp_match\n";
-       expression i ppf e;
-       list i pattern_x_expression_case ppf l;
-+      bool i ppf b
-+  | Pexp_multifun l ->
-+      line i ppf "Pexp_multifun\n";
-+      list i pattern_x_expression_case ppf l;
-   | Pexp_try (e, l) ->
-       line i ppf "Pexp_try\n";
-       expression i ppf e;
-@@ -653,7 +657,7 @@
- and label_x_bool_x_core_type_list i ppf x =
-   match x with
--    Rtag (l, b, ctl) ->
-+    Rtag (l, b, ctl, cstr) ->
-       line i ppf "Rtag \"%s\" %s\n" l (string_of_bool b);
-       list (i+1) core_type ppf ctl
-   | Rinherit (ct) ->
-Index: typing/btype.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/btype.ml,v
-retrieving revision 1.38
-diff -u -r1.38 btype.ml
---- typing/btype.ml    4 Jan 2006 16:55:50 -0000       1.38
-+++ typing/btype.ml    2 Feb 2006 06:28:32 -0000
-@@ -66,16 +66,16 @@
-     Clink r when !r <> Cunknown -> commu_repr !r
-   | c -> c
--let rec row_field_repr_aux tl = function
--    Reither(_, tl', _, {contents = Some fi}) ->
--      row_field_repr_aux (tl@tl') fi
--  | Reither(c, tl', m, r) ->
--      Reither(c, tl@tl', m, r)
-+let rec row_field_repr_aux tl tl2 = function
-+    Reither(_, tl', _, tl2', {contents = Some fi}) ->
-+      row_field_repr_aux (tl@tl') (tl2@tl2') fi
-+  | Reither(c, tl', m, tl2', r) ->
-+      Reither(c, tl@tl', m, tl2@tl2', r)
-   | Rpresent (Some _) when tl <> [] ->
-       Rpresent (Some (List.hd tl))
-   | fi -> fi
--let row_field_repr fi = row_field_repr_aux [] fi
-+let row_field_repr fi = row_field_repr_aux [] [] fi
- let rec rev_concat l ll =
-   match ll with
-@@ -170,7 +170,8 @@
-     (fun (_, fi) ->
-       match row_field_repr fi with
-       | Rpresent(Some ty) -> f ty
--      | Reither(_, tl, _, _) -> List.iter f tl
-+      | Reither(_, tl, _, tl2, _) ->
-+          List.iter f tl; List.iter (fun (t1,t2) -> f t1; f t2) tl2
-       | _ -> ())
-     row.row_fields;
-   match (repr row.row_more).desc with
-@@ -208,15 +209,17 @@
-       (fun (l, fi) -> l,
-         match row_field_repr fi with
-         | Rpresent(Some ty) -> Rpresent(Some(f ty))
--        | Reither(c, tl, m, e) ->
-+        | Reither(c, tl, m, tpl, e) ->
-             let e = if keep then e else ref None in
-             let m = if row.row_fixed then fixed else m in
-             let tl = List.map f tl in
-+            let tl1 = List.map (fun (t1,_) -> repr (f t1)) tpl
-+            and tl2 = List.map (fun (_,t2) -> repr (f t2)) tpl in
-             bound := List.filter
-                 (function {desc=Tconstr(_,[],_)} -> false | _ -> true)
--                (List.map repr tl)
-+                (List.map repr tl @ tl1 @ tl2)
-               @ !bound;
--            Reither(c, tl, m, e)
-+            Reither(c, tl, m, List.combine tl1 tl2, e)
-         | _ -> fi)
-       row.row_fields in
-   let name =
-Index: typing/ctype.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/ctype.ml,v
-retrieving revision 1.200
-diff -u -r1.200 ctype.ml
---- typing/ctype.ml    6 Jan 2006 02:16:24 -0000       1.200
-+++ typing/ctype.ml    2 Feb 2006 06:28:32 -0000
-@@ -340,7 +340,7 @@
-       let fi = filter_row_fields erase fi in
-       match row_field_repr f with
-         Rabsent -> fi
--      | Reither(_,_,false,e) when erase -> set_row_field e Rabsent; fi
-+      | Reither(_,_,false,_,e) when erase -> set_row_field e Rabsent; fi
-       | _ -> p :: fi
-                     (**************************************)
-@@ -1286,6 +1286,10 @@
- module TypeMap = Map.Make (TypeOps)
-+
-+(* A list of univars which may appear free in a type, but only if generic *)
-+let allowed_univars = ref TypeSet.empty
-+
- (* Test the occurence of free univars in a type *)
- (* that's way too expansive. Must do some kind of cacheing *)
- let occur_univar env ty =
-@@ -1307,7 +1311,12 @@
-     then
-       match ty.desc with
-         Tunivar ->
--          if not (TypeSet.mem ty bound) then raise (Unify [ty, newgenvar()])
-+          if TypeSet.mem ty bound then () else
-+          if TypeSet.mem ty !allowed_univars &&
-+            (ty.level = generic_level ||
-+             ty.level = pivot_level - generic_level)
-+          then ()
-+          else raise (Unify [ty, newgenvar()])
-       | Tpoly (ty, tyl) ->
-           let bound = List.fold_right TypeSet.add (List.map repr tyl) bound in
-           occur_rec bound  ty
-@@ -1393,6 +1402,7 @@
-   with exn -> univar_pairs := old_univars; raise exn
- let univar_pairs = ref []
-+let delayed_conditionals = ref []
-                               (*****************)
-@@ -1691,9 +1701,11 @@
-               with Not_found -> (h,l)::hl)
-             (List.map (fun (l,_) -> (hash_variant l, l)) row1.row_fields)
-             (List.map fst r2));
-+  let fixed1 = row1.row_fixed || rm1.desc <> Tvar
-+  and fixed2 = row2.row_fixed || rm2.desc <> Tvar in
-   let more =
--    if row1.row_fixed then rm1 else
--    if row2.row_fixed then rm2 else
-+    if fixed1 then rm1 else
-+    if fixed2 then rm2 else
-     newgenvar ()
-   in update_level env (min rm1.level rm2.level) more;
-   let fixed = row1.row_fixed || row2.row_fixed
-@@ -1726,18 +1738,18 @@
-   let bound = row1.row_bound @ row2.row_bound in
-   let row0 = {row_fields = []; row_more = more; row_bound = bound;
-               row_closed = closed; row_fixed = fixed; row_name = name} in
--  let set_more row rest =
-+  let set_more row row_fixed rest =
-     let rest =
-       if closed then
-         filter_row_fields row.row_closed rest
-       else rest in
--    if rest <> [] && (row.row_closed || row.row_fixed)
--    || closed && row.row_fixed && not row.row_closed then begin
-+    if rest <> [] && (row.row_closed || row_fixed)
-+    || closed && row_fixed && not row.row_closed then begin
-       let t1 = mkvariant [] true and t2 = mkvariant rest false in
-       raise (Unify [if row == row1 then (t1,t2) else (t2,t1)])
-     end;
-     let rm = row_more row in
--    if row.row_fixed then
-+    if row_fixed then
-       if row0.row_more == rm then () else
-       if rm.desc = Tvar then link_type rm row0.row_more else
-       unify env rm row0.row_more
-@@ -1748,11 +1760,11 @@
-   in
-   let md1 = rm1.desc and md2 = rm2.desc in
-   begin try
--    set_more row1 r2;
--    set_more row2 r1;
-+    set_more row1 fixed1 r2;
-+    set_more row2 fixed2 r1;
-     List.iter
-       (fun (l,f1,f2) ->
--        try unify_row_field env row1.row_fixed row2.row_fixed l f1 f2
-+        try unify_row_field env fixed1 fixed2 row1 row2 l f1 f2
-         with Unify trace ->
-           raise (Unify ((mkvariant [l,f1] true,
-                          mkvariant [l,f2] true) :: trace)))
-@@ -1761,13 +1773,13 @@
-     log_type rm1; rm1.desc <- md1; log_type rm2; rm2.desc <- md2; raise exn
-   end
--and unify_row_field env fixed1 fixed2 l f1 f2 =
-+and unify_row_field env fixed1 fixed2 row1 row2 l f1 f2 =
-   let f1 = row_field_repr f1 and f2 = row_field_repr f2 in
-   if f1 == f2 then () else
-   match f1, f2 with
-     Rpresent(Some t1), Rpresent(Some t2) -> unify env t1 t2
-   | Rpresent None, Rpresent None -> ()
--  | Reither(c1, tl1, m1, e1), Reither(c2, tl2, m2, e2) ->
-+  | Reither(c1, tl1, m1, tp1, e1), Reither(c2, tl2, m2, tp2, e2) ->
-       if e1 == e2 then () else
-       let redo =
-         (m1 || m2) &&
-@@ -1777,32 +1789,70 @@
-             List.iter (unify env t1) tl;
-             !e1 <> None || !e2 <> None
-         end in
--      if redo then unify_row_field env fixed1 fixed2 l f1 f2 else
-+      let redo =
-+        redo || begin
-+          if tp1 = [] && fixed1 then unify_pairs env tp2;
-+          if tp2 = [] && fixed2 then unify_pairs env tp1;
-+          !e1 <> None || !e2 <> None
-+        end
-+      in
-+      if redo then unify_row_field env fixed1 fixed2 row1 row2 l f1 f2 else
-       let tl1 = List.map repr tl1 and tl2 = List.map repr tl2 in
-       let rec remq tl = function [] -> []
-         | ty :: tl' ->
-             if List.memq ty tl then remq tl tl' else ty :: remq tl tl'
-       in
-       let tl2' = remq tl2 tl1 and tl1' = remq tl1 tl2 in
-+      let repr_pairs = List.map (fun (t1,t2) -> repr t1, repr t2) in
-+      let tp1 = repr_pairs tp1 and tp2 = repr_pairs tp2 in
-+      let rec rempq tp = function [] -> []
-+        | (t1,t2 as p) :: tp' ->
-+            if List.exists (fun (t1',t2') -> t1==t1' && t2==t2') (tp@tp') then
-+              rempq tp tp'
-+            else p :: rempq tp tp'
-+      in
-+      let tp1' =
-+        if fixed2 then begin
-+          delayed_conditionals :=
-+            (!univar_pairs, tp1, l, row2) :: !delayed_conditionals;
-+          []
-+        end else rempq tp2 tp1
-+      and tp2' =
-+        if fixed1 then begin
-+          delayed_conditionals :=
-+            (!univar_pairs, tp2, l, row1) :: !delayed_conditionals;
-+          []
-+        end else rempq tp1 tp2
-+      in
-       let e = ref None in
--      let f1' = Reither(c1 || c2, tl1', m1 || m2, e)
--      and f2' = Reither(c1 || c2, tl2', m1 || m2, e) in
--      set_row_field e1 f1'; set_row_field e2 f2';
--  | Reither(_, _, false, e1), Rabsent -> set_row_field e1 f2
--  | Rabsent, Reither(_, _, false, e2) -> set_row_field e2 f1
-+      let f1' = Reither(c1 || c2, tl1', m1 || m2, tp2', e)
-+      and f2' = Reither(c1 || c2, tl2', m1 || m2, tp1', e) in
-+      set_row_field e1 f1'; set_row_field e2 f2'
-+  | Reither(_, _, false, _, e1), Rabsent -> set_row_field e1 f2
-+  | Rabsent, Reither(_, _, false, _, e2) -> set_row_field e2 f1
-   | Rabsent, Rabsent -> ()
--  | Reither(false, tl, _, e1), Rpresent(Some t2) when not fixed1 ->
-+  | Reither(false, tl, _, tp, e1), Rpresent(Some t2) when not fixed1 ->
-       set_row_field e1 f2;
--      (try List.iter (fun t1 -> unify env t1 t2) tl
-+      begin try
-+        List.iter (fun t1 -> unify env t1 t2) tl;
-+        List.iter (fun (t1,t2) -> unify env t1 t2) tp
-+      with exn -> e1 := None; raise exn
-+      end
-+  | Rpresent(Some t1), Reither(false, tl, _, tp, e2) when not fixed2 ->
-+      set_row_field e2 f1;
-+      begin try
-+        List.iter (unify env t1) tl;
-+        List.iter (fun (t1,t2) -> unify env t1 t2) tp
-+      with exn -> e2 := None; raise exn
-+      end
-+  | Reither(true, [], _, tpl, e1), Rpresent None when not fixed1 ->
-+      set_row_field e1 f2;
-+      (try List.iter (fun (t1,t2) -> unify env t1 t2) tpl
-       with exn -> e1 := None; raise exn)
--  | Rpresent(Some t1), Reither(false, tl, _, e2) when not fixed2 ->
-+  | Rpresent None, Reither(true, [], _, tpl, e2) when not fixed2 ->
-       set_row_field e2 f1;
--      (try List.iter (unify env t1) tl
-+      (try List.iter (fun (t1,t2) -> unify env t1 t2) tpl
-       with exn -> e2 := None; raise exn)
--  | Reither(true, [], _, e1), Rpresent None when not fixed1 ->
--      set_row_field e1 f2
--  | Rpresent None, Reither(true, [], _, e2) when not fixed2 ->
--      set_row_field e2 f1
-   | _ -> raise (Unify [])
-     
-@@ -1920,6 +1970,166 @@
-                         (*  Matching between type schemes  *)
-                         (***********************************)
-+(* Forward declaration (order should be reversed...) *)
-+let equal' = ref (fun _ -> failwith "Ctype.equal'")
-+
-+let make_generics_univars tyl =
-+  let polyvars = ref TypeSet.empty in
-+  let rec make_rec ty =
-+    let ty = repr ty in
-+    if ty.level = generic_level then begin
-+      if ty.desc = Tvar  then begin
-+        log_type ty;
-+        ty.desc <- Tunivar;
-+        polyvars := TypeSet.add ty !polyvars
-+      end
-+      else if ty.desc = Tunivar then set_level ty (generic_level - 1);
-+      ty.level <- pivot_level - generic_level;
-+      iter_type_expr make_rec ty
-+    end
-+  in
-+  List.iter make_rec tyl;
-+  List.iter unmark_type tyl;
-+  !polyvars
-+
-+(* New version of moregeneral, using unification *)
-+
-+let copy_cond (p,tpl,l,row) =
-+  let row =
-+    match repr (copy (newgenty (Tvariant row))) with
-+      {desc=Tvariant row} -> row
-+    | _ -> assert false
-+  and pairs =
-+    List.map (fun (t1,t2) -> copy t1, copy t2) tpl in
-+  (p, pairs, l, row)
-+
-+let get_row_field l row =
-+  try row_field_repr (List.assoc l (row_repr row).row_fields)
-+  with Not_found -> Rabsent
-+
-+let rec check_conditional_list env cdtls pattvars tpls =
-+  match cdtls with
-+    [] ->
-+      let finished =
-+        List.for_all (fun (_,t1,t2) -> !equal' env false [t1] [t2]) tpls in
-+      if not finished then begin
-+        let polyvars = make_generics_univars pattvars in
-+        delayed_conditionals := [];
-+        allowed_univars := polyvars;
-+        List.iter (fun (pairs, ty1, ty2) -> unify_pairs env ty1 ty2 pairs)
-+          tpls;
-+        check_conditionals env polyvars !delayed_conditionals
-+      end
-+  | (pairs, tpl1, l, row2 as cond) :: cdtls ->
-+      let cont = check_conditional_list env cdtls pattvars in
-+      let tpl1 =
-+        List.filter (fun (t1,t2) -> not (!equal' env false [t1] [t2])) tpl1 in
-+      let included =
-+        List.for_all
-+          (fun (t1,t2) ->
-+            List.exists
-+              (fun (_,t1',t2') -> !equal' env false [t1;t2] [t1';t2'])
-+              tpls)
-+          tpl1 in
-+      if included then cont tpls else
-+      match get_row_field l row2 with
-+        Rpresent _ ->
-+          cont (List.map (fun (t1,t2) -> (pairs,t1,t2)) tpl1 @ tpls)
-+      | Rabsent -> cont tpls
-+      | Reither (c, tl2, _, _, _) ->
-+          cont tpls;
-+          if c && tl2 <> [] then () (* cannot succeed *) else
-+          let (pairs, tpl1, l, row2) = copy_cond cond
-+          and tpls = List.map (fun (p,t1,t2) -> p, copy t1, copy t2) tpls
-+          and pattvars = List.map copy pattvars
-+          and cdtls = List.map copy_cond cdtls in
-+          cleanup_types ();
-+          let tl2, tpl2, e2 =
-+            match get_row_field l row2 with
-+              Reither (c, tl2, _, tpl2, e2) -> tl2, tpl2, e2
-+            | _ -> assert false
-+          in
-+          let snap = Btype.snapshot () in
-+          let ok =
-+            try
-+              begin match tl2 with
-+                [] ->
-+                  set_row_field e2 (Rpresent None)
-+              | t::tl ->
-+                  set_row_field e2 (Rpresent (Some t));
-+                  List.iter (unify env t) tl
-+              end;
-+              List.iter (fun (t1,t2) -> unify_pairs env t1 t2 pairs) tpl2;
-+              true
-+            with exn ->
-+              Btype.backtrack snap;
-+              false
-+          in
-+            (* This is not [cont] : types have been copied *)
-+          if ok then
-+            check_conditional_list env cdtls pattvars
-+              (List.map (fun (t1,t2) -> (pairs,t1,t2)) tpl1 @ tpls)
-+
-+and check_conditionals env polyvars cdtls =
-+  let cdtls = List.map copy_cond cdtls in
-+  let pattvars = ref [] in
-+  TypeSet.iter
-+    (fun ty ->
-+      let ty = repr ty in
-+      match ty.desc with
-+        Tsubst ty ->
-+          let ty = repr ty in
-+          begin match ty.desc with
-+            Tunivar ->
-+              log_type ty;
-+              ty.desc <- Tvar;
-+              pattvars := ty :: !pattvars
-+          | Ttuple [tv;_] ->
-+              if tv.desc = Tunivar then
-+                (log_type tv; tv.desc <- Tvar; pattvars := ty :: !pattvars)
-+              else if tv.desc <> Tvar then assert false
-+          | Tvar -> ()
-+          | _ -> assert false
-+          end
-+      | _ -> ())
-+    polyvars;
-+  cleanup_types ();
-+  check_conditional_list env cdtls !pattvars []
-+  
-+
-+(* Must empty univar_pairs first *)
-+let unify_poly env polyvars subj patt =
-+  let old_level = !current_level in
-+  current_level := generic_level;
-+  delayed_conditionals := [];
-+  allowed_univars := polyvars;
-+  try
-+    unify env subj patt;
-+    check_conditionals env polyvars !delayed_conditionals;
-+    current_level := old_level;
-+    allowed_univars := TypeSet.empty;
-+    delayed_conditionals := []
-+  with exn ->
-+    current_level := old_level;
-+    allowed_univars := TypeSet.empty;
-+    delayed_conditionals := [];
-+    raise exn
-+
-+let moregeneral env _ subj patt =
-+  let old_level = !current_level in
-+  current_level := generic_level;
-+  let subj = instance subj
-+  and patt = instance patt in
-+  let polyvars = make_generics_univars [patt] in
-+  current_level := old_level;
-+  let snap = Btype.snapshot () in
-+  try
-+    unify_poly env polyvars subj patt;
-+    true
-+  with Unify _ ->
-+    Btype.backtrack snap;
-+    false
-+
- (*
-    Update the level of [ty]. First check that the levels of generic
-    variables from the subject are not lowered.
-@@ -2072,35 +2282,101 @@
-         Rpresent(Some t1), Rpresent(Some t2) ->
-           moregen inst_nongen type_pairs env t1 t2
-       | Rpresent None, Rpresent None -> ()
--      | Reither(false, tl1, _, e1), Rpresent(Some t2) when not univ ->
-+      | Reither(false, tl1, _, [], e1), Rpresent(Some t2) when not univ ->
-           set_row_field e1 f2;
-           List.iter (fun t1 -> moregen inst_nongen type_pairs env t1 t2) tl1
--      | Reither(c1, tl1, _, e1), Reither(c2, tl2, m2, e2) ->
-+      | Reither(c1, tl1, _, tpl1, e1), Reither(c2, tl2, m2, tpl2, e2) ->
-           if e1 != e2 then begin
-             if c1 && not c2 then raise(Unify []);
--            set_row_field e1 (Reither (c2, [], m2, e2));
--            if List.length tl1 = List.length tl2 then
--              List.iter2 (moregen inst_nongen type_pairs env) tl1 tl2
--            else match tl2 with
--              t2 :: _ ->
-+            let tpl' = if tpl1 = [] then tpl2 else [] in
-+            set_row_field e1 (Reither (c2, [], m2, tpl', e2));
-+            begin match tl2 with
-+              [t2] ->
-                 List.iter (fun t1 -> moregen inst_nongen type_pairs env t1 t2)
-                   tl1
--            | [] ->
--                if tl1 <> [] then raise (Unify [])
-+            | _ ->
-+                if List.length tl1 <> List.length tl2 then raise (Unify []);
-+                List.iter2 (moregen inst_nongen type_pairs env) tl1 tl2
-+            end;
-+            if tpl1 <> [] then
-+              delayed_conditionals :=
-+                (!univar_pairs, tpl1, l, row2) :: !delayed_conditionals
-           end
--      | Reither(true, [], _, e1), Rpresent None when not univ ->
-+      | Reither(true, [], _, [], e1), Rpresent None when not univ ->
-           set_row_field e1 f2
--      | Reither(_, _, _, e1), Rabsent when not univ ->
-+      | Reither(_, _, _, [], e1), Rabsent when not univ ->
-           set_row_field e1 f2
-       | Rabsent, Rabsent -> ()
-       | _ -> raise (Unify []))
-     pairs
-+let check_conditional env (pairs, tpl1, l, row2) tpls cont =
-+  let tpl1 =
-+    List.filter (fun (t1,t2) -> not (!equal' env false [t1] [t2])) tpl1 in
-+  let included =
-+    List.for_all
-+      (fun (t1,t2) ->
-+        List.exists (fun (t1',t2') -> !equal' env false [t1;t2] [t1';t2'])
-+          tpls)
-+      tpl1 in
-+  if tpl1 = [] || included then cont tpls else
-+  match get_row_field l row2 with
-+    Rpresent _ -> cont (tpl1 @ tpls)
-+  | Rabsent -> cont tpls
-+  | Reither (c, tl2, _, tpl2, e2) ->
-+      if not c || tl2 = [] then begin
-+        let snap = Btype.snapshot () in
-+        let ok =
-+          try
-+            begin match tl2 with
-+              [] ->
-+                set_row_field e2 (Rpresent None)
-+            | t::tl ->
-+                set_row_field e2 (Rpresent (Some t));
-+                List.iter (unify env t) tl
-+            end;
-+            List.iter (fun (t1,t2) -> unify_pairs env t1 t2 pairs) tpl2;
-+            true
-+          with Unify _ -> false
-+        in
-+        if ok then cont (tpl1 @ tpls);
-+        Btype.backtrack snap
-+      end;
-+      cont tpls
-+
-+let rec check_conditionals inst_nongen env cdtls tpls =
-+  match cdtls with
-+    [] ->
-+      let tpls =
-+        List.filter (fun (t1,t2) -> not (!equal' env false [t1] [t2])) tpls in
-+      if tpls = [] then () else begin
-+        delayed_conditionals := [];
-+        let tl1, tl2 = List.split tpls in
-+        let type_pairs = TypePairs.create 13 in
-+        List.iter2 (moregen false type_pairs env) tl2 tl1;
-+        check_conditionals inst_nongen env !delayed_conditionals []
-+      end
-+  | cdtl :: cdtls ->
-+      check_conditional env cdtl tpls
-+        (check_conditionals inst_nongen env cdtls)
-+
-+
- (* Must empty univar_pairs first *)
- let moregen inst_nongen type_pairs env patt subj =
-   univar_pairs := [];
--  moregen inst_nongen type_pairs env patt subj
-+  delayed_conditionals := [];
-+  try
-+    moregen inst_nongen type_pairs env patt subj;
-+    check_conditionals inst_nongen env !delayed_conditionals [];
-+    univar_pairs := [];
-+    delayed_conditionals := []
-+  with exn ->
-+    univar_pairs := [];
-+    delayed_conditionals := [];
-+    raise exn
-+
-+(* old implementation
- (*
-    Non-generic variable can be instanciated only if [inst_nongen] is
-    true. So, [inst_nongen] should be set to false if the subject might
-@@ -2128,6 +2404,7 @@
-   in
-   current_level := old_level;
-   res
-+*)
- (* Alternative approach: "rigidify" a type scheme,
-@@ -2296,30 +2573,36 @@
-     {desc=Tvariant row2} -> eqtype_row rename type_pairs subst env row1 row2
-   | _ -> raise Cannot_expand
-   with Cannot_expand ->
-+  let eqtype_rec = eqtype rename type_pairs subst env in
-   let row1 = row_repr row1 and row2 = row_repr row2 in
-   let r1, r2, pairs = merge_row_fields row1.row_fields row2.row_fields in
-   if row1.row_closed <> row2.row_closed
-   || not row1.row_closed && (r1 <> [] || r2 <> [])
-   || filter_row_fields false (r1 @ r2) <> []
-   then raise (Unify []);
--  if not (static_row row1) then
--    eqtype rename type_pairs subst env row1.row_more row2.row_more;
-+  if not (static_row row1) then eqtype_rec row1.row_more row2.row_more;
-   List.iter
-     (fun (_,f1,f2) ->
-       match row_field_repr f1, row_field_repr f2 with
-         Rpresent(Some t1), Rpresent(Some t2) ->
--          eqtype rename type_pairs subst env t1 t2
--      | Reither(true, [], _, _), Reither(true, [], _, _) ->
--          ()
--      | Reither(false, t1::tl1, _, _), Reither(false, t2::tl2, _, _) ->
--          eqtype rename type_pairs subst env t1 t2;
-+          eqtype_rec t1 t2
-+      | Reither(true, [], _, tp1, _), Reither(true, [], _, tp2, _) ->
-+          List.iter2
-+            (fun (t1,t1') (t2,t2') -> eqtype_rec t1 t2; eqtype_rec t1' t2')
-+            tp1 tp2
-+      | Reither(false, t1::tl1, _, tpl1, _),
-+        Reither(false, t2::tl2, _, tpl2, _) ->
-+          eqtype_rec t1 t2;
-+          List.iter2
-+            (fun (t1,t1') (t2,t2') -> eqtype_rec t1 t2; eqtype_rec t1' t2')
-+            tpl1 tpl2;
-           if List.length tl1 = List.length tl2 then
-             (* if same length allow different types (meaning?) *)
--            List.iter2 (eqtype rename type_pairs subst env) tl1 tl2
-+            List.iter2 eqtype_rec tl1 tl2
-           else begin
-             (* otherwise everything must be equal *)
--            List.iter (eqtype rename type_pairs subst env t1) tl2;
--            List.iter (fun t1 -> eqtype rename type_pairs subst env t1 t2) tl1
-+            List.iter (eqtype_rec t1) tl2;
-+            List.iter (fun t1 -> eqtype_rec t1 t2) tl1
-           end
-       | Rpresent None, Rpresent None -> ()
-       | Rabsent, Rabsent -> ()
-@@ -2334,6 +2617,8 @@
-   with
-     Unify _ -> false
-+let () = equal' := equal
-+
- (* Must empty univar_pairs first *)  
- let eqtype rename type_pairs subst env t1 t2 =
-   univar_pairs := [];
-@@ -2770,14 +3055,14 @@
-           (fun (l,f as orig) -> match row_field_repr f with
-             Rpresent None ->
-               if posi then
--                (l, Reither(true, [], false, ref None)), Unchanged
-+                (l, Reither(true, [], false, [], ref None)), Unchanged
-               else
-                 orig, Unchanged
-           | Rpresent(Some t) ->
-               let (t', c) = build_subtype env visited loops posi level' t in
-               if posi && level > 0 then begin
-                 bound := t' :: !bound;
--                (l, Reither(false, [t'], false, ref None)), c
-+                (l, Reither(false, [t'], false, [], ref None)), c
-               end else
-                 (l, Rpresent(Some t')), c
-           | _ -> assert false)
-@@ -2960,11 +3245,11 @@
-       List.fold_left
-         (fun cstrs (_,f1,f2) ->
-           match row_field_repr f1, row_field_repr f2 with
--            (Rpresent None|Reither(true,_,_,_)), Rpresent None ->
-+            (Rpresent None|Reither(true,_,_,[],_)), Rpresent None ->
-               cstrs
-           | Rpresent(Some t1), Rpresent(Some t2) ->
-               subtype_rec env ((t1, t2)::trace) t1 t2 cstrs
--          | Reither(false, t1::_, _, _), Rpresent(Some t2) ->
-+          | Reither(false, t1::_, _, [], _), Rpresent(Some t2) ->
-               subtype_rec env ((t1, t2)::trace) t1 t2 cstrs
-           | Rabsent, _ -> cstrs
-           | _ -> raise Exit)
-@@ -2977,11 +3262,11 @@
-         (fun cstrs (_,f1,f2) ->
-           match row_field_repr f1, row_field_repr f2 with
-             Rpresent None, Rpresent None
--          | Reither(true,[],_,_), Reither(true,[],_,_)
-+          | Reither(true,[],_,[],_), Reither(true,[],_,[],_)
-           | Rabsent, Rabsent ->
-               cstrs
-           | Rpresent(Some t1), Rpresent(Some t2)
--          | Reither(false,[t1],_,_), Reither(false,[t2],_,_) ->
-+          | Reither(false,[t1],_,[],_), Reither(false,[t2],_,[],_) ->
-               subtype_rec env ((t1, t2)::trace) t1 t2 cstrs
-           | _ -> raise Exit)
-         cstrs pairs
-@@ -3079,16 +3364,26 @@
-       let fields = List.map
-           (fun (l,f) ->
-             let f = row_field_repr f in l,
--            match f with Reither(b, ty::(_::_ as tyl), m, e) ->
--              let tyl' =
--                List.fold_left
--                  (fun tyl ty ->
--                    if List.exists (fun ty' -> equal env false [ty] [ty']) tyl
--                    then tyl else ty::tyl)
--                  [ty] tyl
-+            match f with Reither(b, tyl, m, tp, e) ->
-+              let rem_dbl eq l =
-+                List.rev
-+                  (List.fold_left
-+                     (fun xs x -> if List.exists (eq x) xs then xs else x::xs)
-+                     [] l)
-+              in
-+              let tyl' = rem_dbl (fun t1 t2 -> equal env false [t1] [t2]) tyl
-+              and tp' =
-+                  List.filter
-+                    (fun (ty1,ty2) -> not (equal env false [ty1] [ty2])) tp
-+              in
-+              let tp' =
-+                rem_dbl
-+                  (fun (t1,t2) (t1',t2') -> equal env false [t1;t2] [t1';t2'])
-+                  tp'
-               in
--              if List.length tyl' <= List.length tyl then
--                let f = Reither(b, List.rev tyl', m, ref None) in
-+              if List.length tyl' < List.length tyl
-+              || List.length tp' < List.length tp then
-+                let f = Reither(b, tyl', m, tp', ref None) in
-                 set_row_field e f;
-                 f
-               else f
-@@ -3344,9 +3639,9 @@
-       List.iter
-         (fun (l,fi) ->
-           match row_field_repr fi with
--            Reither (c, t1::(_::_ as tl), m, e) ->
-+            Reither (c, t1::(_::_ as tl), m, tp, e) ->
-               List.iter (unify env t1) tl;
--              set_row_field e (Reither (c, [t1], m, ref None))
-+              set_row_field e (Reither (c, [t1], m, tp, ref None))
-           | _ ->
-               ())
-         row.row_fields;
-Index: typing/includecore.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/includecore.ml,v
-retrieving revision 1.32
-diff -u -r1.32 includecore.ml
---- typing/includecore.ml      8 Aug 2005 05:40:52 -0000       1.32
-+++ typing/includecore.ml      2 Feb 2006 06:28:32 -0000
-@@ -71,10 +71,10 @@
-       (fun (_, f1, f2) ->
-         match Btype.row_field_repr f1, Btype.row_field_repr f2 with
-           Rpresent(Some t1),
--          (Rpresent(Some t2) | Reither(false, [t2], _, _)) ->
-+          (Rpresent(Some t2) | Reither(false,[t2],_,[],_)) ->
-             to_equal := (t1,t2) :: !to_equal; true
--        | Rpresent None, (Rpresent None | Reither(true, [], _, _)) -> true
--        | Reither(c1,tl1,_,_), Reither(c2,tl2,_,_)
-+        | Rpresent None, (Rpresent None | Reither(true,[],_,[],_)) -> true
-+        | Reither(c1,tl1,_,[],_), Reither(c2,tl2,_,[],_)
-           when List.length tl1 = List.length tl2 && c1 = c2 ->
-             to_equal := List.combine tl1 tl2 @ !to_equal; true
-         | Rabsent, (Reither _ | Rabsent) -> true
-Index: typing/oprint.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/oprint.ml,v
-retrieving revision 1.22
-diff -u -r1.22 oprint.ml
---- typing/oprint.ml   23 Mar 2005 03:08:37 -0000      1.22
-+++ typing/oprint.ml   2 Feb 2006 06:28:33 -0000
-@@ -223,14 +223,18 @@
-       print_fields rest ppf []
-   | (s, t) :: l ->
-       fprintf ppf "%s : %a;@ %a" s print_out_type t (print_fields rest) l
--and print_row_field ppf (l, opt_amp, tyl) =
-+and print_row_field ppf (l, opt_amp, tyl, tpl) =
-   let pr_of ppf =
-     if opt_amp then fprintf ppf " of@ &@ "
-     else if tyl <> [] then fprintf ppf " of@ "
--    else fprintf ppf ""
--  in
--  fprintf ppf "@[<hv 2>`%s%t%a@]" l pr_of (print_typlist print_out_type " &")
--    tyl
-+  and pr_tp ppf (t1,t2) =
-+    fprintf ppf "@[<hv 2>%a =@ %a@]"
-+      print_out_type t1
-+      print_out_type t2
-+  in
-+  fprintf ppf "@[<hv 2>`%s%t%a%a@]" l pr_of
-+    (print_typlist print_out_type " &") tyl
-+    (print_list_init pr_tp (fun ppf -> fprintf ppf " &@ ")) tpl
- and print_typlist print_elem sep ppf =
-   function
-     [] -> ()
-Index: typing/outcometree.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/outcometree.mli,v
-retrieving revision 1.14
-diff -u -r1.14 outcometree.mli
---- typing/outcometree.mli     23 Mar 2005 03:08:37 -0000      1.14
-+++ typing/outcometree.mli     2 Feb 2006 06:28:33 -0000
-@@ -61,7 +61,8 @@
-       bool * out_variant * bool * (string list) option
-   | Otyp_poly of string list * out_type
- and out_variant =
--  | Ovar_fields of (string * bool * out_type list) list
-+  | Ovar_fields of
-+      (string * bool * out_type list * (out_type * out_type) list ) list
-   | Ovar_name of out_ident * out_type list
- type out_class_type =
-Index: typing/parmatch.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/parmatch.ml,v
-retrieving revision 1.70
-diff -u -r1.70 parmatch.ml
---- typing/parmatch.ml 24 Mar 2005 17:20:54 -0000      1.70
-+++ typing/parmatch.ml 2 Feb 2006 06:28:33 -0000
-@@ -568,11 +568,11 @@
-     List.fold_left
-       (fun nm (tag,f) ->
-         match Btype.row_field_repr f with
--        | Reither(_, _, false, e) ->
-+        | Reither(_, _, false, _, e) ->
-             (* m=false means that this tag is not explicitly matched *)
-             Btype.set_row_field e Rabsent;
-             None
--        | Rabsent | Reither (_, _, true, _) | Rpresent _ -> nm)
-+        | Rabsent | Reither (_, _, true, _, _) | Rpresent _ -> nm)
-       row.row_name row.row_fields in
-   if not row.row_closed || nm != row.row_name then begin
-     (* this unification cannot fail *)
-@@ -605,8 +605,8 @@
-       List.for_all
-         (fun (tag,f) ->
-           match Btype.row_field_repr f with
--            Rabsent | Reither(_, _, false, _) -> true
--          | Reither (_, _, true, _)
-+            Rabsent | Reither(_, _, false, _, _) -> true
-+          | Reither (_, _, true, _, _)
-               (* m=true, do not discard matched tags, rather warn *)
-           | Rpresent _ -> List.mem tag fields)
-         row.row_fields
-@@ -739,7 +739,7 @@
-           match Btype.row_field_repr f with
-             Rabsent (* | Reither _ *) -> others
-           (* This one is called after erasing pattern info *)
--          | Reither (c, _, _, _) -> make_other_pat tag c :: others
-+          | Reither (c, _, _, _, _) -> make_other_pat tag c :: others
-           | Rpresent arg -> make_other_pat tag (arg = None) :: others)
-         [] row.row_fields
-     with
-Index: typing/printtyp.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/printtyp.ml,v
-retrieving revision 1.140
-diff -u -r1.140 printtyp.ml
---- typing/printtyp.ml 4 Jan 2006 16:55:50 -0000       1.140
-+++ typing/printtyp.ml 2 Feb 2006 06:28:33 -0000
-@@ -157,9 +157,12 @@
- and raw_field ppf = function
-     Rpresent None -> fprintf ppf "Rpresent None"
-   | Rpresent (Some t) -> fprintf ppf "@[<1>Rpresent(Some@,%a)@]" raw_type t
--  | Reither (c,tl,m,e) ->
--      fprintf ppf "@[<hov1>Reither(%b,@,%a,@,%b,@,@[<1>ref%t@])@]" c
--        raw_type_list tl m
-+  | Reither (c,tl,m,tpl,e) ->
-+      fprintf ppf "@[<hov1>Reither(%b,@,%a,@,%b,@,%a,@,@[<1>ref%t@])@]"
-+        c raw_type_list tl m
-+        (raw_list
-+           (fun ppf (t1,t2) ->
-+             fprintf ppf "@[%a,@,%a@]" raw_type t1 raw_type t2)) tpl
-         (fun ppf ->
-           match !e with None -> fprintf ppf " None"
-           | Some f -> fprintf ppf "@,@[<1>(%a)@]" raw_field f)
-@@ -219,8 +222,9 @@
-   List.for_all
-     (fun (_, f) ->
-        match row_field_repr f with
--       | Reither(c, l, _, _) ->
--           row.row_closed && if c then l = [] else List.length l = 1
-+       | Reither(c, l, _, pl, _) ->
-+           row.row_closed && pl = [] &&
-+           if c then l = [] else List.length l = 1
-        | _ -> true)
-     row.row_fields
-@@ -392,13 +396,16 @@
- and tree_of_row_field sch (l, f) =
-   match row_field_repr f with
--  | Rpresent None | Reither(true, [], _, _) -> (l, false, [])
--  | Rpresent(Some ty) -> (l, false, [tree_of_typexp sch ty])
--  | Reither(c, tyl, _, _) ->
--      if c (* contradiction: un constructeur constant qui a un argument *)
--      then (l, true, tree_of_typlist sch tyl)
--      else (l, false, tree_of_typlist sch tyl)
--  | Rabsent -> (l, false, [] (* une erreur, en fait *))
-+  | Rpresent None | Reither(true, [], _, [], _) -> (l, false, [], [])
-+  | Rpresent(Some ty) -> (l, false, [tree_of_typexp sch ty], [])
-+  | Reither(c, tyl, _, tpl, _) ->
-+      let ttpl =
-+        List.map
-+          (fun (t1,t2) -> tree_of_typexp sch t1, tree_of_typexp sch t2)
-+          tpl
-+      in
-+      (l, c && tpl = [], tree_of_typlist sch tyl, ttpl)
-+  | Rabsent -> (l, false, [], [] (* une erreur, en fait *))
- and tree_of_typlist sch tyl =
-   List.map (tree_of_typexp sch) tyl
-Index: typing/typeclass.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typeclass.ml,v
-retrieving revision 1.85
-diff -u -r1.85 typeclass.ml
---- typing/typeclass.ml        22 Jul 2005 06:42:36 -0000      1.85
-+++ typing/typeclass.ml        2 Feb 2006 06:28:33 -0000
-@@ -727,7 +727,7 @@
-         {pexp_loc = loc; pexp_desc =
-          Pexp_match({pexp_loc = loc; pexp_desc =
-                      Pexp_ident(Longident.Lident"*opt*")},
--                    scases)} in
-+                    scases, false)} in
-       let sfun =
-         {pcl_loc = scl.pcl_loc; pcl_desc =
-          Pcl_fun(l, None, {ppat_loc = loc; ppat_desc = Ppat_var"*opt*"},
-Index: typing/typecore.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typecore.ml,v
-retrieving revision 1.178
-diff -u -r1.178 typecore.ml
---- typing/typecore.ml 6 Jan 2006 02:25:37 -0000       1.178
-+++ typing/typecore.ml 2 Feb 2006 06:28:33 -0000
-@@ -156,15 +156,21 @@
-       let field = row_field tag row in
-       begin match field with
-       | Rabsent -> assert false
--      | Reither (true, [], _, e) when not row.row_closed ->
--          set_row_field e (Rpresent None)
--      | Reither (false, ty::tl, _, e) when not row.row_closed ->
-+      | Reither (true, [], _, tpl, e) when not row.row_closed ->
-+          set_row_field e (Rpresent None);
-+          List.iter
-+            (fun (t1,t2) -> unify_pat pat.pat_env {pat with pat_type=t1} t2)
-+            tpl
-+      | Reither (false, ty::tl, _, tpl, e) when not row.row_closed ->
-           set_row_field e (Rpresent (Some ty));
-+          List.iter
-+            (fun (t1,t2) -> unify_pat pat.pat_env {pat with pat_type=t1} t2)
-+            tpl;
-           begin match opat with None -> assert false
-           | Some pat -> List.iter (unify_pat pat.pat_env pat) (ty::tl)
-           end
--      | Reither (c, l, true, e) when not row.row_fixed ->
--          set_row_field e (Reither (c, [], false, ref None))
-+      | Reither (c, l, true, tpl, e) when not row.row_fixed ->
-+          set_row_field e (Reither (c, [], false, [], ref None))
-       | _ -> ()
-       end;
-       (* Force check of well-formedness *)
-@@ -307,13 +313,13 @@
-         match row_field_repr f with
-           Rpresent None ->
-             (l,None) :: pats,
--            (l, Reither(true,[], true, ref None)) :: fields
-+            (l, Reither(true,[], true, [], ref None)) :: fields
-         | Rpresent (Some ty) ->
-             bound := ty :: !bound;
-             (l, Some {pat_desc=Tpat_any; pat_loc=Location.none; pat_env=env;
-                       pat_type=ty})
-             :: pats,
--            (l, Reither(false, [ty], true, ref None)) :: fields
-+            (l, Reither(false, [ty], true, [], ref None)) :: fields
-         | _ -> pats, fields)
-       ([],[]) fields in
-   let row =
-@@ -337,6 +343,18 @@
-           pat pats in
-       rp { r with pat_loc = loc }
-+let rec flatten_or_pat pat =
-+  match pat.pat_desc with
-+    Tpat_or (p1, p2, _) ->
-+      flatten_or_pat p1 @ flatten_or_pat p2
-+  | _ ->
-+      [pat]
-+
-+let all_variants pat =
-+  List.for_all
-+    (function {pat_desc=Tpat_variant _} -> true | _ -> false)
-+    (flatten_or_pat pat)
-+
- let rec find_record_qual = function
-   | [] -> None
-   | (Longident.Ldot (modname, _), _) :: _ -> Some modname
-@@ -423,7 +441,7 @@
-       let arg = may_map (type_pat env) sarg in
-       let arg_type = match arg with None -> [] | Some arg -> [arg.pat_type]  in
-       let row = { row_fields =
--                    [l, Reither(arg = None, arg_type, true, ref None)];
-+                    [l, Reither(arg = None, arg_type, true, [], ref None)];
-                   row_bound = arg_type;
-                   row_closed = false;
-                   row_more = newvar ();
-@@ -788,7 +806,7 @@
-        newty (Tarrow(p, type_option (newvar ()), type_approx env e, Cok))
-   | Pexp_function (p,_,(_,e)::_) ->
-        newty (Tarrow(p, newvar (), type_approx env e, Cok))
--  | Pexp_match (_, (_,e)::_) -> type_approx env e
-+  | Pexp_match (_, (_,e)::_, false) -> type_approx env e
-   | Pexp_try (e, _) -> type_approx env e
-   | Pexp_tuple l -> newty (Ttuple(List.map (type_approx env) l))
-   | Pexp_ifthenelse (_,e,_) -> type_approx env e
-@@ -939,17 +957,26 @@
-         exp_loc = sexp.pexp_loc;
-         exp_type = ty_res;
-         exp_env = env }
--  | Pexp_match(sarg, caselist) ->
-+  | Pexp_match(sarg, caselist, multi) ->
-       let arg = type_exp env sarg in
-       let ty_res = newvar() in
-       let cases, partial =
--        type_cases env arg.exp_type ty_res (Some sexp.pexp_loc) caselist
-+        type_cases env arg.exp_type ty_res (Some sexp.pexp_loc) caselist ~multi
-       in
-       re {
-         exp_desc = Texp_match(arg, cases, partial);
-         exp_loc = sexp.pexp_loc;
-         exp_type = ty_res;
-         exp_env = env }
-+  | Pexp_multifun caselist ->
-+      let ty_arg = newvar() and ty_res = newvar() in
-+      let cases, partial =
-+        type_cases env ty_arg ty_res (Some sexp.pexp_loc) caselist ~multi:true
-+      in
-+      { exp_desc = Texp_function (cases, partial);
-+        exp_loc = sexp.pexp_loc;
-+        exp_type = newty (Tarrow ("", ty_arg, ty_res, Cok));
-+        exp_env = env }
-   | Pexp_try(sbody, caselist) ->
-       let body = type_exp env sbody in
-       let cases, _ =
-@@ -1758,7 +1785,7 @@
-         {pexp_loc = loc; pexp_desc =
-          Pexp_match({pexp_loc = loc; pexp_desc =
-                      Pexp_ident(Longident.Lident"*opt*")},
--                    scases)} in
-+                    scases, false)} in
-       let sfun =
-         {pexp_loc = sexp.pexp_loc; pexp_desc =
-          Pexp_function(l, None,[{ppat_loc = loc; ppat_desc = Ppat_var"*opt*"},
-@@ -1864,7 +1891,8 @@
- (* Typing of match cases *)
--and type_cases ?in_function env ty_arg ty_res partial_loc caselist =
-+and type_cases ?in_function ?(multi=false)
-+    env ty_arg ty_res partial_loc caselist =
-   let ty_arg' = newvar () in
-   let pattern_force = ref [] in
-   let pat_env_list =
-@@ -1898,10 +1926,64 @@
-   let cases =
-     List.map2
-       (fun (pat, ext_env) (spat, sexp) ->
--        let exp = type_expect ?in_function ext_env sexp ty_res in
--        (pat, exp))
--      pat_env_list caselist
--  in
-+        let add_variant_case lab row ty_res ty_res' =
-+          let fi = List.assoc lab (row_repr row).row_fields in
-+          begin match row_field_repr fi with
-+            Reither (c, _, m, _, e) ->
-+              let row' =
-+                { row_fields =
-+                  [lab, Reither(c,[],false,[ty_res,ty_res'], ref None)];
-+                  row_more = newvar (); row_bound = [ty_res; ty_res'];
-+                  row_closed = false; row_fixed = false; row_name = None }
-+              in
-+              unify_pat ext_env {pat with pat_type= newty (Tvariant row)}
-+                (newty (Tvariant row'))
-+          | _ ->
-+              unify_exp ext_env
-+                { exp_desc = Texp_tuple []; exp_type = ty_res;
-+                  exp_env = ext_env; exp_loc = sexp.pexp_loc }
-+                ty_res'
-+          end
-+        in
-+        pat,
-+        match pat.pat_desc with
-+          _ when multi && all_variants pat ->
-+            let ty_res' = newvar () in
-+            List.iter
-+              (function {pat_desc=Tpat_variant(lab,_,row)} ->
-+                add_variant_case lab row ty_res ty_res'
-+              | _ -> assert false)
-+              (flatten_or_pat pat);
-+            type_expect ?in_function ext_env sexp ty_res'
-+        | Tpat_alias (p, id) when multi && all_variants p ->
-+            let vd = Env.find_value (Path.Pident id) ext_env in
-+            let row' =
-+              match repr vd.val_type with
-+                {desc=Tvariant row'} -> row'
-+              | _ -> assert false
-+            in
-+            begin_def ();
-+            let tv = newvar () in
-+            let env = Env.add_value id {vd with val_type=tv} ext_env in
-+            let exp = type_exp env sexp in
-+            end_def ();
-+            generalize exp.exp_type;
-+            generalize tv;
-+            List.iter
-+              (function {pat_desc=Tpat_variant(lab,_,row)}, [tv'; ty'] ->
-+                let fi' = List.assoc lab (row_repr row').row_fields in
-+                let row' =
-+                  {row' with row_fields=[lab,fi']; row_more=newvar()} in
-+                unify_pat ext_env {pat with pat_type=tv'}
-+                  (newty (Tvariant row'));
-+                add_variant_case lab row ty_res ty'
-+              | _ -> assert false)
-+              (List.map (fun p -> p, instance_list [tv; exp.exp_type])
-+                 (flatten_or_pat p));
-+            {exp with exp_type = instance exp.exp_type}
-+        | _ ->
-+            type_expect ?in_function ext_env sexp ty_res)
-+      pat_env_list caselist in
-   let partial =
-     match partial_loc with None -> Partial
-     | Some loc -> Parmatch.check_partial loc cases
-Index: typing/typedecl.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typedecl.ml,v
-retrieving revision 1.75
-diff -u -r1.75 typedecl.ml
---- typing/typedecl.ml 16 Aug 2005 00:48:56 -0000      1.75
-+++ typing/typedecl.ml 2 Feb 2006 06:28:33 -0000
-@@ -432,8 +432,10 @@
-               match Btype.row_field_repr f with
-                 Rpresent (Some ty) ->
-                   compute_same ty
--              | Reither (_, tyl, _, _) ->
--                  List.iter compute_same tyl
-+              | Reither (_, tyl, _, tpl, _) ->
-+                  List.iter compute_same tyl;
-+                  List.iter (compute_variance_rec true true true)
-+                    (List.map fst tpl @ List.map snd tpl)
-               | _ -> ())
-             row.row_fields;
-           compute_same row.row_more
-@@ -856,8 +858,8 @@
-               explain row.row_fields
-                 (fun (l,f) -> match Btype.row_field_repr f with
-                   Rpresent (Some t) -> t
--                | Reither (_,[t],_,_) -> t
--                | Reither (_,tl,_,_) -> Btype.newgenty (Ttuple tl)
-+                | Reither (_,[t],_,_,_) -> t
-+                | Reither (_,tl,_,_,_) -> Btype.newgenty (Ttuple tl)
-                 | _ -> Btype.newgenty (Ttuple[]))
-                 "case" (fun (lab,_) -> "`" ^ lab ^ " of ")
-           | _ -> trivial ty'
-Index: typing/types.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/types.ml,v
-retrieving revision 1.25
-diff -u -r1.25 types.ml
---- typing/types.ml    9 Dec 2004 12:40:53 -0000       1.25
-+++ typing/types.ml    2 Feb 2006 06:28:33 -0000
-@@ -48,7 +48,9 @@
- and row_field =
-     Rpresent of type_expr option
--  | Reither of bool * type_expr list * bool * row_field option ref
-+  | Reither of
-+      bool * type_expr list * bool *
-+      (type_expr * type_expr) list * row_field option ref
-   | Rabsent
- and abbrev_memo =
-Index: typing/types.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/types.mli,v
-retrieving revision 1.25
-diff -u -r1.25 types.mli
---- typing/types.mli   9 Dec 2004 12:40:53 -0000       1.25
-+++ typing/types.mli   2 Feb 2006 06:28:33 -0000
-@@ -47,7 +47,9 @@
- and row_field =
-     Rpresent of type_expr option
--  | Reither of bool * type_expr list * bool * row_field option ref
-+  | Reither of
-+      bool * type_expr list * bool *
-+      (type_expr * type_expr) list * row_field option ref
-         (* 1st true denotes a constant constructor *)
-         (* 2nd true denotes a tag in a pattern matching, and
-            is erased later *)
-Index: typing/typetexp.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typetexp.ml,v
-retrieving revision 1.54
-diff -u -r1.54 typetexp.ml
---- typing/typetexp.ml 22 Jul 2005 06:42:36 -0000      1.54
-+++ typing/typetexp.ml 2 Feb 2006 06:28:33 -0000
-@@ -207,9 +207,9 @@
-                 match Btype.row_field_repr f with
-                 | Rpresent (Some ty) ->
-                     bound := ty :: !bound;
--                    Reither(false, [ty], false, ref None)
-+                    Reither(false, [ty], false, [], ref None)
-                 | Rpresent None ->
--                    Reither (true, [], false, ref None)
-+                    Reither (true, [], false, [], ref None)
-                 | _ -> f)
-               row.row_fields
-           in
-@@ -273,13 +273,16 @@
-           (l, f) :: fields
-       in
-       let rec add_field fields = function
--          Rtag (l, c, stl) ->
-+          Rtag (l, c, stl, stpl) ->
-             name := None;
-             let f = match present with
-               Some present when not (List.mem l present) ->
--                let tl = List.map (transl_type env policy) stl in
--                bound := tl @ !bound;
--                Reither(c, tl, false, ref None)
-+                let transl_list = List.map (transl_type env policy) in
-+                let tl = transl_list stl in
-+                let stpl1, stpl2 = List.split stpl in
-+                let tpl1 = transl_list stpl1 and tpl2 = transl_list stpl2 in
-+                bound := tl @ tpl1 @ tpl2 @ !bound;
-+                Reither(c, tl, false, List.combine tpl1 tpl2, ref None)
-             | _ ->
-                 if List.length stl > 1 || c && stl <> [] then
-                   raise(Error(styp.ptyp_loc, Present_has_conjunction l));
-@@ -311,9 +314,9 @@
-                     begin match f with
-                       Rpresent(Some ty) ->
-                         bound := ty :: !bound;
--                        Reither(false, [ty], false, ref None)
-+                        Reither(false, [ty], false, [], ref None)
-                     | Rpresent None ->
--                        Reither(true, [], false, ref None)
-+                        Reither(true, [], false, [], ref None)
-                     | _ ->
-                         assert false
-                     end
-@@ -406,7 +409,8 @@
-               {row with row_fixed=true;
-                row_fields = List.map
-                  (fun (s,f as p) -> match Btype.row_field_repr f with
--                   Reither (c, tl, m, r) -> s, Reither (c, tl, true, r)
-+                   Reither (c, tl, m, tpl, r) ->
-+                     s, Reither (c, tl, true, tpl, r)
-                  | _ -> p)
-                  row.row_fields};
-         Btype.iter_row make_fixed_univars row
-Index: typing/unused_var.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/unused_var.ml,v
-retrieving revision 1.5
-diff -u -r1.5 unused_var.ml
---- typing/unused_var.ml       4 Jan 2006 16:55:50 -0000       1.5
-+++ typing/unused_var.ml       2 Feb 2006 06:28:33 -0000
-@@ -122,9 +122,11 @@
-   | Pexp_apply (e, lel) ->
-       expression ppf tbl e;
-       List.iter (fun (_, e) -> expression ppf tbl e) lel;
--  | Pexp_match (e, pel) ->
-+  | Pexp_match (e, pel, _) ->
-       expression ppf tbl e;
-       match_pel ppf tbl pel;
-+  | Pexp_multifun pel ->
-+      match_pel ppf tbl pel;
-   | Pexp_try (e, pel) ->
-       expression ppf tbl e;
-       match_pel ppf tbl pel;
-Index: bytecomp/matching.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/matching.ml,v
-retrieving revision 1.67
-diff -u -r1.67 matching.ml
---- bytecomp/matching.ml       7 Sep 2005 16:07:48 -0000       1.67
-+++ bytecomp/matching.ml       2 Feb 2006 06:28:33 -0000
-@@ -1991,7 +1991,7 @@
-     List.iter
-       (fun (_, f) ->
-         match Btype.row_field_repr f with
--          Rabsent | Reither(true, _::_, _, _) -> ()
-+          Rabsent | Reither(true, _::_, _, _, _) -> ()
-         | _ -> incr num_constr)
-       row.row_fields
-   else
-Index: toplevel/genprintval.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/toplevel/genprintval.ml,v
-retrieving revision 1.38
-diff -u -r1.38 genprintval.ml
---- toplevel/genprintval.ml    13 Jun 2005 04:55:53 -0000      1.38
-+++ toplevel/genprintval.ml    2 Feb 2006 06:28:33 -0000
-@@ -293,7 +293,7 @@
-                   | (l, f) :: fields ->
-                       if Btype.hash_variant l = tag then
-                         match Btype.row_field_repr f with
--                        | Rpresent(Some ty) | Reither(_,[ty],_,_) ->
-+                        | Rpresent(Some ty) | Reither(_,[ty],_,_,_) ->
-                             let args =
-                               tree_of_val (depth - 1) (O.field obj 1) ty in
-                             Oval_variant (l, Some args)
diff --git a/testlabl/multimatch.ml b/testlabl/multimatch.ml
deleted file mode 100644 (file)
index 7c9aa73..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-(* Simple example *)
-let f x =
-  (multimatch x with `A -> 1 | `B -> true),
-  (multimatch x with `A -> 1. | `B -> "1");;
-
-(* OK *)
-module M : sig
-  val f :
-    [< `A & 'a = int & 'b = float | `B &   'b =string & 'a =  bool] -> 'a * 'b
-end = struct let f = f end;;
-
-(* Bad *)
-module M : sig
-  val f :
-    [< `A & 'a = int & 'b = float | `B &   'b =string & 'a =   int] -> 'a * 'b
-end = struct let f = f end;;
-
-(* Should be good! *)
-module M : sig
-  val f :
-    [< `A & 'a = int * float | `B & 'a = bool * string] -> 'a
-end = struct let f = f end;;
-
-let f = multifun `A|`B as x -> f x;;
-
-(* Two-level example *)
-let f = multifun
-    `A -> (multifun `C -> 1 | `D -> 1.)
-  | `B -> (multifun `C -> true | `D -> "1");;
-
-(* OK *)
-module M : sig
-  val f :
-    [< `A & 'b = [< `C & 'a = int | `D & 'a = float & 'c = bool] -> 'a
-     | `B & 'b = [< `C & 'c = bool | `D & 'c = string] -> 'c] -> 'b
-end = struct let f = f end;;
-
-(* Bad *)
-module M : sig
-  val f :
-    [< `A & 'b = [< `C & 'a = int | `D & 'a = bool] -> 'a
-     | `B & 'b = [< `C & 'c = bool | `D & 'c = string] -> 'c] -> 'b
-end = struct let f = f end;;
-
-module M : sig
-  val f :
-    [< `A & 'b = [< `C & 'a = int | `D] -> 'a
-     | `B & 'b = [< `C & 'c = bool | `D & 'c = string] -> 'c] -> 'b
-end = struct let f = f end;;
-
-
-(* Examples with hidden sharing *)
-let r = ref []
-let f = multifun `A -> 1 | `B -> true
-let g x = r := [f x];;
-
-(* Bad! *)
-module M : sig
-  val g : [< `A & 'a = int | `B & 'a = bool] -> unit
-end = struct let g = g end;;
-
-let r = ref []
-let f = multifun `A -> r | `B -> ref [];;
-(* Now OK *)
-module M : sig
-  val f : [< `A & 'b = int list ref | `B & 'b = 'c list ref] -> 'b
-end = struct let f = f end;;
-(* Still OK *)
-let l : int list ref = r;;
-module M : sig
-  val f : [< `A & 'b = int list ref | `B & 'b = 'c list ref] -> 'b
-end = struct let f = f end;;
-
-
-(* Examples that would need unification *)
-let f = multifun `A -> (1, []) | `B -> (true, [])
-let g x = fst (f x);;
-(* Didn't work, now Ok *)
-module M : sig
-  val g : [< `A & 'a * 'b = int * bool | `B & 'a * 'b = bool * int] -> 'a
-end = struct let g = g end;;
-let g = multifun (`A|`B) as x -> g x;;
-
-(* Other examples *)
-
-let f x =
-  let a = multimatch x with `A -> 1 | `B -> "1" in
-  (multifun `A -> print_int | `B -> print_string) x a
-;;
-
-let f = multifun (`A|`B) as x -> f x;;
-
-type unit_op = [`Set of int | `Move of int]
-type int_op = [`Get]
-
-let op r =
-  multifun
-    `Get     -> !r
-  | `Set x   -> r := x
-  | `Move dx -> r := !r + dx
-;;
-
-let rec trace r = function
-    [] -> []
-  | op1 :: ops ->
-      multimatch op1 with
-        #int_op as op1 ->
-          let x = op r op1 in
-          x :: trace r ops
-      | #unit_op as op1 ->
-          op r op1;
-          trace r ops
-;;
-
-class point x = object
-  val mutable x : int = x
-  method get = x
-  method set y = x <- y
-  method move dx = x <- x + dx
-end;;
-
-let poly sort coeffs x =
-  let add, mul, zero =
-    multimatch sort with
-      `Int -> (+), ( * ), 0
-    | `Float -> (+.), ( *. ), 0.
-  in
-  let rec compute = function
-      []     -> zero
-    | c :: cs -> add c (mul x (compute cs))
-  in
-  compute coeffs
-;;
-
-module M : sig
-  val poly : [< `Int & 'a = int | `Float & 'a = float] -> 'a list -> 'a -> 'a
-end = struct let poly = poly end;;
-
-type ('a,'b) num_sort =
-  'b constraint 'b = [< `Int & 'a = int | `Float & 'a = float]
-module M : sig
-  val poly : ('a,_) num_sort -> 'a list -> 'a -> 'a
-end = struct let poly = poly end;;
-
-
-(* type dispatch *)
-
-type num = [ `Int | `Float ]
-let print0 = multifun
-    `Int -> print_int
-  | `Float -> print_float
-;;
-let print1 = multifun
-    #num as x -> print0 x
-  | `List t -> List.iter (print0 t)
-  | `Pair(t1,t2) -> (fun (x,y) -> print0 t1 x; print0 t2 y)
-;;
-print1 (`Pair(`Int,`Float)) (1,1.0);;
diff --git a/testlabl/newlabels.ps b/testlabl/newlabels.ps
deleted file mode 100644 (file)
index 01eac19..0000000
+++ /dev/null
@@ -1,1458 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvipsk 5.78 p1.4 Copyright 1996-98 ASCII Corp.(www-ptex@ascii.co.jp)
-%%dvipsk 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com)
-%%Title: newlabels.dvi
-%%Pages: 2 0
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%EndComments
-%%BeginProcSet: PStoPS 1 15
-userdict begin
-[/showpage/erasepage/copypage]{dup where{pop dup load
- type/operatortype eq{1 array cvx dup 0 3 index cvx put
- bind def}{pop}ifelse}{pop}ifelse}forall
-[/letter/legal/executivepage/a4/a4small/b5/com10envelope
- /monarchenvelope/c5envelope/dlenvelope/lettersmall/note
- /folio/quarto/a5]{dup where{dup wcheck{exch{}put}
- {pop{}def}ifelse}{pop}ifelse}forall
-/setpagedevice {pop}bind 1 index where{dup wcheck{3 1 roll put}
- {pop def}ifelse}{def}ifelse
-/PStoPSmatrix matrix currentmatrix def
-/PStoPSxform matrix def/PStoPSclip{clippath}def
-/defaultmatrix{PStoPSmatrix exch PStoPSxform exch concatmatrix}bind def
-/initmatrix{matrix defaultmatrix setmatrix}bind def
-/initclip[{matrix currentmatrix PStoPSmatrix setmatrix
- [{currentpoint}stopped{$error/newerror false put{newpath}}
- {/newpath cvx 3 1 roll/moveto cvx 4 array astore cvx}ifelse]
- {[/newpath cvx{/moveto cvx}{/lineto cvx}
- {/curveto cvx}{/closepath cvx}pathforall]cvx exch pop}
- stopped{$error/errorname get/invalidaccess eq{cleartomark
- $error/newerror false put cvx exec}{stop}ifelse}if}bind aload pop
- /initclip dup load dup type dup/operatortype eq{pop exch pop}
- {dup/arraytype eq exch/packedarraytype eq or
-  {dup xcheck{exch pop aload pop}{pop cvx}ifelse}
-  {pop cvx}ifelse}ifelse
- {newpath PStoPSclip clip newpath exec setmatrix} bind aload pop]cvx def
-/initgraphics{initmatrix newpath initclip 1 setlinewidth
- 0 setlinecap 0 setlinejoin []0 setdash 0 setgray
- 10 setmiterlimit}bind def
-end
-%%EndProcSet
-%DVIPSCommandLine: dvips -f newlabels
-%DVIPSParameters: dpi=300
-%DVIPSSource:  TeX output 1999.10.26:1616
-%%BeginProcSet: tex.pro
-%!
-/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
-if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
-/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
-/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn
-put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N
-/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley
-X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[
-(Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{dup
-length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
-forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
-{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
-B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
-4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
-p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
-a}B /bos{/SS save N}B /eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 39158280 55380996 1000 300 300 (newlabels.dvi)
-@start
-%DVIPSBitmapFont: Fa cmr6 6 2
-/Fa 2 51 df<187898181818181818181818181818FF08107D8F0F> 49
-D<1F00618040C08060C0600060006000C00180030006000C00102020207FC0FFC00B107F
-8F0F> I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmmi8 8 4
-/Fb 4 111 df<FFC0FF1C00181C00101C00101C00103800203800203800203800207000
-40700040700040700040E00080E00080E00080E00080E00100E00200E004006008003830
-000FC00018177E9618> 85 D<0300038003000000000000000000000000001C00240046
-0046008C000C0018001800180031003100320032001C0009177F960C> 105
-D<383C1E0044C6630047028100460301008E0703000C0603000C0603000C060300180C06
-00180C0620180C0C20180C0C40301804C0301807001B0E7F8D1F> 109
-D<383C0044C6004702004602008E06000C06000C06000C0600180C00180C401818401818
-80300980300E00120E7F8D15> I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmbx8 8 4
-/Fc 4 111 df<01800780FF80FF80078007800780078007800780078007800780078007
-800780078007800780FFF8FFF80D157D9414> 49 D<387C7C7C3800000000FCFC3C3C3C
-3C3C3C3C3C3C3C3CFFFF08187F970B> 105 D<FC7E0FC0FD8730E03E07C0F03E07C0F03C
-0780F03C0780F03C0780F03C0780F03C0780F03C0780F03C0780F03C0780F03C0780F0FF
-1FE3FCFF1FE3FC1E0F7E8E23> 109 D<FC7C00FD8E003E0F003E0F003C0F003C0F003C0F
-003C0F003C0F003C0F003C0F003C0F003C0F00FF3FC0FF3FC0120F7E8E17> I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmsy8 8 3
-/Fd 3 93 df<FFFFF0FFFFF014027D881B> 0 D<020002000200C218F2783AE00F800F80
-3AE0F278C2180200020002000D0E7E8E12> 3 D<03F8001FFF003C07806000C0C00060C0
-0060C00060C00060C00060C00060C00060C00060C00060C00060C00060C00060C00060C0
-006040002013137E9218> 92 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmtt12 12 43
-/Fe 43 125 df<01818003C3C003C3C003C3C003C3C003C3C003C3C07FFFF0FFFFF8FFFF
-F87FFFF00787800787800787800F8F800F0F000F0F000F0F000F0F007FFFF0FFFFF8FFFF
-F87FFFF01E1E001E1E001E1E001E1E001E1E001E1E000C0C00151E7E9D1A> 35
-D<00E00003F00007F8000738000E1C000E1C000E1C000E1C000E38000E39FC0E71FC07F1
-FC07E1C007C1C00781C00783800F83801FC3803DC70078E70070EE00E07E00E07E00E03C
-08E03C1CE07E1C70FF1C7FE7F83FC3F80F00E0161E7F9D1A> 38
-D<0038007800F001E003C007800F000E001C001C0038003800700070007000E000E000E0
-00E000E000E000E000E000E000E000700070007000380038001C001C000E000F00078003
-C001E000F8007800380D2878A21A> 40 D<6000F00078003C001E000F000780038001C0
-01C000E000E0007000700070003800380038003800380038003800380038003800700070
-007000E000E001C001C0038007800F001E003C007800F00060000D287CA21A> I<7FFFC0
-FFFFE0FFFFE07FFFC013047D901A> 45 D<00C001C001C003C007C00FC07FC0FDC071C0
-01C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C0
-7FFF7FFF7FFF101E7B9D1A> 49 D<03F8000FFE001FFF803C07C07801E07000E0E00070
-F00070F000706000700000700000700000E00000E00001C00003C0000780000F00001E00
-003C0000780000F00003E00007C0000F00001E00703C00707FFFF0FFFFF07FFFF0141E7D
-9D1A> I<03FC000FFF003FFFC03C03E07800E07800707800700000700000700000E00001
-E00007C003FF8003FF0003FFC00003E00000E0000070000078000038000038600038F000
-38F00078E000707000E07E03E03FFFC00FFF0001FC00151E7E9D1A> I<01FC0007FF001F
-FFC01F07C03C01E07800F07000707000707000707800F03800E01E03C00FFF8003FE0007
-FF001F8FC03C01E07800F0700070E00038E00038E00038E00038F000787000707800F03E
-03E01FFFC007FF0001FC00151E7E9D1A> 56 D<01F00007FC001FFE003E0F0038078070
-03807001C0E001C0E001C0E001E0E000E0E000E0E001E07001E07803E03C0FE01FFFE00F
-FCE003F0E00001C00001C00001C0000380600380F00700F00F00F03E007FFC003FF0000F
-C000131E7D9D1A> I<3078FCFC78300000000000000000003078FCFC7830061576941A>
-I<183C7E7E3C18000000000000000000183C7E7E3E1E0E0E1C3CF8F060071C77941A> I<
-0000C00003E00007E0000FC0003F80007E0000FC0003F80007E0000FC0003F80007E0000
-FC0000FC00007E00003F80000FC00007E00003F80000FC00007E00003F80000FC00007E0
-0003E00000C0131A7D9B1A> I<7FFFF0FFFFF8FFFFF87FFFF00000000000000000000000
-007FFFF0FFFFF8FFFFF87FFFF0150C7E941A> I<600000F80000FC00007E00003F80000F
-C00007E00003F80000FC00007E00003F80000FC00007E00007E0000FC0003F80007E0000
-FC0003F80007E0000FC0003F80007E0000FC0000F80000600000131A7D9B1A> I<007C38
-01FF3807FFF80F83F81E00F81C0078380078380038700038700038700000E00000E00000
-E00000E00000E00000E00000E00000E000007000007000387000383800383800381C0070
-1E00F00F83E007FFC001FF80007C00151E7E9D1A> 67 D<FE03FEFF03FEFF03FE1D8070
-1D80701DC0701CC0701CC0701CE0701CE0701C60701C70701C70701C30701C38701C3870
-1C18701C1C701C1C701C0C701C0E701C0E701C06701C06701C07701C03701C0370FF81F0
-FF81F0FF80F0171E7F9D1A> 78 D<03F8E00FFEE01FFFE03C07E07801E0F001E0E000E0
-E000E0E000E0E000007000007800003F80001FF80007FF00007FC00007E00000F0000070
-000038000038600038E00038E00038E00070F000F0FE01E0FFFFC0EFFF80E1FE00151E7E
-9D1A> 83 D<7FFFFEFFFFFEFFFFFEE0380EE0380EE0380EE0380E003800003800003800
-003800003800003800003800003800003800003800003800003800003800003800003800
-00380000380000380000380000380003FF8003FF8003FF80171E7F9D1A> I<FFFCFFFCFF
-FCE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
-00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000FFFCFFFCFF
-FC0E2776A21A> 91 D<FFFCFFFCFFFC001C001C001C001C001C001C001C001C001C001C
-001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
-001C001C001C001C001CFFFCFFFCFFFC0E277FA21A> 93 D<1FF0003FFC007FFE00780F
-00300700000380000380007F8007FF801FFF803F8380780380700380E00380E00380E003
-80700780780F803FFFFC1FFDFC07F0FC16157D941A> 97 D<7E0000FE00007E00000E00
-000E00000E00000E00000E00000E00000E3E000EFF800FFFE00FC1F00F80700F00380E00
-380E001C0E001C0E001C0E001C0E001C0E001C0E001C0F00380F00780F80F00FC1E00FFF
-C00EFF80063E00161E7F9D1A> I<00FF8003FFC00FFFE01F01E03C00C078000070000070
-0000E00000E00000E00000E00000E000007000007000007800703C00701F01F00FFFE003
-FFC000FE0014157D941A> I<000FC0001FC0000FC00001C00001C00001C00001C00001C0
-0001C001F1C007FDC00FFFC01E0FC03C07C07803C07001C0E001C0E001C0E001C0E001C0
-E001C0E001C0E001C07003C07003C03807C03E0FC01FFFF807FDFC01F1F8161E7E9D1A>
-I<01F80007FF000FFF801E07C03C01C07800E07000E0E00070E00070FFFFF0FFFFF0FFFF
-F0E000007000007000007800703C00701F01F00FFFE003FF8000FE0014157D941A> I<00
-07E0001FF0003FF800787800F03000E00000E00000E00000E0007FFFF0FFFFF0FFFFF000
-E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
-E00000E00000E0003FFF807FFFC03FFF80151E7F9D1A> I<7E0000FE00007E00000E0000
-0E00000E00000E00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E0
-0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FC
-FFE7FE7FC3FC171E7F9D1A> 104 D<00C00001E00001E00000C000000000000000000000
-0000000000000000007FE0007FE0007FE00000E00000E00000E00000E00000E00000E000
-00E00000E00000E00000E00000E00000E00000E00000E00000E0007FFF80FFFFC07FFF80
-121F7C9E1A> I<7FE000FFE0007FE00000E00000E00000E00000E00000E00000E00000E0
-0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
-0000E00000E00000E00000E00000E0007FFFC0FFFFE07FFFC0131E7D9D1A> 108
-D<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C
-001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C
-007F1F1F00FFBFBF807F1F1F00191580941A> I<7E3E00FEFF807FFFC00FC1C00F80E00F
-00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E
-00E07FC3FCFFE7FE7FC3FC17157F941A> I<01F00007FC001FFF003E0F803C07807803C0
-7001C0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F80
-1FFF0007FC0001F00013157D941A> I<7E3E00FEFF807FFFE00FC1F00F80700F00380E00
-380E001C0E001C0E001C0E001C0E001C0E001C0E001C0F00380F00780F80F00FC1E00FFF
-C00EFF800E3E000E00000E00000E00000E00000E00000E00000E00000E00007FC000FFE0
-007FC00016207F941A> I<7F81F8FF8FFC7F9FFE03FE1E03F80C03E00003E00003C00003
-80000380000380000380000380000380000380000380000380000380007FFF00FFFF007F
-FF0017157F941A> 114 D<07FB801FFF807FFF80780780E00380E00380E003807800007F
-C0001FFC0007FE00003F800007806001C0E001C0E001C0F003C0FC0780FFFF00EFFE00E3
-F80012157C941A> I<0180000380000380000380000380000380000380007FFFE0FFFFE0
-FFFFE0038000038000038000038000038000038000038000038000038000038000038070
-03807003807003807001C1E001FFE000FF80003F00141C7F9B1A> I<7E07E0FE0FE07E07
-E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00
-E00E00E00E01E00F03E007FFFC03FFFE00FCFC17157F941A> I<7F83FCFFC7FE7F83FC0E
-00E00E00E00E00E00701C00701C00701C003838003838003838001C70001C70001C70000
-EE0000EE0000EE00007C00007C0000380017157F941A> I<FF83FEFF83FEFF83FE380038
-3800381C00701C00701C00701C38701C7C701C7C700C6C600EEEE00EEEE00EEEE00EEEE0
-0EC6E006C6C007C7C00783C00783C017157F941A> I<7FC7F87FCFFC7FC7F80703C00383
-8003C70001EF0000FE00007C00007800003800007C0000EE0001EE0001C7000383800783
-C00F01C07FC7FCFFC7FE7FC7FC17157F941A> I<7F83FCFFC7FE7F83FC0E00E00E00E007
-00E00701C00701C00381C003838003C38001C38001C70000E70000E70000E60000660000
-6E00003C00003C00003C0000380000380000380000700000700030F00078E00071E0007F
-C0003F80001E000017207F941A> I<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
-F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F060042775A21A> 124 D
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmr8 8 3
-/Ff 3 51 df<003000003000003000003000003000003000003000003000003000003000
-003000FFFFFCFFFFFC003000003000003000003000003000003000003000003000003000
-00300000300016187E931B> 43 D<06000E00FE000E000E000E000E000E000E000E000E
-000E000E000E000E000E000E000E000E000E00FFE00B157D9412> 49
-D<0F8030E040708030C038E0384038003800700070006000C00180030006000C08080810
-183FF07FF0FFF00D157E9412> I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmmi12 12 13
-/Fg 13 121 df<0FFFF81FFFFC3FFFF870200040200080200080600000600000600000C0
-0000C00000C00000C00001C0000180000180000380000380000380000700000300001615
-7E9415> 28 D<0000100000002000000020000000200000002000000040000000400000
-004000000040000000800000008000000080000000800000010000000FE00000711C0001
-C10600030203000E0203801C020180180201C0380401C0700401C0700401C0700401C0E0
-080380E0080380E00807006008070070100E0030101C00301038001C10E0000623800001
-FE0000002000000020000000400000004000000040000000400000008000000080000000
-800000008000001A2D7EA21D> 30 D<70F8F8F87005057C840E> 58
-D<70F8FCFC7404040404080810102040060F7C840E> I<00008000018000018000030000
-0300000300000600000600000600000C00000C00000C0000180000180000180000300000
-300000300000600000600000600000C00000C00000C00001800001800001800001800003
-00000300000300000600000600000600000C00000C00000C000018000018000018000030
-0000300000300000600000600000600000C00000C00000C0000011317DA418> 61
-D<00FFFC00000F8000000F0000000F0000001E0000001E0000001E0000001E0000003C00
-00003C0000003C0000003C00000078000000780000007800000078000000F0000000F000
-0000F0000000F0000001E0000001E0000001E0002001E0002003C0004003C0004003C000
-8003C0008007800180078001000780030007800F000F803E00FFFFFE001B227DA121> 76
-D<1FFFFFFE1E01E00E1801E0063001E0062003C0062003C0064003C0044003C004400780
-04800780048007800400078000000F0000000F0000000F0000000F0000001E0000001E00
-00001E0000001E0000003C0000003C0000003C0000003C00000078000000780000007800
-000078000000F0000000F0000000F0000000F0000001F000007FFFC0001F227EA11D> 84
-D<3FFE01FF8003C0003C0003C000300003C0001000078000200007800020000780002000
-07800020000F000040000F000040000F000040000F000040001E000080001E000080001E
-000080001E000080003C000100003C000100003C000100003C0001000078000200007800
-020000780002000078000200007000040000F000040000F0000800007000080000700010
-00007000200000380040000038008000001C01000000060600000001F800000021237DA1
-21> I<007E000381000700800E00801C0080380080780100700600FFF800F00000F00000
-E00000E00000E00000E00000E00080E000807003003004001838000FC00011157D9417>
-101 D<01E00FC001C001C001C0038003800380038007000700070007000E000E000E000E
-001C001C001C001C0038003800380038007000700070007080E100E100E100620062003C
-000B237EA20F> 108 D<03C0F004631C04740E08780E08700708700708700F00E00F00E0
-0F00E00F00E00F01C01E01C01E01C01E01C03C03803803803803C07003C0E0072180071E
-000700000700000E00000E00000E00000E00001C00001C00001C0000FF8000181F819418
-> 112 D<3C0F004630C04741C08783C08783C08701808700000E00000E00000E00000E00
-001C00001C00001C00001C000038000038000038000038000070000030000012157E9416
-> 114 D<01E0F006310C081A1C101A3C201C3C201C18201C000038000038000038000038
-0000700000700000700000700860E010F0E010F0E020E170404230803C1F0016157E941C
-> 120 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmti12 12 22
-/Fh 22 122 df<FFF0FFF0FFE00C037C8B11> 45 D<70F8F8F0E005057A840F> I<00F8
-C00185C00705C00E03800E03801C03803C0380380700780700780700780700F00E00F00E
-00F00E00F00E10F01C20701C20703C20305C40308C400F078014157B9419> 97
-D<03C01F8003800380038007000700070007000E000E000E000E001C001CF81D0C1E0E3C
-0638073807380F700F700F700F700FE01EE01EE01EE03CE038E038607060E031C01F0010
-237BA216> I<007E0001C1000301800703800E07801C07803C0000380000780000780000
-780000F00000F00000F00000F00000F00100700100700200300C001830000FC00011157B
-9416> I<00003C0003F80000380000380000380000700000700000700000700000E00000
-E00000E00000E00001C000F9C00185C00705C00E03800E03801C03803C03803807007807
-00780700780700F00E00F00E00F00E00F00E10F01C20701C20703C20305C40308C400F07
-8016237BA219> I<00F803840E021C023C0238027804F018FFE0F000F000E000E000E000
-E000E002E0026004701830600F800F157A9416> I<00003E0000470000CF00018F000186
-000380000380000380000700000700000700000700000700000E0000FFF0000E00000E00
-000E00001C00001C00001C00001C00001C00003800003800003800003800003800007000
-00700000700000700000700000E00000E00000E00000E00000C00001C00001C000718000
-F18000F300006200003C0000182D82A20F> I<001F180030B800E0B801C07001C0700380
-700780700700E00F00E00F00E00F00E01E01C01E01C01E01C01E01C01E03800E03800E07
-80060B8006170001E700000700000700000E00000E00000E00701C00F01800F0300060E0
-003F8000151F7E9416> I<00C001E001C001C0000000000000000000000000000000001E
-002300430043008700870087000E000E001C001C001C0038003800384070807080708071
-0032001C000B217BA00F> 105 D<00F00007E00000E00000E00000E00001C00001C00001
-C00001C0000380000380000380000380000700000701E00702100704700E08F00E10F00E
-20600E40001D80001E00001FC0001C7000383800383800381C00381C2070384070384070
-3840701880E01880600F0014237DA216> 107 D<01E00FC001C001C001C0038003800380
-038007000700070007000E000E000E000E001C001C001C001C0038003800380038007000
-700070007100E200E200E200E200640038000B237CA20C> I<1C0F80F8002610C10C0047
-6066060087807807008780780700870070070087007007000E00E00E000E00E00E000E00
-E00E000E00E00E001C01C01C001C01C01C001C01C01C001C01C038203803803840380380
-70403803807080380380308070070031003003001E0023157B9428> I<380F804C30C04E
-40608E80708F00708E00708E00701C00E01C00E01C00E01C00E03801C03801C03801C038
-0384700388700308700708700310E003106001E016157B941B> I<007E0001C300038180
-0701C00E01C01C01E03C01E03801E07801E07801E07801E0F003C0F003C0F00380F00780
-700700700E00700C0030180018700007C00013157B9419> I<01C1F002621804741C0878
-0C08700E08700E08701E00E01E00E01E00E01E00E01E01C03C01C03C01C03C01C0780380
-7003807003C0E003C1C0072380071E000700000700000E00000E00000E00000E00001C00
-001C00001C0000FFC000171F7F9419> I<1C1F002620804741C08783C08703C087018087
-00000E00000E00000E00000E00001C00001C00001C00001C000038000038000038000038
-000070000030000012157B9415> 114 D<00FC000183000200800401800C03800C03000C
-00000F00000FF00007FC0003FE00003E00000F00000700700700F00600F00600E0040040
-08002030001FC00011157D9414> I<00C001C001C001C001C003800380038003800700FF
-F8070007000E000E000E000E001C001C001C001C00380038003800381070207020704070
-8031001E000D1F7C9E10> I<1E0060E02300E0F04380E1F04381C0F08381C0708701C030
-8701C030070380200E0380200E0380200E0380201C0700401C0700401C0700401C070080
-1C0700801C0701001C0F01000C0B02000613840003E0F8001C157B9420> 119
-D<03C1E0046210083470103CF02038F020386020380000700000700000700000700000E0
-0000E00000E00000E02061C040F1C040F1C080E2C100446200383C0014157D9416> I<1E
-00302300704380704380E08380E08700E08700E00701C00E01C00E01C00E01C01C03801C
-03801C03801C03801C07001C07001C07001C0F000C3E0003CE00000E00000E00001C0060
-1C00F03800F03000E0600080C0004380003E0000141F7B9418> I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmbx12 12 20
-/Fi 20 122 df<FFFFFF8000FFFFFFF00007F003FC0007F0007E0007F0003F0007F0001F
-8007F0000FC007F00007E007F00007E007F00007F007F00003F007F00003F007F00003F0
-07F00003F807F00003F807F00003F807F00003F807F00003F807F00003F807F00003F807
-F00003F807F00003F807F00003F007F00003F007F00003F007F00007E007F00007E007F0
-000FC007F0001F8007F0003F0007F0007E0007F003FC00FFFFFFF000FFFFFF800025227E
-A12B> 68 D<01FE0207FF861F01FE3C007E7C001E78000E78000EF80006F80006FC0006
-FC0000FF0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FE00007F
-00003F00003FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF80
-18227DA11F> 83 D<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003
-F80180E003F801C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F8
-00000003F800000003F800000003F800000003F800000003F800000003F800000003F800
-000003F800000003F800000003F800000003F800000003F800000003F800000003F80000
-0003F800000003F800000003F800000003F800000003F8000001FFFFF00001FFFFF00022
-227EA127> I<0FFC003FFF807E07C07E03E07E01E07E01F03C01F00001F00001F0003FF0
-03FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F
-18167E951B> 97 D<FF000000FF0000001F0000001F0000001F0000001F0000001F0000
-001F0000001F0000001F0000001F0000001F0000001F0000001F0FE0001F3FF8001FE07C
-001F803E001F001F001F000F801F000F801F000FC01F000FC01F000FC01F000FC01F000F
-C01F000FC01F000FC01F000FC01F000F801F001F801F801F001FC03E001EE07C001C3FF8
-00180FC0001A237EA21F> I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000
-FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00003E00181F00300FC060
-07FFC000FF0015167E9519> I<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00
-F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E00181F00300FC0
-7003FFC000FF0015167E951A> 101 D<001FC0007FE000F1F001E3F003E3F007C3F007C1
-E007C00007C00007C00007C00007C00007C000FFFE00FFFE0007C00007C00007C00007C0
-0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0
-0007C00007C0003FFC003FFC00142380A211> I<01FE0F0007FFBF800F87C7801F03E780
-1E01E0003E01F0003E01F0003E01F0003E01F0003E01F0001E01E0001F03E0000F87C000
-0FFF800009FE000018000000180000001C0000001FFFE0000FFFF80007FFFE001FFFFF00
-3C003F0078000F80F0000780F0000780F0000780F000078078000F003C001E001F007C00
-0FFFF80001FFC00019217F951C> I<1C003E007F007F007F003E001C0000000000000000
-00000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F
-001F001F001F001F001F00FFE0FFE00B247EA310> 105 D<FF00FF001F001F001F001F00
-1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
-1F001F001F001F001F001F001F001F001F00FFE0FFE00B237EA210> 108
-D<FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F801F001F801F801F
-001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
-001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
-001F001F001F001F001F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530> I<FF07E000
-FF1FF8001F307C001F403C001F803E001F803E001F003E001F003E001F003E001F003E00
-1F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00
-1F003E00FFE1FFC0FFE1FFC01A167E951F> I<00FE0007FFC00F83E01E00F03E00F87C00
-7C7C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00
-F81F01F00F83E007FFC000FE0017167E951C> I<FF0FE000FF3FF8001FE07C001F803E00
-1F001F001F001F801F001F801F000FC01F000FC01F000FC01F000FC01F000FC01F000FC0
-1F000FC01F000FC01F001F801F001F801F803F001FC03E001FE0FC001F3FF8001F0FC000
-1F0000001F0000001F0000001F0000001F0000001F0000001F0000001F000000FFE00000
-FFE000001A207E951F> I<0FF3003FFF00781F00600700E00300E00300F00300FC00007F
-E0007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F00700FC0E00EF
-FC00C7F00011167E9516> 115 D<01800001800001800001800003800003800007800007
-80000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F80000F80000F
-80000F80000F80000F80000F81800F81800F81800F81800F81800F830007C30003FE0000
-F80011207F9F16> I<FF01FE00FF01FE001F003E001F003E001F003E001F003E001F003E
-001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E
-001F003E001F007E001F00FE000F81BE0007FF3FC001FC3FC01A167E951F> I<FFE07FC0
-FFE07FC00F801C0007C0380003E0700003F0600001F8C00000F98000007F8000003F0000
-001F0000001F8000003FC0000037C0000063E00000C1F00001C0F8000380FC0007007E00
-0E003E00FF80FFE0FF80FFE01B167F951E> 120 D<FFE01FE0FFE01FE01F8007000F8006
-000FC00E0007C00C0007E00C0003E0180003E0180001F0300001F0300000F8600000F860
-00007CC000007CC000007FC000003F8000003F8000001F0000001F0000000E0000000E00
-00000C0000000C00000018000078180000FC380000FC300000FC60000069C000007F8000
-001F0000001B207F951E> I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmsy10 12 15
-/Fj 15 107 df<FFFFFFFCFFFFFFFC1E027C8C27> 0 D<03F0000FFC001FFE003FFF007F
-FF807FFF80FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803F
-FF001FFE000FFC0003F00012147D9519> 15 D<000FFFFC007FFFFC01F0000003800000
-060000000C0000001800000030000000300000006000000060000000C0000000C0000000
-C0000000C0000000C0000000C0000000C0000000C0000000600000006000000030000000
-30000000180000000C000000060000000380000001E00000007FFFFC001FFFFC1E1E7C9A
-27> 26 D<00000001800000000001800000000001800000000001800000000000C00000
-000000C000000000006000000000003000000000003000000000001C00000000000E0000
-0000000700FFFFFFFFFFE0FFFFFFFFFFE0000000000700000000000E00000000001C0000
-000000300000000000300000000000600000000000C00000000000C00000000001800000
-00000180000000000180000000000180002B1A7D9832> 33 D<001FFF007FFF01E00003
-80000600000C0000180000300000300000600000600000600000C00000C00000FFFFFFFF
-FFFFC00000C000006000006000006000003000003000001800000C000006000003800001
-E000007FFF001FFF181E7C9A21> 50 D<00000300000300000600000600000C00000C00
-00180000180000300000300000600000600000C00000C00000C000018000018000030000
-0300000600000600000C00000C0000180000180000300000300000600000600000C00000
-C0000180000180000300000300000300000600000600000C00000C000018000018000030
-0000300000600000600000C00000400000183079A300> 54 D<C0C0C0C0C0C0C0C0E0E0
-C0C0C0C0C0C0C0C003127D9400> I<00008000018001F980070F000C0300180380180780
-3006C03006C0700CE0600C60600C60600C60E01870E01870E01870E03070E03070E03070
-E06070E06070E06070E06070E0C070E0C070E0C070E18070E180706180606300607300E0
-7300E03300C03600C01E01801E01800C03000F0E000DF800180000180000180000142A7E
-A519> 59 D<000100000003000000030000000300000003000000030000000300000003
-000000030000000300000003000000030000000300000003000000030000000300000003
-000000030000000300000003000000030000000300000003000000030000000300000003
-000000030000000300000003000000030000FFFFFFFEFFFFFFFE1F207C9F27> 63
-D<40000040C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000
-C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000
-C0C00000C0C00000C0C00000C0C00000C0C00000C0600001806000018030000300180006
-000E001C000780780001FFE000007F80001A1F7D9D21> 91 D<007F800001FFE0000780
-78000E001C0018000600300003006000018060000180C00000C0C00000C0C00000C0C000
-00C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C000
-00C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C00000C0C000
-00C0400000401A1F7D9D21> I<000C0000000C0000001E0000001E0000001E0000003300
-0000330000006180000061800000C0C00000C0C00000C0C0000180600001806000030030
-00030030000300300006001800060018000C000C000C000C000C000C0018000600180006
-003000030030000300600001806000018060000180C00000C0C00000401A1F7D9D21> 94
-D<0003C0001E0000380000700000E00000E00000E00000E00000E00000E00000E00000E0
-0000E00000E00000E00000E00000E00000E00000E00000E00000E00001C0000380000F00
-00F800000F000003800001C00000E00000E00000E00000E00000E00000E00000E00000E0
-0000E00000E00000E00000E00000E00000E00000E00000E00000E000007000003800001E
-000003C012317DA419> 102 D<F800000F000003800001C00000E00000E00000E00000E0
-0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
-0000E000007000003800001E000003C0001E0000380000700000E00000E00000E00000E0
-0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
-0000E00001C0000380000F0000F8000012317DA419> I<C0C0C0C0C0C0C0C0C0C0C0C0C0
-C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
-02317AA40E> 106 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmr12 12 65
-/Fk 65 125 df<001FC1F00070371800C03E3C01807C3C0380783C070038000700380007
-003800070038000700380007003800070038000700380007003800FFFFFFC00700380007
-003800070038000700380007003800070038000700380007003800070038000700380007
-0038000700380007003800070038000700380007003800070038000700380007003C007F
-E1FFC01E2380A21C> 11 D<001FC0000070200000C01000018038000380780007007800
-0700300007000000070000000700000007000000070000000700000007000000FFFFF800
-070078000700380007003800070038000700380007003800070038000700380007003800
-070038000700380007003800070038000700380007003800070038000700380007003800
-070038007FE1FF80192380A21B> I<001FD8000070380000C07800018078000380780007
-0038000700380007003800070038000700380007003800070038000700380007003800FF
-FFF800070038000700380007003800070038000700380007003800070038000700380007
-003800070038000700380007003800070038000700380007003800070038000700380007
-003800070038007FF3FF80192380A21B> I<000FC07F00007031C08000E00B004001801E
-00E003803E01E007003C01E007001C00C007001C000007001C000007001C000007001C00
-0007001C000007001C000007001C0000FFFFFFFFE007001C01E007001C00E007001C00E0
-07001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007
-001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00E00700
-1C00E007001C00E07FF1FFCFFE272380A229> I<70F8FCFC740404040408081010204006
-0F7CA20E> 39 D<00200040008001000300060004000C000C0018001800300030003000
-7000600060006000E000E000E000E000E000E000E000E000E000E000E000E000E000E000
-6000600060007000300030003000180018000C000C000400060003000100008000400020
-0B327CA413> I<800040002000100018000C000400060006000300030001800180018001
-C000C000C000C000E000E000E000E000E000E000E000E000E000E000E000E000E000E000
-C000C000C001C0018001800180030003000600060004000C00180010002000400080000B
-327DA413> I<70F8FCFC7404040404080810102040060F7C840E> 44
-D<FFF8FFF80D02808B10> I<70F8F8F87005057C840E> I<01F000071C000C0600180300
-3803803803807001C07001C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001E0
-F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001C07001C07001C07803C0
-3803803803801C07000C0600071C0001F00013227EA018> 48 D<008003800F80F38003
-800380038003800380038003800380038003800380038003800380038003800380038003
-800380038003800380038003800380038007C0FFFE0F217CA018> I<03F0000C1C001007
-002007804003C04003C08003E0F003E0F801E0F801E0F801E02003E00003E00003C00003
-C0000780000700000E00001C0000180000300000600000C0000180000100000200200400
-200800201800603000403FFFC07FFFC0FFFFC013217EA018> I<03F8000C1E00100F0020
-07804007C07807C07803C07807C03807C0000780000780000700000F00000C0000380003
-F000001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F803E0F0
-03C04003C0400780200780100F000C1C0003F00013227EA018> I<000300000300000700
-000700000F00001700001700002700006700004700008700018700010700020700060700
-040700080700080700100700200700200700400700C00700FFFFF8000700000700000700
-000700000700000700000700000F80007FF015217FA018> I<70F8F8F870000000000000
-000000000070F8F8F87005157C940E> 58 D<FFFFFFFEFFFFFFFE000000000000000000
-0000000000000000000000000000000000000000000000FFFFFFFEFFFFFFFE1F0C7D9126
-> 61 D<07E01838201C400E800FF00FF00FF00F000F000E001C00380030006000C000C0
-00800080018001000100010001000100010000000000000000000000038007C007C007C0
-038010237DA217> 63 D<0001800000018000000180000003C0000003C0000003C00000
-05E0000005E0000009F0000008F0000008F00000107800001078000010780000203C0000
-203C0000203C0000401E0000401E0000C01F0000800F0000800F0001FFFF800100078001
-000780020003C0020003C0020003C0040001E0040001E0040001E0080000F01C0000F03E
-0001F8FF800FFF20237EA225> 65 D<FFFFF8000F800E0007800780078003C0078003E0
-078001E0078001F0078001F0078001F0078001F0078001F0078001E0078003E0078007C0
-07800F8007803E0007FFFE0007800780078003C0078001E0078001F0078000F0078000F8
-078000F8078000F8078000F8078000F8078000F8078001F0078001F0078003E0078007C0
-0F800F00FFFFFC001D227EA123> I<0007E0100038183000E0063001C00170038000F007
-0000F00E0000701E0000701C0000303C0000303C0000307C0000107800001078000010F8
-000000F8000000F8000000F8000000F8000000F8000000F8000000F80000007800000078
-0000107C0000103C0000103C0000101C0000201E0000200E000040070000400380008001
-C0010000E0020000381C000007E0001C247DA223> I<FFFFF0000F801E00078007000780
-0380078001C0078000E0078000F007800078078000780780007C0780003C0780003C0780
-003C0780003E0780003E0780003E0780003E0780003E0780003E0780003E0780003E0780
-003E0780003C0780003C0780007C0780007807800078078000F0078000E0078001E00780
-03C0078007000F801E00FFFFF0001F227EA125> I<FFFFFFC00F8007C0078001C0078000
-C00780004007800040078000600780002007800020078000200780202007802000078020
-0007802000078060000780E00007FFE0000780E000078060000780200007802000078020
-000780200007800000078000000780000007800000078000000780000007800000078000
-00078000000FC00000FFFE00001B227EA120> 70 D<0007F008003C0C1800E0021801C0
-01B8038000F8070000780F0000381E0000381E0000183C0000183C0000187C0000087800
-000878000008F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800
-1FFF780000F8780000787C0000783C0000783C0000781E0000781E0000780F0000780700
-0078038000B801C000B800E00318003C0C080007F00020247DA226> I<FFFC3FFF0FC003
-F0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001
-E0078001E0078001E0078001E0078001E0078001E007FFFFE0078001E0078001E0078001
-E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001
-E0078001E0078001E0078001E00FC003F0FFFC3FFF20227EA125> I<FFFC0FC007800780
-078007800780078007800780078007800780078007800780078007800780078007800780
-07800780078007800780078007800780078007800FC0FFFC0E227EA112> I<FFFC00FF80
-0FC0007C0007800030000780002000078000400007800080000780010000078002000007
-80040000078008000007801000000780200000078040000007808000000781C000000783
-E000000785E000000788F000000790F0000007A078000007C03C000007803C000007801E
-000007800F000007800F00000780078000078007C000078003C000078001E000078001E0
-00078000F000078000F8000FC000FC00FFFC07FF8021227EA126> 75
-D<FFFC001F80000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
-000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00010F00
-010F00010F00010F00030F00030F00020F00060F00060F001E1F007EFFFFFE18227DA11E
-> I<FF8007FF07C000F807C0007005E0002004F0002004F0002004780020047C0020043C
-0020041E0020041F0020040F002004078020040780200403C0200401E0200401E0200400
-F0200400F8200400782004003C2004003E2004001E2004000F2004000F20040007A00400
-03E0040003E0040001E0040001E0040000E00E0000601F000060FFE0002020227EA125>
-78 D<000FE00000783C0000E00E0003C00780078003C00F0001E00E0000E01E0000F03C
-0000783C0000787C00007C7C00007C7800003C7800003CF800003EF800003EF800003EF8
-00003EF800003EF800003EF800003EF800003EF800003E7800003C7C00007C7C00007C3C
-0000783E0000F81E0000F00F0001E00F0001E0078003C003C0078000E00E0000783C0000
-0FE0001F247DA226> I<FFFFF0000F803C0007800F0007800780078007C0078003C00780
-03E0078003E0078003E0078003E0078003E0078003E0078003C0078007C0078007800780
-0F0007803C0007FFF0000780000007800000078000000780000007800000078000000780
-0000078000000780000007800000078000000780000007800000078000000FC00000FFFC
-00001B227EA121> I<FFFFE000000F803C000007800E00000780078000078007C0000780
-03C000078003E000078003E000078003E000078003E000078003E000078003C000078007
-C000078007800007800E000007803C000007FFE000000780700000078038000007801C00
-0007801E000007800E000007800F000007800F000007800F000007800F000007800F8000
-07800F800007800F800007800F808007800FC080078007C0800FC003C100FFFC01E20000
-00007C0021237EA124> 82 D<03F0200C0C601802603001E07000E0600060E00060E000
-60E00020E00020E00020F00000F000007800007F00003FF0001FFE000FFF0003FF80003F
-C00007E00001E00000F00000F0000070800070800070800070800070C00060C00060E000
-C0F000C0C80180C6070081FC0014247DA21B> I<7FFFFFF8780780786007801840078008
-4007800840078008C007800C800780048007800480078004800780040007800000078000
-000780000007800000078000000780000007800000078000000780000007800000078000
-000780000007800000078000000780000007800000078000000780000007800000078000
-00078000000FC00001FFFE001E227EA123> I<FFF0007FC01F80001F000F00000C000F80
-000C000780000800078000080003C000100003C000100003C000100001E000200001E000
-200001F000600000F000400000F000400000780080000078008000007C008000003C0100
-00003C010000001E020000001E020000001E020000000F040000000F040000000F8C0000
-000788000000078800000003D000000003D000000003F000000001E000000001E0000000
-00C000000000C000000000C0000022237FA125> 86 D<FFF03FFC03FE1F8007E000F80F
-0003C000700F0003C000200F0001E00020078001E00040078001E00040078003F0004003
-C002F0008003C002F0008003C002F0008003E00478018001E00478010001E00478010001
-E0083C010000F0083C020000F0083C020000F0101E02000078101E04000078101E040000
-78200F0400003C200F0800003C200F0800003C600F8800001E40079000001E4007900000
-1E4007D000001F8003F000000F8003E000000F8003E000000F0001E00000070001C00000
-070001C00000060000C0000002000080002F237FA132> I<FEFEC0C0C0C0C0C0C0C0C0C0
-C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FE
-FE07317BA40E> 91 D<FEFE060606060606060606060606060606060606060606060606
-060606060606060606060606060606060606060606FEFE07317FA40E> 93
-D<1FE000303800780C00780E0030070000070000070000070000FF0007C7001E07003C07
-00780700700700F00708F00708F00708F00F087817083C23900FC1E015157E9418> 97
-D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
-000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E001E0E00
-1E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F001723
-7FA21B> I<01FE000703000C07801C0780380300780000700000F00000F00000F00000F0
-0000F00000F00000F000007000007800403800401C00800C010007060001F80012157E94
-16> I<0000E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E0
-0000E00000E00000E001F8E00704E00C02E01C01E03800E07800E07000E0F000E0F000E0
-F000E0F000E0F000E0F000E0F000E07000E07800E03800E01801E00C02E0070CF001F0FE
-17237EA21B> I<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFFE0F000
-00F00000F00000F00000F000007000007800203800201C00400E008007030000FC001315
-7F9416> I<003E0000E30001C78003878003078007000007000007000007000007000007
-0000070000070000070000FFF80007000007000007000007000007000007000007000007
-00000700000700000700000700000700000700000700000700000700000700000780007F
-F000112380A20F> I<00007003F1980E1E181C0E18380700380700780780780780780780
-7807803807003807001C0E001E1C0033F0002000002000003000003800003FFE001FFFC0
-0FFFE03000F0600030C00018C00018C00018C000186000306000303800E00E038003FE00
-15217F9518> I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00
-000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00700E00
-700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00
-70FFE7FF18237FA21B> I<1C003E003E003E001C00000000000000000000000000000000
-000E007E001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
-000E000E00FFC00A227FA10E> I<00E001F001F001F000E0000000000000000000000000
-00000000007007F000F00070007000700070007000700070007000700070007000700070
-00700070007000700070007000700070007000706070F0E0F0C061803F000C2C83A10F>
-I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
-000E00000E00000E03FC0E01F00E01C00E01800E02000E04000E08000E10000E38000EF8
-000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00F00E00F8FFE3FE1723
-7FA21A> I<0E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E
-000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
-00FFE00B237FA20E> I<0E1FC07F00FE60E183801E807201C00F003C00E00F003C00E00E
-003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E00
-3800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E0038
-00E0FFE3FF8FFE27157F942A> I<0E1F80FE60C01E80E00F00700F00700E00700E00700E
-00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E
-0070FFE7FF18157F941B> I<01FC000707000C01801800C03800E0700070700070F00078
-F00078F00078F00078F00078F00078F000787000707800F03800E01C01C00E0380070700
-01FC0015157F9418> I<0E1F00FE61C00E80600F00700E00380E003C0E003C0E001E0E00
-1E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00380F00700E80E00E41C00E3F
-000E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE000171F7F941B
-> I<01F8200704600E02601C01603801E07800E07800E0F000E0F000E0F000E0F000E0F0
-00E0F000E0F000E07800E07800E03801E01C01E00C02E0070CE001F0E00000E00000E000
-00E00000E00000E00000E00000E00000E00000E0000FFE171F7E941A> I<0E3CFE461E8F
-0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E000E000E000F00FFF0
-10157F9413> I<0F8830786018C018C008C008E008F0007F003FE00FF001F8003C801C80
-0C800CC00CC008E018D0308FC00E157E9413> I<02000200020002000600060006000E00
-1E003E00FFFC0E000E000E000E000E000E000E000E000E000E000E000E040E040E040E04
-0E040E040708030801F00E1F7F9E13> I<0E0070FE07F01E00F00E00700E00700E00700E
-00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00F00E00F006
-017003827800FC7F18157F941B> I<FF80FE1E00781E00300E00200E0020070040070040
-0780C003808003808001C10001C10000E20000E20000E200007400007400003800003800
-00380000100017157F941A> I<FF8FF87F3E01E03C1C01C0181C01E0180E01E0100E0260
-100E027010070270200704302007043820038438400388184003881C4001C81C8001D00C
-8001D00E8000F00F0000E0070000E00700006006000040020020157F9423> I<FF83FE1F
-00F00E00C007008007810003830001C20000E400007800007800003800003C00004E0000
-8F000187000103800201C00401E00C00E03E01F0FF03FE17157F941A> I<FF80FE1E0078
-1E00300E00200E00200700400700400780C003808003808001C10001C10000E20000E200
-00E200007400007400003800003800003800001000001000002000002000002000004000
-F04000F08000F180004300003C0000171F7F941A> I<3FFFC0380380300780200700600E
-00401C00403C0040380000700000E00001E00001C0000380400700400F00400E00C01C00
-80380080780180700780FFFF8012157F9416> I<FFFFFFFFFFFF3001808C31> 124
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmbx12 14.4 19
-/Fl 19 118 df<00007FE0030007FFFC07001FFFFF0F007FF00F9F00FF0001FF01FC0000
-FF03F800007F07F000003F0FE000001F1FC000001F1FC000000F3F8000000F3F80000007
-7F800000077F800000077F00000000FF00000000FF00000000FF00000000FF00000000FF
-00000000FF00000000FF00000000FF00000000FF000000007F000000007F800000007F80
-0000073F800000073F800000071FC00000071FC000000E0FE000000E07F000001C03F800
-003C01FC00007800FF0001F0007FF007C0001FFFFF800007FFFE0000007FF00028297CA8
-31> 67 D<FFFFFC0000FFFFFC0000FFFFFC000003FC00000003FC00000003FC00000003
-FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
-00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00
-000003FC00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC0001
-C003FC0003C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F80
-03FC001F8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297EA828>
-76 D<0000FFC00000000FFFFC0000003F807F000000FE001FC00001F80007E00003F000
-03F00007E00001F8000FE00001FC001FC00000FE001FC00000FE003F8000007F003F8000
-007F007F8000007F807F0000003F807F0000003F807F0000003F80FF0000003FC0FF0000
-003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000
-003FC0FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000007F803F8000
-007F003F8000007F001FC00000FE001FC00000FE000FE00001FC0007F00003F80003F800
-07F00001FC000FE00000FE001FC000003FC0FF0000000FFFFC00000000FFC000002A297C
-A833> 79 D<FFFFF0007FFFFFFFF0007FFFFFFFF0007FFF03FE000001C001FE00000380
-01FE0000038001FF0000078000FF0000070000FF80000F00007F80000E00007FC0000E00
-003FC0001C00003FC0001C00003FE0003C00001FE0003800001FF0007800000FF0007000
-000FF80070000007F800E0000007F800E0000003FC01C0000003FC01C0000003FE03C000
-0001FE0380000001FF0780000000FF0700000000FF87000000007F8E000000007F8E0000
-00007FDE000000003FDC000000003FFC000000001FF8000000001FF8000000000FF00000
-00000FF0000000000FF00000000007E00000000007E00000000003C00000000003C00000
-30297FA833> 86 D<03FF80000FFFF0001F01FC003F80FE003F807F003F803F003F803F
-801F003F8000003F8000003F8000003F8000003F80003FFF8001FC3F800FE03F801F803F
-803F003F807E003F80FC003F80FC003F80FC003F80FC003F80FC005F807E00DF803F839F
-FC1FFE0FFC03FC03FC1E1B7E9A21> 97 D<FFE00000FFE00000FFE000000FE000000FE0
-00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0
-00000FE000000FE1FE000FEFFF800FFE07E00FF803F00FF001F80FE000FC0FE000FC0FE0
-007E0FE0007E0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0
-007F0FE0007E0FE0007E0FE0007E0FE000FC0FE000FC0FF001F80FF803F00F9C0FE00F0F
-FF800E01FC00202A7EA925> I<00007FF000007FF000007FF0000007F0000007F0000007
-F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
-F0003F87F001FFF7F007F03FF00FC00FF01F8007F03F0007F03F0007F07E0007F07E0007
-F07E0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007
-F07E0007F07E0007F03F0007F03F0007F01F800FF00FC01FF007E07FFF01FFE7FF007F87
-FF202A7EA925> 100 D<003FC00001FFF00003E07C000F803E001F801F001F001F003F00
-0F807E000F807E000FC07E000FC0FE0007C0FE0007C0FFFFFFC0FFFFFFC0FE000000FE00
-0000FE0000007E0000007E0000007F0000003F0001C01F0001C00F80038007C0070003F0
-1E0000FFFC00003FE0001A1B7E9A1F> I<0007F8003FFC007E3E01FC7F03F87F03F07F07
-F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007
-F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
-F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807FFF807FFF8018
-2A7EA915> I<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE0
-00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE07E000FE1
-FF800FE30FC00FE40FE00FE807E00FF807F00FF007F00FF007F00FE007F00FE007F00FE0
-07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0
-07F00FE007F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF202A7DA925>
-104 D<07000F801FC03FE03FE03FE01FC00F8007000000000000000000000000000000FF
-E0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
-E00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7EAA12> I<FFE0FFE0FFE00FE00FE00FE0
-0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
-0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE
-0F2A7EA912> 108 D<FFC07E00FFC1FF80FFC30FC00FC40FE00FC807E00FD807F00FD007
-F00FD007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007
-F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE3F
-FFFFFE3FFFFFFE3FFF201B7D9A25> 110 D<003FE00001FFFC0003F07E000FC01F801F80
-0FC03F0007E03F0007E07E0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE00
-03F8FE0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F03F0007E03F0007E01F80
-0FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22> I<FFE1FE00FFEFFF80FFFE0F
-E00FF803F00FF001F80FE001FC0FE000FC0FE000FE0FE000FE0FE0007F0FE0007F0FE000
-7F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007E0FE000FE0FE000FE0FE000
-FC0FE001FC0FF001F80FF807F00FFC0FE00FEFFF800FE1FC000FE000000FE000000FE000
-000FE000000FE000000FE000000FE000000FE000000FE00000FFFE0000FFFE0000FFFE00
-0020277E9A25> I<FFC1F0FFC7FCFFC63E0FCC7F0FD87F0FD07F0FD07F0FF03E0FE0000F
-E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F
-E0000FE0000FE000FFFF00FFFF00FFFF00181B7F9A1B> 114 D<03FE300FFFF03E03F078
-00F07000F0F00070F00070F80070FE0000FFE0007FFF007FFFC03FFFE01FFFF007FFF800
-FFF80007FC0000FCE0007CE0003CF0003CF00038F80038FC0070FF01E0E7FFC0C1FF0016
-1B7E9A1B> I<00E00000E00000E00000E00001E00001E00001E00003E00003E00007E000
-0FE0001FFFE0FFFFE0FFFFE00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000
-0FE0000FE0000FE0000FE0000FE0000FE0700FE0700FE0700FE0700FE0700FE0700FE070
-07F0E003F0C001FF80007F0014267FA51A> I<FFE07FF0FFE07FF0FFE07FF00FE007F00F
-E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F
-E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE00FF00F
-E00FF007E017F003F067FF01FFC7FF007F87FF201B7D9A25> I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmr12 14.4 20
-/Fm 20 118 df<78FCFCFEFE7A02020202040404080810204007127B8510> 44
-D<00200000E00001E0000FE000FFE000F1E00001E00001E00001E00001E00001E00001E0
-0001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E0
-0001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E0
-0001E00003F000FFFFC0FFFFC012287BA71D> 49 D<01FC0007FF000C0FC01803E02001
-F06001F04000F84000F8F800FCFC00FCFC007CFC007CFC007C7800FC0000FC0000F80000
-F80001F00001F00003E00003C0000780000700000E00001C0000380000300000600000C0
-000180000300040200040400080800081000082000183FFFF87FFFF0FFFFF0FFFFF01628
-7DA71D> I<000FC0003FF000F01801C01803803C07007C0F007C0E00381E00003C00003C
-00003C0000780000780000780000F83F00F8C1C0F900E0FA0070FA0038FC003CFC001EFC
-001EF8001EF8001FF8001FF8001FF8001F78001F78001F78001F78001F3C001E3C001E1C
-003C1E003C0E007807007003C1E001FFC0007E0018297EA71D> 54
-D<007E0001FF800781C00F00E01E00703C00383C003878003C78003CF8001EF8001EF800
-1EF8001EF8001FF8001FF8001FF8001F78001F78003F78003F3C003F1C005F0E005F0700
-9F03831F00FC1F00001E00001E00001E00003E00003C00003C0000381C00783E00703E00
-E03C01C01803801C0F000FFE0003F80018297EA71D> 57 D<0000FF00100007FFE03000
-1FC07830003E000C7000F80006F001F00003F003E00001F007C00000F00F800000700F80
-0000701F000000303F000000303E000000303E000000107E000000107E000000107C0000
-0000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000000
-00FC00000000FC0000FFFF7C0000FFFF7E000003F07E000001F03E000001F03E000001F0
-3F000001F01F000001F00F800001F00F800001F007C00001F003E00001F001F00002F000
-F80002F0003E000C70001FC038300007FFE0100000FF8000282B7DA92E> 71
-D<01FFFE01FFFE0007E00003E00003E00003E00003E00003E00003E00003E00003E00003
-E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003
-E00003E00003E00003E00003E00003E00003E00003E03003E07803E0FC03E0FC03E0FC03
-C0F807C0400780200F00300E000C3C0003F000172A7DA81E> 74
-D<0001FF0000000F01E000003C0078000078003C0000E0000E0001E0000F0003C0000780
-07800003C00F800003E01F000001F01F000001F03E000000F83E000000F87E000000FC7E
-000000FC7C0000007C7C0000007CFC0000007EFC0000007EFC0000007EFC0000007EFC00
-00007EFC0000007EFC0000007EFC0000007EFC0000007E7C0000007C7E000000FC7E0000
-00FC7E000000FC3E000000F83F000001F81F000001F01F000001F00F800003E007800003
-C007C00007C003E0000F8000F0001E000078003C00003C007800000F01E0000001FF0000
-272B7DA92E> 79 D<03FC00000C070000100380003C01C0003E01E0003E00F0001C00F0
-000800F0000000F0000000F0000000F000007FF00003E0F0000F80F0001E00F0003C00F0
-007C00F0007800F040F800F040F800F040F800F040F801F0407C01F0403C0278801E0C7F
-8007F01E001A1A7E991D> 97 D<0F000000FF000000FF0000001F0000000F0000000F00
-00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00
-00000F0000000F07E0000F1838000F600E000F8007000F8007800F0003C00F0003C00F00
-01E00F0001E00F0001F00F0001F00F0001F00F0001F00F0001F00F0001F00F0001F00F00
-01E00F0001E00F0003E00F0003C00F0003800F8007800E800F000E401C000C303800080F
-C0001C2A7EA921> I<007F0001C0E00700100E00781E00F83C00F83C00707C0020780000
-F80000F80000F80000F80000F80000F80000F80000F800007800007C00003C00083C0008
-1E00100E002007006001C180007E00151A7E991A> I<00FC000387800701C00E01E01C00
-E03C00F03C00F0780078780078F80078F80078FFFFF8F80000F80000F80000F80000F800
-007800007800003C00083C00081E00100E002007004001C180007E00151A7E991A> 101
-D<00000F0001FC3080070743800E03C3801E03C1003C01E0003C01E0007C01F0007C01F0
-007C01F0007C01F0007C01F0003C01E0003C01E0001E03C0000E0380001707000011FC00
-0030000000300000003000000030000000180000001FFF80000FFFF00007FFF80018007C
-0030001E0070000E0060000700E0000700E0000700E0000700E000070070000E0070000E
-0038001C001C0038000781E00000FF000019287E9A1D> 103 D<1E003F003F003F003F00
-1E000000000000000000000000000000000000000F00FF00FF001F000F000F000F000F00
-0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00FFF0FFF0
-0C297EA811> 105 D<007E0003C3C00700E00E00701C00383C003C3C003C78001E78001E
-F8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001F78001E78001E3C003C3C003C
-1C00380E00700700E003C3C0007E00181A7E991D> 111 D<003F010001E0830003804300
-0F0027001E0017001E001F003C000F007C000F007C000F0078000F00F8000F00F8000F00
-F8000F00F8000F00F8000F00F8000F00F8000F007C000F007C000F003C000F003E001F00
-1E001F000F002F0007804F0001C18F00007E0F0000000F0000000F0000000F0000000F00
-00000F0000000F0000000F0000000F0000000F0000000F000000FFF00000FFF01C267E99
-1F> 113 D<0F0F80FF11C0FF23E01F43E00F83E00F81C00F80000F00000F00000F00000F
-00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
-00000F8000FFFC00FFFC00131A7E9917> I<07F0801C0D80300380600180E00180E00080
-E00080F00080F800007E00007FE0003FFC001FFE0007FF00003F800007808003C08003C0
-8001C0C001C0C001C0E00180E00380F00300CC0E0083F800121A7E9917> I<0080000080
-000080000080000180000180000180000380000380000780000F80001FFF80FFFF800780
-000780000780000780000780000780000780000780000780000780000780000780000780
-0007804007804007804007804007804007804007804003C08001C08000E100003E001225
-7FA417> I<0F000F00FF00FF00FF00FF001F001F000F000F000F000F000F000F000F000F
-000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
-000F000F000F000F000F000F000F001F000F001F0007002F0003804F8001C08FF0007F0F
-F01C1A7E9921> I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmr17 20.74 18
-/Fn 18 119 df<000001FF00008000001FFFE0018000007F007801800001F8000E038000
-03E000070780000FC000018780001F000000CF80003E0000006F80007C0000003F8000F8
-0000003F8001F00000001F8003F00000000F8007E00000000F8007C000000007800FC000
-000007800FC000000007801F8000000003801F8000000003803F8000000003803F000000
-0001803F0000000001807F0000000001807F0000000001807E0000000000007E00000000
-0000FE000000000000FE000000000000FE000000000000FE000000000000FE0000000000
-00FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000
-FE0000000000007E0000000000007E0000000000007F0000000000007F0000000001803F
-0000000001803F0000000001803F8000000001801F8000000001801F8000000003000FC0
-00000003000FC0000000030007E0000000060007E0000000060003F0000000060001F000
-00000C0000F80000001800007C0000001800003E0000003000001F0000006000000FC000
-01C0000003E0000380000001F8000E000000007F007C000000001FFFF00000000001FF00
-0000313D7CBB39> 67 D<FFFFFC000000FFFFFC00000003FE0000000001F80000000001
-F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001
-F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001
-F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001
-F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001
-F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001
-F80000000001F80000000001F80000000001F80000006001F80000006001F80000006001
-F80000006001F80000006001F8000000E001F8000000C001F8000000C001F8000000C001
-F8000000C001F8000001C001F8000001C001F8000001C001F8000003C001F8000007C001
-F8000007C001F800000FC001F800003F8001F80000FF8003FC0007FF80FFFFFFFFFF80FF
-FFFFFFFF802B3B7CBA32> 76 D<000003FF00000000001E01E000000000F0003C000000
-03C0000F000000078000078000000F000003C000003E000001F000007C000000F80000F8
-0000007C0001F00000003E0001F00000003E0003E00000001F0007E00000001F8007C000
-00000F800FC00000000FC00F8000000007C01F8000000007E01F8000000007E03F000000
-0003F03F0000000003F03F0000000003F07F0000000003F87E0000000001F87E00000000
-01F87E0000000001F8FE0000000001FCFE0000000001FCFE0000000001FCFE0000000001
-FCFE0000000001FCFE0000000001FCFE0000000001FCFE0000000001FCFE0000000001FC
-FE0000000001FCFE0000000001FC7E0000000001F87F0000000003F87F0000000003F87F
-0000000003F87F0000000003F83F0000000003F03F8000000007F01F8000000007E01F80
-00000007E01FC00000000FE00FC00000000FC007C00000000F8007E00000001F8003E000
-00001F0001F00000003E0001F80000007E0000F80000007C00007C000000F800003E0000
-01F000000F000003C000000780000780000003E0001F00000000F8007C000000001E01E0
-0000000003FF000000363D7CBB3E> 79 D<003F80000001C0F0000003003C000004001E
-00000C000F000018000780001C0007C0003E0003C0003F0003E0003F0003E0003F0003E0
-001E0003E000000003E000000003E000000003E00000003FE000000FF3E000007E03E000
-01F803E00003E003E0000FC003E0001F8003E0003F0003E0003E0003E0007E0003E0007E
-0003E060FC0003E060FC0003E060FC0003E060FC0007E060FC0007E0607C000BE0607E00
-0BE0603E0011F0C01F0060F0C007C1807F8000FE003E0023257CA427> 97
-D<03E0000000FFE0000000FFE000000007E000000003E000000003E000000003E0000000
-03E000000003E000000003E000000003E000000003E000000003E000000003E000000003
-E000000003E000000003E000000003E000000003E000000003E000000003E000000003E0
-00000003E000000003E03FC00003E0E0780003E3001C0003E6000F0003E800078003F800
-03C003F00001E003E00001F003E00000F003E00000F803E00000F803E00000FC03E00000
-7C03E000007C03E000007E03E000007E03E000007E03E000007E03E000007E03E000007E
-03E000007E03E000007E03E000007E03E000007C03E000007C03E00000FC03E00000F803
-E00000F803E00001F003E00001E003F00003E003D80003C003C80007800384000E000383
-001C000381C0F00003003F8000273C7EBB2C> I<0007F800003C0E0000F0018001E000C0
-03C00060078000300F0000701F0000F81F0001F83E0001F83E0001F87E0000F07C000000
-7C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000
-FC0000007C0000007C0000007E0000003E0000003E00000C1F00000C1F0000180F800018
-0780003003C0006001E000C000F00180003C0E000007F8001E257DA423> I<0007F80000
-3C1E0000F0078001C003C003C001E0078000F00F0000F81F0000781E00007C3E00007C3E
-00007C7E00003E7C00003E7C00003EFC00003EFC00003EFFFFFFFEFC000000FC000000FC
-000000FC000000FC000000FC0000007C0000007C0000007E0000003E0000003E0000061F
-0000060F00000C0F80000C0780001803C0003000E00060007000C0001E07000003FC001F
-257EA423> 101 D<0000FC0000078300000E0380001C07C0003C0FC000780FC000F80FC0
-00F8078000F0000001F0000001F0000001F0000001F0000001F0000001F0000001F00000
-01F0000001F0000001F0000001F0000001F0000001F0000001F00000FFFFFC00FFFFFC00
-01F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F00000
-01F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F00000
-01F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F00000
-01F0000001F0000001F0000001F0000001F0000003F800007FFFE0007FFFE0001A3C7FBB
-18> I<07000F801FC01FC01FC00F80070000000000000000000000000000000000000000
-0000000000000007C0FFC0FFC00FC007C007C007C007C007C007C007C007C007C007C007
-C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007
-C007C00FE0FFFEFFFE0F397DB815> 105 D<0003800007C0000FE0000FE0000FE00007C0
-000380000000000000000000000000000000000000000000000000000000000000000000
-0000000000000007E000FFE000FFE0000FE00003E00003E00003E00003E00003E00003E0
-0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
-0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
-0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
-7803C0FC07C0FC0780FC0780FC0F00780E00381C000FE000134A82B818> I<07C0FFC0FF
-C00FC007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007
-C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007
-C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007
-C00FE0FFFEFFFE0F3C7DBB15> 108 D<03E01FE0003FC000FFE0607C00C0F800FFE0801E
-01003C0007E3000F06001E0003E4000F88001F0003E4000F88001F0003E8000790000F00
-03E80007D0000F8003F00007E0000F8003F00007E0000F8003E00007C0000F8003E00007
-C0000F8003E00007C0000F8003E00007C0000F8003E00007C0000F8003E00007C0000F80
-03E00007C0000F8003E00007C0000F8003E00007C0000F8003E00007C0000F8003E00007
-C0000F8003E00007C0000F8003E00007C0000F8003E00007C0000F8003E00007C0000F80
-03E00007C0000F8003E00007C0000F8003E00007C0000F8003E00007C0000F8003E00007
-C0000F8003E00007C0000F8003E00007C0000F8003E00007C0000F8003E00007C0000F80
-07F0000FE0001FC0FFFF81FFFF03FFFEFFFF81FFFF03FFFE3F257EA443> I<03E01FE000
-FFE0607C00FFE0801E0007E3000F0003E4000F8003E4000F8003E800078003E80007C003
-F00007C003F00007C003E00007C003E00007C003E00007C003E00007C003E00007C003E0
-0007C003E00007C003E00007C003E00007C003E00007C003E00007C003E00007C003E000
-07C003E00007C003E00007C003E00007C003E00007C003E00007C003E00007C003E00007
-C003E00007C003E00007C003E00007C003E00007C007F0000FE0FFFF81FFFFFFFF81FFFF
-28257EA42C> I<0007FC0000001C070000007001C00001E000F00003C00078000780003C
-000F00001E001F00001F001E00000F003E00000F803E00000F807C000007C07C000007C0
-7C000007C0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC
-000007E0FC000007E0FC000007E07C000007C07C000007C07E00000FC03E00000F803E00
-000F801E00000F001F00001F000F00001E000780003C0003C000780001E000F000007001
-C000001C0700000007FC000023257EA427> I<03E03E00FFE0C300FFE1078007E20FC003
-E40FC003E80FC003E8078003E8030003F0000003F0000003F0000003E0000003E0000003
-E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003
-E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003
-E0000003E0000003E0000007F00000FFFFC000FFFFC0001A257EA41E> 114
-D<00FF02000700C6000C002E0010001E0030001E0060000E0060000E00E0000600E00006
-00E0000600F0000600F8000600FC0000007F0000003FF000003FFF80000FFFE00007FFF0
-0001FFFC00003FFE000001FE0000003F00C0001F00C0000F80C0000780E0000380E00003
-80E0000380E0000380F0000300F0000300F8000700F8000600E4000C00E2001800C18070
-00807F800019257DA41F> I<003000000030000000300000003000000030000000300000
-0070000000700000007000000070000000F0000000F0000001F0000001F0000003F00000
-07F000001FFFFE00FFFFFE0001F0000001F0000001F0000001F0000001F0000001F00000
-01F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F00000
-01F0000001F0000001F0000001F0000001F0018001F0018001F0018001F0018001F00180
-01F0018001F0018001F0018001F0018000F0010000F8030000F8030000780200003C0400
-000E08000003F00019357FB41E> I<FFFE000FFFFFFE000FFF07F00007F803E00003E003
-E00001C001F00001C001F000018001F800018000F800030000F8000300007C000600007C
-000600007E000600003E000C00003E000C00003F001C00001F001800001F001800000F80
-3000000F803000000FC070000007C060000007C060000003E0C0000003E0C0000003F1C0
-000001F180000001F180000000FB00000000FB00000000FF000000007E000000007E0000
-00003C000000003C000000003C0000000018000028257FA42A> 118
-D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-userdict/PStoPSxform PStoPSmatrix matrix currentmatrix
- matrix invertmatrix matrix concatmatrix
- matrix invertmatrix put
-%%EndSetup
-%%Page: (0,1) 1
-userdict/PStoPSsaved save put
-PStoPSmatrix setmatrix
-595.000000 0.271378 translate
-90 rotate
-0.706651 dup scale
-userdict/PStoPSmatrix matrix currentmatrix put
-userdict/PStoPSclip{0 0 moveto
- 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
- closepath}put initclip
-/showpage{}def/copypage{}def/erasepage{}def
-PStoPSxform concat
-1 0 bop Fn 281 370 a(Cleaner) p 570 370 a(seman) n(tics) p
-927 370 a(for) p 1047 370 a(Ob) t(jectiv) n(e) p 1404
-370 a(Lab) r(el) p Fm 717 518 a(Jacques) p 934 518 a(Garrigue) 719
-634 y(Octob) r(er) p 945 634 a(26,) p 1040 634 a(1999) p
-Fl 11 836 a(Credits) p Fk 11 929 a(This) p 122 929 a(prop) q(osal) p
-319 929 a(con) o(tains) p 510 929 a(ideas) p 632 929
-a(from) p 747 929 a(Damien) p 928 929 a(Doligez) p 1101
-929 a(and) p 1196 929 a(Pierre) p 1340 929 a(W) l(eis.) p
-Fl 11 1073 a(Lab) r(els) p 221 1073 a(and) p 351 1073
-a(optionals) p Fk 11 1165 a(Lab) q(els) p 165 1165 a(and) p
-259 1165 a(optional) p 449 1165 a(argumen) o(ts) p 687
-1165 a(had) p 781 1165 a(t) o(w) o(o) p 873 1165 a(problems) p
-1082 1165 a(in) p 1139 1165 a(Ob) s(jectiv) o(e) p 1360
-1165 a(Lab) q(el.) p Fj 83 1280 a(\017) p Fk 133 1280
-a(They) p 259 1280 a(w) o(ere) p 372 1280 a(not) p 459
-1280 a(fully) p 570 1280 a(coheren) o(t) p 767 1280 a(with) p
-878 1280 a(the) p 963 1280 a(original) p 1139 1280 a(call-b) o(y-v) m
-(alue) p 1423 1280 a(seman) o(tics) p 1644 1280 a(of) p
-1700 1280 a(the) p 1784 1280 a(lan-) 133 1340 y(guage.) p
-303 1340 a(In) p 368 1340 a(some) p 495 1340 a(\(subtle\)) p
-681 1340 a(cases,) p 823 1340 a(a) p 868 1340 a(side-e\013ect) p
-1099 1340 a(migh) o(t) p 1243 1340 a(get) p 1329 1340
-a(dela) o(y) o(ed) p 1508 1340 a(more) p 1635 1340 a(than) p
-1753 1340 a(in) p 1814 1340 a(an) 133 1400 y(un) o(t) o(yp) q(ed) p
-322 1400 a(seman) o(tics.) p Fj 83 1502 a(\017) p Fk
-133 1502 a(F) l(or) p 220 1502 a(optional) p 410 1502
-a(argumen) o(ts,) p 660 1502 a(no) p 728 1502 a(un) o(t) o(yp) q(ed) p
-918 1502 a(seman) o(tics) p 1139 1502 a(existed.) 84
-1616 y(This) p 195 1616 a(new) p 295 1616 a(prop) q(osal) p
-492 1616 a(corrects) p 674 1616 a(these) p 799 1616 a(t) o(w) o(o) p
-891 1616 a(\015a) o(ws.) p Fi 11 1746 a(Syn) n(tax) p
-Fk 11 1838 a(W) l(e) p 95 1838 a(k) o(eep) p 206 1838
-a(Ob) s(jectiv) o(e) p 426 1838 a(Lab) q(el's) p 594
-1838 a(syn) o(tax,) p 764 1838 a(except) p 917 1838 a(for) p
-991 1838 a(default) p 1155 1838 a(v) m(alues) p 1301
-1838 a(in) p 1357 1838 a(optional) p 1547 1838 a(argumen) o(ts.) p
-Fh 329 1944 a(typ) n(expr) p Fk 528 1944 a(::=) p Fg
-634 1944 a(:) p 656 1944 a(:) p 678 1944 a(:) p Fj 579
-2004 a(j) p Fh 634 2004 a(typ) n(expr) p Fj 806 2004
-a(!) p Fh 870 2004 a(typ) n(expr) p Fj 579 2064 a(j) p
-Fk 634 2064 a([?]) p Fi(lab) r(el) p Fk 801 2064 a(:) p
-Fh(typ) n(expr) p Fj 987 2064 a(!) p Fh 1050 2064 a(typ) n(expr) 391
-2124 y(expr) p Fk 528 2124 a(::=) p Fg 634 2124 a(:) p
-656 2124 a(:) p 678 2124 a(:) p Fj 579 2185 a(j) p Fh
-634 2185 a(expr) p 746 2185 a(lab) n(ele) n(d-expr) p
-Ff 991 2163 a(+) p Fj 579 2245 a(j) p Fe 634 2245 a(fun) p
-Fj 728 2245 a(f) p Fh(lab) n(ele) n(d-simple-p) n(attern) p
-Fj 1209 2245 a(g) p Ff 1234 2227 a(+) p Fk 1280 2245
-a([) p Fe(when) p Fh 1412 2245 a(expr) p Fk 1507 2245
-a(]) p Fj 1535 2245 a(!) p Fh 1599 2245 a(expr) p Fj
-579 2305 a(j) p Fe 634 2305 a(function) p Fh 856 2305
-a(lab) n(ele) n(d-p) n(attern) p Fk 1177 2305 a([) p
-Fe(when) p Fh 1309 2305 a(expr) p Fk 1404 2305 a(]) p
-Fj 1432 2305 a(!) p Fh 1496 2305 a(expr) p Fj 785 2365
-a(f) p Fe(|) p Fh 851 2365 a(lab) n(ele) n(d-p) n(attern) p
-Fk 1172 2365 a([) p Fe(when) p Fg 1305 2365 a(expr) p
-Fk 1403 2365 a(]) p Fj 1430 2365 a(!) p Fh 1494 2365
-a(expr) p Fj 1589 2365 a(g) p Fd 1614 2347 a(\003) p
-Fh 242 2425 a(lab) n(ele) n(d-expr) p Fk 528 2425 a(::=) p
-634 2425 a([?]) p Fh(expr) p Fj 579 2486 a(j) p Fk 634
-2486 a([?]) p Fi(lab) r(el) p Fk 801 2486 a(:) p Fh(expr) 182
-2546 y(lab) n(ele) n(d-p) n(attern) p Fk 528 2546 a(::=) p
-Fh 634 2546 a(p) n(attern) p Fj 579 2606 a(j) p Fi 634
-2606 a(lab) r(el) p Fk 751 2606 a(:) p Fh(p) n(attern) p
-Fj 579 2666 a(j) p Fk 634 2666 a(?[) p Fe(\() p Fh(expr) p
-Fe(\)) p Fk(]) p Fi(lab) r(el) p Fk 943 2666 a(:) p Fh
-956 2666 a(p) n(attern) p Fk 926 2937 a(1) p eop
-PStoPSsaved restore
-userdict/PStoPSsaved save put
-PStoPSmatrix setmatrix
-595.000000 421.271378 translate
-90 rotate
-0.706651 dup scale
-userdict/PStoPSmatrix matrix currentmatrix put
-userdict/PStoPSclip{0 0 moveto
- 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
- closepath}put initclip
-PStoPSxform concat
-2 1 bop Fi 11 168 a(Dynamic) p 247 168 a(seman) n(tics) p
-Fj 11 261 a(;) p Fk 52 261 a(is) p 101 261 a(a) p 141
-261 a(notation) p 337 261 a(for) p 411 261 a(the) p 495
-261 a(empt) o(y) p 644 261 a(lab) q(el.) 86 366 y(\() p
-Fe(fun) p Fi 198 366 a(l) p Fc 214 373 a(i) p Fk 227
-366 a(:) p Fg(x) p Fj 282 366 a(!) p Fg 346 366 a(e) p
-Fk(\)) p Fi 404 366 a(l) p Fc 420 373 a(1) p Fk 442 366
-a(:) p Fg 455 366 a(e) p Ff 478 373 a(1) p Fg 506 366
-a(:) p 528 366 a(:) p 550 366 a(:) p Fi 571 366 a(l) p
-Fc 587 373 a(n) p Fk 612 366 a(:) p Fg 625 366 a(e) p
-Fb 648 373 a(n) p Fj 515 427 a(!) p Fk 579 427 a(\() p
-Fg(e) p Fk([) p Fg(e) p Fb 658 434 a(i) p Fg 671 427
-a(=x) p Fk(]) p Fi 752 427 a(l) p Fc 768 434 a(1) p Fk
-790 427 a(:) p Fg(e) p Ff 827 434 a(1) p Fg 855 427 a(:) p
-877 427 a(:) p 899 427 a(:) p Fi 920 427 a(l) p Fc 936
-434 a(i) p Fd(\000) p Fc(1) p Fk 997 427 a(:) p Fg 1010
-427 a(e) p Fb 1033 434 a(i) p Fd(\000) p Ff(1) p Fi 1108
-427 a(l) p Fc 1124 434 a(i) p Ff(+) p Fc(1) p Fk 1185
-427 a(:) p Fg(e) p Fb 1222 434 a(i) p Ff(+1) p Fg 1289
-427 a(:) p 1311 427 a(:) p 1333 427 a(:) p Fi 1354 427
-a(l) p Fc 1370 434 a(n) p Fk 1395 427 a(:) p Fg 1408
-427 a(e) p Fb 1431 434 a(n) p Fk 86 487 a(\() p Fe(fun) p
-Fk 198 487 a(?) p Fi(l) p Fc 237 494 a(i) p Fk 250 487
-a(:) p Fg(x) p Fj 305 487 a(!) p Fg 369 487 a(e) p Fk(\)) p
-Fi 427 487 a(l) p Fc 443 494 a(1) p Fk 465 487 a(:) p
-Fg 478 487 a(e) p Ff 501 494 a(1) p Fg 529 487 a(:) p
-551 487 a(:) p 573 487 a(:) p Fi 594 487 a(l) p Fc 610
-494 a(n) p Fk 635 487 a(:) p Fg 648 487 a(e) p Fb 671
-494 a(n) p Fj 515 547 a(!) p Fg 579 547 a(e) p Fk([) p
-Fe(Some) p Fk 717 547 a(\() p Fg(e) p Fb 759 554 a(i) p
-Fk 773 547 a(\)) p Fg(=x) p Fk(]) p Fi 874 547 a(l) p
-Fc 890 554 a(1) p Fk 912 547 a(:) p Fg 925 547 a(e) p
-Ff 948 554 a(1) p Fg 976 547 a(:) p 998 547 a(:) p 1020
-547 a(:) p Fi 1042 547 a(l) p Fc 1058 554 a(i) p Fd(\000) p
-Fc(1) p Fk 1118 547 a(:) p Fg(e) p Fb 1155 554 a(i) p
-Fd(\000) p Ff(1) p Fi 1230 547 a(l) p Fc 1246 554 a(i) p
-Ff(+) p Fc(1) p Fk 1307 547 a(:) p Fg 1320 547 a(e) p
-Fb 1343 554 a(i) p Ff(+1) p Fg 1410 547 a(:) p 1432 547
-a(:) p 1454 547 a(:) p Fi 1476 547 a(l) p Fc 1492 554
-a(n) p Fk 1516 547 a(:) p Fg(e) p Fb 1553 554 a(n) p
-Fk 86 607 a(\() p Fe(fun) p Fk 198 607 a(?) p Fi(l) p
-Fk(:) p Fg 250 607 a(x) p Fj 292 607 a(!) p Fg 356 607
-a(e) p Fk(\)) p Fi 413 607 a(l) p Fc 429 614 a(1) p Fk
-451 607 a(:) p Fg(e) p Ff 488 614 a(1) p Fg 516 607 a(:) p
-538 607 a(:) p 560 607 a(:) p Fi 581 607 a(l) p Fc 597
-614 a(n) p Fk 621 607 a(:) p Fg(e) p Fb 658 614 a(n) p
-Fk 1154 607 a(when) p Fi 1281 607 a(l) p Fc 1297 614
-a(i) p Fk 1324 607 a(=) p Fj 1376 607 a(;) p Fk 1417
-607 a(and) p Fg 1512 607 a(l) p Fj 1541 607 a(62) p 1588
-607 a(f) p Fi(l) p Fc 1629 614 a(1) p Fg 1660 607 a(:) p
-1682 607 a(:) p 1704 607 a(:) p Fi 1725 607 a(l) p Fc
-1741 614 a(n) p Fj 1765 607 a(g) 515 667 y(!) p Fg 579
-667 a(e) p Fk([) p Fe(None) p Fg 717 667 a(=x) p Fk(]) p
-Fi 799 667 a(l) p Fc 815 674 a(1) p Fk 837 667 a(:) p
-Fg(e) p Ff 874 674 a(1) p Fg 901 667 a(:) p 923 667 a(:) p
-945 667 a(:) p Fi 967 667 a(l) p Fc 983 674 a(n) p Fk
-1007 667 a(:) p Fg(e) p Fb 1044 674 a(n) p Fk 86 728
-a(\(\() p Fe(fun) p Fi 217 728 a(l) p Fk(:) p Fg 246
-728 a(x) p Fj 288 728 a(!) p Fg 352 728 a(e) p Fk(\)) p
-Fi 409 728 a(l) p Fc 425 735 a(1) p Fk 447 728 a(:) p
-Fg(e) p Ff 484 735 a(1) p Fg 511 728 a(:) p 533 728 a(:) p
-555 728 a(:) p Fi 577 728 a(l) p Fc 593 735 a(m) p Fk
-629 728 a(:) p Fg 642 728 a(e) p Fb 665 735 a(m) p Fk
-698 728 a(\)) p Fi 733 728 a(l) p Fc 749 735 a(m) p Ff(+) p
-Fc(1) p Fk 833 728 a(:) p Fg 846 728 a(e) p Fb 869 735
-a(m) p Ff(+1) p Fg 955 728 a(:) p 977 728 a(:) p 999
-728 a(:) p Fi 1021 728 a(l) p Fc 1037 735 a(n) p Fk 1061
-728 a(:) p Fg(e) p Fb 1098 735 a(n) p Fk 1373 728 a(when) p
-Fi 1501 728 a(l) p Fj 1530 728 a(62) p 1577 728 a(f) p
-Fi(l) p Fc 1618 735 a(1) p Fg 1648 728 a(:) p 1670 728
-a(:) p 1692 728 a(:) p Fi 1714 728 a(l) p Fc 1730 735
-a(m) p Fj 1765 728 a(g) 515 788 y(!) p Fk 579 788 a(\() p
-Fe(fun) p Fi 691 788 a(l) p Fk(:) p Fg 720 788 a(x) p
-Fj 761 788 a(!) p Fg 825 788 a(e) p Fk(\)) p Fi 883 788
-a(l) p Fc 899 795 a(1) p Fk 921 788 a(:) p Fg 934 788
-a(e) p Ff 957 795 a(1) p Fg 985 788 a(:) p 1007 788 a(:) p
-1029 788 a(:) p Fi 1051 788 a(l) p Fc 1067 795 a(n) p
-Fk 1091 788 a(:) p Fg 1104 788 a(e) p Fb 1127 795 a(n) p
-Fk 86 848 a(\(\() p Fe(fun) p Fk 217 848 a(?) p Fi(l) p
-Fk(:) p Fg 269 848 a(x) p Fj 311 848 a(!) p Fg 375 848
-a(e) p Fk(\)) p Fi 432 848 a(l) p Fc 448 855 a(1) p Fk
-470 848 a(:) p Fg(e) p Ff 507 855 a(1) p Fg 535 848 a(:) p
-557 848 a(:) p 579 848 a(:) p Fi 600 848 a(l) p Fc 616
-855 a(m) p Fk 652 848 a(:) p Fg 665 848 a(e) p Fb 688
-855 a(m) p Fk 721 848 a(\)) p Fi 756 848 a(l) p Fc 772
-855 a(m) p Ff(+) p Fc(1) p Fk 856 848 a(:) p Fg 869 848
-a(e) p Fb 892 855 a(m) p Ff(+1) p Fg 978 848 a(:) p 1000
-848 a(:) p 1022 848 a(:) p Fi 1044 848 a(l) p Fc 1060
-855 a(n) p Fk 1084 848 a(:) p Fg(e) p Fb 1121 855 a(n) p
-Fk 1261 848 a(when) p Fj 1388 848 a(f) p Fi(l) p Fg(;) p
-Fj 1451 848 a(;g) p 1530 848 a(6) m(\\) p 1577 848 a(f) p
-Fi(l) p Fc 1618 855 a(1) p Fg 1648 848 a(:) p 1670 848
-a(:) p 1692 848 a(:) p Fi 1714 848 a(l) p Fc 1730 855
-a(m) p Fj 1765 848 a(g) 515 908 y(!) p Fk 579 908 a(\() p
-Fe(fun) p Fk 691 908 a(?) p Fi(l) p Fk(:) p Fg 743 908
-a(x) p Fj 785 908 a(!) p Fg 848 908 a(e) p Fk(\)) p Fi
-906 908 a(l) p Fc 922 915 a(1) p Fk 944 908 a(:) p Fg(e) p
-Ff 981 915 a(1) p Fg 1008 908 a(:) p 1030 908 a(:) p
-1052 908 a(:) p Fi 1074 908 a(l) p Fc 1090 915 a(n) p
-Fk 1114 908 a(:) p Fg 1127 908 a(e) p Fb 1150 915 a(n) p
-Fi 11 1035 a(T) n(yping) p Fk 11 1127 a(Seman) o(tics) p
-240 1127 a(are) p 321 1127 a(k) o(ept) p 430 1127 a(throughout) p
-685 1127 a(compilation) p 950 1127 a(b) o(y) p 1018 1127
-a(disallo) o(wing) p 1269 1127 a(lab) q(el) p 1387 1127
-a(comm) o(utation) p 1684 1127 a(for) p 1759 1127 a(func-) 11
-1187 y(tion) p 116 1187 a(t) o(yp) q(es.) p 278 1187
-a(Ho) o(w) o(ev) o(er,) p 494 1187 a(the) p 583 1187
-a(original) p 764 1187 a(comfort) p 949 1187 a(of) p
-1009 1187 a(out-of-order) p 1283 1187 a(application) p
-1540 1187 a(is) p 1594 1187 a(reco) o(v) o(ered) p 1814
-1187 a(b) o(y) 11 1247 y(allo) o(wing) p 207 1247 a(argumen) o(t) p
-431 1247 a(reordering) p 670 1247 a(in) p 732 1247 a(application,) p
-1005 1247 a(when) p 1138 1247 a(the) p 1227 1247 a(function's) p
-1457 1247 a(t) o(yp) q(e) p 1572 1247 a(is) p Fh 1626
-1247 a(wel) r(l) p 1731 1247 a(known) p Fk 11 1308 a(\() p
-Fh(c.f.) p Fk 118 1308 a(p) q(olymorphic) p 400 1308
-a(metho) q(ds\).) p Fl 11 1452 a(V) p 56 1452 a(arian) n(ts) p
-Fk 11 1544 a(V) l(arian) o(t) p 187 1544 a(t) o(yping,) p
-355 1544 a(as) p 417 1544 a(it) p 468 1544 a(is) p 519
-1544 a(presen) o(ted) p 739 1544 a(in) p 798 1544 a(the) p
-884 1544 a(user's) p 1022 1544 a(man) o(ual,) p 1210
-1544 a(is) p 1261 1544 a(not) p 1350 1544 a(principal:) p
-1576 1544 a(in) p 1635 1544 a(some) p 1760 1544 a(cases) 11
-1605 y(t) o(ypabilit) o(y) p 239 1605 a(of) p 301 1605
-a(an) p 375 1605 a(expression) p 616 1605 a(ma) o(y) p
-728 1605 a(dep) q(end) p 904 1605 a(on) p 978 1605 a(the) p
-1069 1605 a(order) p 1202 1605 a(in) p 1265 1605 a(whic) o(h) p
-1411 1605 a(the) p 1502 1605 a(t) o(yping) p 1660 1605
-a(algorithm) 11 1665 y(pro) q(ceeds.) p Fe 133 1779 a(#) p
-184 1779 a(let) p 286 1779 a(f1) p 363 1779 a(\(x) p
-440 1779 a(:) p 491 1779 a([<) p 568 1779 a(a) p 620
-1779 a(b\(int\)]\)) p 850 1779 a(=) p 902 1779 a(\(\)) 184
-1839 y(let) p 286 1839 a(f2) p 363 1839 a(\(x) p 440
-1839 a(:) p 491 1839 a([<) p 568 1839 a(a]\)) p 671 1839
-a(=) p 722 1839 a(\(\)) 184 1899 y(let) p 286 1899 a(f3) p
-363 1899 a(\(x) p 440 1899 a(:) p 491 1899 a([<) p 568
-1899 a(a) p 620 1899 a(b\(bool\)]\)) p 876 1899 a(=) p
-927 1899 a(\(\);;) 133 1960 y(val) p 235 1960 a(f1) p
-312 1960 a(:) p 363 1960 a([<) p 440 1960 a(a) p 491
-1960 a(b\(int\)]) p 696 1960 a(->) p 773 1960 a(unit) p
-902 1960 a(=) p 953 1960 a(<fun>) 133 2020 y(val) p 235
-2020 a(f2) p 312 2020 a(:) p 363 2020 a([<) p 440 2020
-a(a]) p 517 2020 a(->) p 594 2020 a(unit) p 722 2020
-a(=) p 773 2020 a(<fun>) 133 2080 y(val) p 235 2080 a(f3) p
-312 2080 a(:) p 363 2080 a([<) p 440 2080 a(a) p 491
-2080 a(b\(bool\)]) p 722 2080 a(->) p 799 2080 a(unit) p
-927 2080 a(=) p 978 2080 a(<fun>) 133 2140 y(#) p 184
-2140 a(fun) p 286 2140 a(x) p 338 2140 a(->) p 414 2140
-a(f1) p 491 2140 a(x;) p 568 2140 a(f2) p 645 2140 a(x;) p
-722 2140 a(f3) p 799 2140 a(x;;) 133 2200 y(-) p 184
-2200 a(:) p 235 2200 a([<) p 312 2200 a(a]) p 389 2200
-a(->) p 466 2200 a(unit) p 594 2200 a(=) p 645 2200 a(<fun>) 133
-2260 y(#) p 184 2260 a(fun) p 286 2260 a(x) p 338 2260
-a(->) p 414 2260 a(f1) p 491 2260 a(x;) p 568 2260 a(f3) p
-645 2260 a(x;;) 133 2321 y(Character) o(s) p 414 2321
-a(18-19:) 133 2381 y(This) p 261 2381 a(expressio) o(n) p
-543 2381 a(has) p 645 2381 a(type) p 773 2381 a([<) p
-850 2381 a(a) p 902 2381 a(b\(int\)]) p 1107 2381 a(but) p
-1209 2381 a(is) p 1286 2381 a(here) p 1414 2381 a(used) p
-1542 2381 a(with) p 1670 2381 a(type) 184 2441 y([<) p
-261 2441 a(a) p 312 2441 a(b\(bool\)]) p Fk 84 2555 a(Here) p
-204 2555 a(the) p 292 2555 a(constrain) o(t) p 526 2555
-a(in) o(tro) q(duced) p 775 2555 a(b) o(y) p Fe 848 2555
-a(f2) p Fk 920 2555 a(hides) p 1049 2555 a(the) p 1138
-2555 a(constructor) p Fe 1401 2555 a(b) p Fk(,) p 1462
-2555 a(and) p 1562 2555 a(a) o(v) o(oids) p 1714 2555
-a(a) p 1760 2555 a(clash) 11 2615 y(b) q(et) o(w) o(een) p
-Fe 199 2615 a(int) p Fk 292 2615 a(and) p Fe 387 2615
-a(bool) p Fk(.) 84 2676 y(An) p 163 2676 a(easy) p 270
-2676 a(w) o(a) o(y) p 369 2676 a(to) p 428 2676 a(solv) o(e) p
-547 2676 a(this) p 642 2676 a(w) o(ould) p 784 2676 a(b) q(e) p
-850 2676 a(to) p 909 2676 a(restrict) p 1077 2676 a(hiding) p
-1226 2676 a(absen) o(t) p 1379 2676 a(lab) q(els) p 1515
-2676 a(to) p 1575 2676 a(generic) p 1739 2676 a(t) o(yp) q(es.) 11
-2736 y(This) p 124 2736 a(w) o(a) o(y) p 224 2736 a(the) p
-310 2736 a(second) p 469 2736 a(case) p 574 2736 a(w) o(ould) p
-718 2736 a(still) p 814 2736 a(fail,) p 913 2736 a(since) p
-Fe 1034 2736 a(x) p Fk 1077 2736 a(has) p 1166 2736 a(a) p
-1208 2736 a(monorphic) p 1451 2736 a(t) o(yp) q(e.) p
-1584 2736 a(This) p 1697 2736 a(solution) 11 2796 y(w) o(ould) p
-153 2796 a(b) q(e) p 219 2796 a(correct) p 382 2796 a(and) p
-477 2796 a(principal.) 926 2937 y(2) p eop
-PStoPSsaved restore
-%%Page: (2,3) 2
-userdict/PStoPSsaved save put
-PStoPSmatrix setmatrix
-595.000000 0.271378 translate
-90 rotate
-0.706651 dup scale
-userdict/PStoPSmatrix matrix currentmatrix put
-userdict/PStoPSclip{0 0 moveto
- 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
- closepath}put initclip
-/showpage{}def/copypage{}def/erasepage{}def
-PStoPSxform concat
-3 2 bop Fk 84 168 a(Ho) o(w) o(ev) o(er,) p 293 168 a(one) p
-382 168 a(can) p 472 168 a(easily) p 606 168 a(see) p
-684 168 a(that) p 789 168 a(this) p 884 168 a(solution) p
-1068 168 a(is) p 1117 168 a(coun) o(ter-in) o(tuitiv) o(e.) p
-1504 168 a(F) l(or) p 1591 168 a(the) p 1675 168 a(user,) p
-Fe 1791 168 a(b) p Fk 1833 168 a(is) 11 229 y(already) p
-183 229 a(an) p 250 229 a(imp) q(ossible) p 488 229 a(constructor,) p
-759 229 a(and) p 854 229 a(ha) o(ving) p 1011 229 a(a) p
-1052 229 a(clash) p 1174 229 a(on) p 1242 229 a(it) p
-1291 229 a(is) p 1340 229 a(hard) p 1453 229 a(to) p
-1513 229 a(understand.) 84 289 y(Another) p 277 289 a(solution) p
-463 289 a(is) p 514 289 a(to) p 575 289 a(go) p 642 289
-a(the) p 728 289 a(opp) q(osite) p 924 289 a(w) o(a) o(y) l(.) p
-1044 289 a(T) l(o) p 1117 289 a(accept) p 1271 289 a(more) p
-1395 289 a(programs.) p 1634 289 a(This) p 1747 289 a(is) p
-1798 289 a(the) 11 349 y(w) o(a) o(y) p 109 349 a(w) o(e) p
-181 349 a(explore) p 351 349 a(here,) p 470 349 a(with) p
-581 349 a(an) p 649 349 a(unc) o(hanged) p 891 349 a(syn) o(tax.) p
-Fi 11 479 a(T) n(yping) p Fk 11 571 a(The) p 114 571
-a(idea) p 220 571 a(is) p 273 571 a(to) p 336 571 a(dela) o(y) p
-466 571 a(uni\014cation) p 711 571 a(on) p 782 571 a(constructor) p
-1043 571 a(un) o(til) p 1161 571 a(they) p 1274 571 a(are) p
-1359 571 a(explicitely) p 1595 571 a(kno) o(wn) p 1753
-571 a(to) p 1816 571 a(b) q(e) 11 631 y(presen) o(t.) p
-199 631 a(W) l(e) p 280 631 a(k) o(eep) p 390 631 a(the) p
-472 631 a(\() p Fg(T) t(;) p 546 631 a(U;) p 601 631
-a(L) p Fk(\)) p 666 631 a(represen) o(tation) p 983 631
-a(of) p 1036 631 a(v) m(arian) o(t) p 1200 631 a(t) o(yp) q(es,) p
-1341 631 a(but) p Fg 1428 631 a(T) p Fk 1478 631 a(is) p
-1525 631 a(no) p 1591 631 a(longer) p 1735 631 a(a) p
-1774 631 a(map) 11 692 y(from) p 126 692 a(constructors) p
-403 692 a(to) p 462 692 a(t) o(yp) q(es,) p 605 692 a(but) p
-694 692 a(from) p 809 692 a(constructors) p 1086 692
-a(to) p 1146 692 a(sets) p 1241 692 a(of) p 1297 692
-a(t) o(yp) q(es.) 84 752 y(When) p 230 752 a(w) o(e) p
-307 752 a(unify) p 436 752 a(t) o(w) o(o) p 532 752 a(v) m(arian) o(t) p
-702 752 a(t) o(yp) q(es,) p 850 752 a(the) p 938 752
-a(\014rst) p 1043 752 a(step) p 1150 752 a(is) p 1204
-752 a(just) p 1305 752 a(to) p 1369 752 a(tak) o(e) p
-1479 752 a(the) p 1567 752 a(union) p 1707 752 a(of) p
-1767 752 a(b) q(oth) 11 812 y(t) o(yping) p 162 812 a(en) o(vironmen) o
-(ts,) p 476 812 a(dropping) p 682 812 a(unnecessary) p
-952 812 a(t) o(yp) q(es.) 204 932 y(\() p Fg(T) p Ff
-252 939 a(1) p Fg 272 932 a(;) p 294 932 a(U) p Ff 327
-939 a(1) p Fg 346 932 a(;) p 368 932 a(L) p Ff 401 939
-a(1) p Fk 421 932 a(\)) p Fj 451 932 a(^) p Fk 495 932
-a(\() p Fg(T) p Ff 543 939 a(2) p Fg 563 932 a(;) p 585
-932 a(U) p Ff 618 939 a(2) p Fg 637 932 a(;) p 659 932
-a(L) p Ff 692 939 a(2) p Fk 712 932 a(\)) p 745 932 a(=) p
-797 932 a(\(\() p Fg(T) p Ff 864 939 a(1) p Fj 883 932
-a(j) p Fb 897 939 a(U) p Fa 921 944 a(1) p Fd 938 939
-a(\\) p Fb(U) p Fa 986 944 a(2) p Fk 1005 932 a(\)) p
-Fj 1035 932 a([) p Fk 1079 932 a(\() p Fg(T) p Ff 1127
-939 a(2) p Fj 1146 932 a(j) p Fb 1160 939 a(U) p Fa 1184
-944 a(1) p Fd 1201 939 a(\\) p Fb(U) p Fa 1249 944 a(2) p
-Fk 1268 932 a(\)) p Fg(;) p 1309 932 a(U) p Ff 1342 939
-a(1) p Fj 1373 932 a(\\) p Fg 1417 932 a(U) p Ff 1450
-939 a(2) p Fg 1470 932 a(;) p 1492 932 a(L) p Ff 1525
-939 a(1) p Fj 1556 932 a([) p Fg 1600 932 a(L) p Ff 1633
-939 a(2) p Fk 1653 932 a(\)) 84 1042 y(Here) p 203 1042
-a(the) p 291 1042 a(union) p 431 1042 a(of) p 490 1042
-a(t) o(w) o(o) p 587 1042 a(t) o(yping) p 742 1042 a(en) o(vironmen) o
-(ts) p 1046 1042 a(is) p 1099 1042 a(the) p 1187 1042
-a(p) q(oin) o(t) o(wise) p 1407 1042 a(union) p 1547
-1042 a(of) p 1606 1042 a(their) p 1727 1042 a(sets) p
-1826 1042 a(of) 11 1102 y(t) o(yp) q(es) p 140 1102 a(for) p
-214 1102 a(eac) o(h) p 324 1102 a(constructor.) 84 1162
-y(This) p 195 1162 a(\014rst) p 296 1162 a(step) p 399
-1162 a(nev) o(er) p 529 1162 a(fails.) 84 1222 y(In) p
-145 1222 a(a) p 186 1222 a(second) p 343 1222 a(step,) p
-460 1222 a(structural) p 685 1222 a(constrain) o(ts) p
-934 1222 a(are) p 1015 1222 a(enforced) p 1209 1222 a(on) p
-1277 1222 a(the) p 1361 1222 a(resulting) p 1562 1222
-a(t) o(yp) q(e) p 1672 1222 a(\() p Fg(T) t(;) p 1746
-1222 a(U;) p 1801 1222 a(L) p Fk(\).) 11 1282 y(First,) p
-Fg 144 1282 a(L) p Fk 195 1282 a(should) p 351 1282 a(b) q(e) p
-418 1282 a(included) p 614 1282 a(in) p Fg 672 1282 a(U) p
-Fk 710 1282 a(.) p 749 1282 a(Then,) p 892 1282 a(for) p
-967 1282 a(all) p 1036 1282 a(constructors) p 1314 1282
-a(app) q(earing) p 1542 1282 a(in) p Fg 1600 1282 a(L) p
-Fk(,) p 1664 1282 a(the) p 1749 1282 a(set) p 1826 1282
-a(of) 11 1343 y(t) o(yp) q(es) p 136 1343 a(asso) q(ciated) p
-365 1343 a(with) p 472 1343 a(eac) o(h) p 578 1343 a(constructor) p
-833 1343 a(is) p 878 1343 a(collapsed) p 1084 1343 a(b) o(y) p
-1148 1343 a(uni\014cation.) p 1407 1343 a(This) p 1515
-1343 a(can) p 1600 1343 a(b) q(e) p 1663 1343 a(expressed) 11
-1403 y(b) o(y) p 78 1403 a(rewriting) p 287 1403 a(rules,) p
-417 1403 a(where) p Fg 558 1403 a(e) p Fk 597 1403 a(is) p
-646 1403 a(a) p 687 1403 a(m) o(ulti-equation) p 1015
-1403 a(and) p Fg 1109 1403 a(\036) p Fk 1155 1403 a(a) p
-1195 1403 a(set) p 1271 1403 a(of) p 1327 1403 a(m) o(ultiequations) 249
-1509 y(if) p Fg 294 1509 a(L) p Fj 341 1509 a(6\032) p
-Fg 393 1509 a(U) p Fk 448 1509 a(then) p 559 1509 a(\() p
-Fg(T) t(;) p 633 1509 a(U;) p 688 1509 a(L) p Fk(\)) p
-753 1509 a(=) p Fg 805 1509 a(e) p Fj 839 1509 a(^) p
-Fg 883 1509 a(\036) p Fj 926 1509 a(\000) p 956 1509
-a(!) p 1020 1509 a(?) p Fk 249 1629 a(if) p Fg 294 1629
-a(l) p Fj 323 1629 a(2) p Fg 370 1629 a(L) p Fk 420 1629
-a(and) p Fg 515 1629 a(T) p Fk 551 1629 a(\() p Fg(l) p
-Fk 586 1629 a(\)) p 617 1629 a(=) p Fj 669 1629 a(f) p
-Fg(\034) p Ff 715 1636 a(1) p Fg 735 1629 a(;) p 757
-1629 a(:) p 779 1629 a(:) p 801 1629 a(:) p 822 1629
-a(;) p 844 1629 a(\034) p Fb 865 1636 a(n) p Fj 889 1629
-a(g) p Fk 930 1629 a(then) 298 1689 y(\() p Fg(T) t(;) p
-372 1689 a(U;) p 427 1689 a(L) p Fk(\)) p 492 1689 a(=) p
-Fg 544 1689 a(e) p Fj 577 1689 a(^) p Fg 622 1689 a(\036) p
-Fj 664 1689 a(\000) p 695 1689 a(!) p Fk 759 1689 a(\() p
-Fg(T) p Fj 814 1689 a(f) p Fg(l) p Fj 867 1689 a(7!) p
-Fg 931 1689 a(\034) p Ff 952 1696 a(1) p Fj 972 1689
-a(g) p Fg(;) p 1019 1689 a(U;) p 1074 1689 a(L) p Fk(\)) p
-1139 1689 a(=) p Fg 1191 1689 a(e) p Fj 1225 1689 a(^) p
-Fg 1269 1689 a(\034) p Ff 1290 1696 a(1) p Fk 1324 1689
-a(=) p Fg 1376 1689 a(:) p 1398 1689 a(:) p 1420 1689
-a(:) p Fk 1447 1689 a(=) p Fg 1498 1689 a(\034) p Fb
-1519 1696 a(n) p Fj 1554 1689 a(^) p Fg 1598 1689 a(\036) p
-Fk 84 1796 a(Optionally) p 331 1796 a(one) p 425 1796
-a(can) p 519 1796 a(add) p 619 1796 a(rules) p 740 1796
-a(that) p 850 1796 a(remo) o(v) o(e) p 1022 1796 a(a) p
-1067 1796 a(constructor) p Fg 1329 1796 a(l) p Fk 1366
-1796 a(from) p Fg 1486 1796 a(U) p Fk 1545 1796 a(if) p
-1594 1796 a(the) p 1683 1796 a(equation) 11 1856 y(obtained) p
-211 1856 a(from) p Fg 326 1856 a(T) p Fk 362 1856 a(\() p
-Fg(l) p Fk 397 1856 a(\)) p 431 1856 a(has) p 518 1856
-a(no) p 586 1856 a(solution.) p 790 1856 a(Suc) o(h) p
-908 1856 a(rules) p 1024 1856 a(w) o(ould) p 1167 1856
-a(b) q(e) p 1233 1856 a(sound) p 1374 1856 a(and) p 1469
-1856 a(complete.) p Fi 11 1986 a(Syn) n(tax) p 198 1986
-a(of) p 262 1986 a(t) n(yp) r(es) p Fk 11 2078 a(Thanks) p
-188 2078 a(to) p 250 2078 a(the) p 336 2078 a(go) q(o) q(d) p
-458 2078 a(prop) q(erties) p 689 2078 a(of) p 747 2078
-a(these) p 874 2078 a(constrain) o(ts,) p 1139 2078 a(the) p
-1226 2078 a(surface) p 1392 2078 a(syn) o(tax) p 1551
-2078 a(of) p 1608 2078 a(t) o(yp) q(es) p 1740 2078 a(w) o(ould) 11
-2138 y(only) p 118 2138 a(ha) o(v) o(e) p 230 2138 a(to) p
-290 2138 a(b) q(e) p 356 2138 a(sligh) o(tly) p 527 2138
-a(extended.) p Fh 590 2244 a(tag-typ) n(e) p Fk 798 2244
-a(::=) p Fh 904 2244 a(ident) p Fj 849 2304 a(j) p Fh
-904 2304 a(ident) p Fe 1031 2304 a(\() p Fh(typ) n(expr-list) p
-Fe(\)) p Fh 523 2365 a(typ) n(expr-list) p Fk 798 2365
-a(::=) p Fh 904 2365 a(typ) n(expr) p Fj 849 2425 a(j) p
-Fh 904 2425 a(typ) n(expr) p Fe 1078 2425 a(&) p Fh 1120
-2425 a(typ) n(expr-list) p Fk 84 2531 a(Notice) p 234
-2531 a(that) p 336 2531 a(a) p 373 2531 a(0-ary) p 496
-2531 a(constructor) p 751 2531 a(and) p 842 2531 a(an) p
-907 2531 a(1-ary) p 1030 2531 a(construtor) p 1262 2531
-a(are) p 1340 2531 a(con) o(tradictory) l(,) p 1648 2531
-a(and) p 1740 2531 a(w) o(ould) 11 2592 y(result) p 146
-2592 a(in) p 203 2592 a(the) p 287 2592 a(absence) p
-466 2592 a(of) p 522 2592 a(this) p 617 2592 a(constructor.) 926
-2937 y(3) p eop
-PStoPSsaved restore
-userdict/PStoPSsaved save put
-PStoPSmatrix setmatrix
-595.000000 421.271378 translate
-90 rotate
-0.706651 dup scale
-userdict/PStoPSmatrix matrix currentmatrix put
-userdict/PStoPSclip{0 0 moveto
- 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
- closepath}put initclip
-PStoPSxform concat
-4 3 bop Fi 11 168 a(Discussion) p Fk 11 261 a(Suc) o(h) p
-133 261 a(a) p 179 261 a(c) o(hange) p 345 261 a(has) p
-436 261 a(the) p 525 261 a(ma) s(jor) p 672 261 a(adv) m(an) o(tage) p
-907 261 a(of) p 967 261 a(b) q(oth) p 1087 261 a(reco) o(v) o(ering) p
-1324 261 a(principalit) o(y) p 1589 261 a(and) p 1688
-261 a(a) o(v) o(oiding) 11 321 y(unin) o(tuitiv) o(e) p
-266 321 a(error) p 392 321 a(messages.) p 640 321 a(Constrain) o(ts) p
-909 321 a(created) p 1087 321 a(in) p 1152 321 a(suc) o(h) p
-1269 321 a(a) p 1317 321 a(w) o(a) o(y) p 1423 321 a(are) p
-1512 321 a(v) o(ery) p 1626 321 a(ligh) o(t:) p 1772
-321 a(they) 11 381 y(alw) o(a) o(ys) p 165 381 a(app) q(ear) p
-325 381 a(inside) p 463 381 a(a) p 502 381 a(v) m(arian) o(t) p
-666 381 a(t) o(yp) q(e,) p 788 381 a(and) p 882 381 a(if) p
-926 381 a(the) p 1008 381 a(v) m(arian) o(t) p 1172 381
-a(t) o(yp) q(e) p 1281 381 a(do) q(es) p 1390 381 a(not) p
-1475 381 a(app) q(ear) p 1635 381 a(in) p 1691 381 a(the) p
-1774 381 a(\014nal) 11 441 y(t) o(yp) q(e) p 120 441
-a(sc) o(heme,) p 301 441 a(then) p 412 441 a(the) p 496
-441 a(constrain) o(t) p 725 441 a(can) p 815 441 a(b) q(e) p
-881 441 a(discarded) p 1098 441 a(safely) l(.) 84 501
-y(On) p 165 501 a(the) p 249 501 a(other) p 376 501 a(hand,) p
-512 501 a(there) p 637 501 a(are) p 718 501 a(t) o(w) o(o) p
-810 501 a(dra) o(wbac) o(ks.) p Fj 83 616 a(\017) p Fk
-133 616 a(Some) p 259 616 a(errors) p 393 616 a(will) p
-482 616 a(b) q(e) p 544 616 a(dela) o(y) o(ed) p 715
-616 a(longer) p 858 616 a(than) p 968 616 a(no) o(w,) p
-1080 616 a(un) o(til) p 1191 616 a(a) p 1228 616 a(construtor) p
-1460 616 a(is) p 1505 616 a(actually) p 1687 616 a(included) 133
-676 y(in) p Fg 189 676 a(L) p Fk(.) p 258 676 a(It) p
-311 676 a(is) p 360 676 a(not) p 446 676 a(clear) p 563
-676 a(ho) o(w) p 665 676 a(damageable) p 930 676 a(it) p
-979 676 a(is.) p Fj 83 777 a(\017) p Fk 133 777 a(While) p
-272 777 a(t) o(yp) q(e) p 378 777 a(inference) p 579
-777 a(is) p 625 777 a(simple) p 774 777 a(and) p 865
-777 a(costless) p 1036 777 a(for) p 1108 777 a(this) p
-1200 777 a(extension,) p 1426 777 a(simpli\014cation) p
-1724 777 a(of) p 1776 777 a(con-) 133 838 y(strain) o(ts) p
-310 838 a(|marking) p 551 838 a(constructors) p 830 838
-a(with) p 943 838 a(unsolv) m(able) p 1182 838 a(constrain) o(ts) p
-1432 838 a(as) p 1494 838 a(absen) o(t,) p 1663 838 a(and) p
-1760 838 a(elim-) 133 898 y(inating) p 300 898 a(redundan) o(t) p
-536 898 a(t) o(yp) q(es) p 667 898 a(in) p 726 898 a(constrain) o(ts|) p
-1025 898 a(is) p 1076 898 a(a) p 1119 898 a(bit) p 1197
-898 a(more) p 1320 898 a(exp) q(ensiv) o(e.) p 1565 898
-a(Also,) p 1691 898 a(allo) o(wing) 133 958 y(suc) o(h) p
-244 958 a(constrained) p 506 958 a(t) o(yp) q(es) p 637
-958 a(inside) p 777 958 a(signatures) p 1010 958 a(w) o(ould) p
-1154 958 a(mean) p 1286 958 a(ha) o(ving) p 1444 958
-a(to) p 1506 958 a(solv) o(e) p 1627 958 a(a) p 1669
-958 a(matc) o(hing) 133 1018 y(problem,) p 333 1018 a(whic) o(h) p
-469 1018 a(is) p 514 1018 a(exp) q(onen) o(tial) p 772
-1018 a(in) p 825 1018 a(the) p 906 1018 a(n) o(um) o(b) q(er) p
-1080 1018 a(of) p 1132 1018 a(connected) p 1356 1018
-a(constrain) o(ts) p 1600 1018 a(inside) p 1735 1018
-a(a) p 1772 1018 a(t) o(yp) q(e) 133 1078 y(sc) o(heme.) 84
-1193 y(Reasonably) p 340 1193 a(e\016cien) o(t) p 516
-1193 a(algorithms) p 754 1193 a(exist) p 866 1193 a(to) p
-922 1193 a(solv) o(e) p 1038 1193 a(these) p 1159 1193
-a(problems,) p 1379 1193 a(so) p 1435 1193 a(the) p 1515
-1193 a(di\016cult) o(y) p 1715 1193 a(is) p 1760 1193
-a(more) 11 1253 y(in) p 67 1253 a(the) p 151 1253 a(increased) p
-363 1253 a(complexit) o(y) p 611 1253 a(of) p 667 1253
-a(the) p 751 1253 a(t) o(yp) q(e-c) o(hec) o(k) o(er) p
-1031 1253 a(than) p 1145 1253 a(in) p 1202 1253 a(run-time) p
-1402 1253 a(cost.) p Fl 11 1397 a(Other) p 205 1397 a(features) p
-Fk 11 1490 a(Ob) s(jectiv) o(e) p 238 1490 a(Lab) q(el) p
-380 1490 a(con) o(tains) p 579 1490 a(t) o(w) o(o) p
-678 1490 a(other) p 812 1490 a(features:) p 1029 1490
-a(p) q(olymorphic) p 1318 1490 a(metho) q(ds) p 1521
-1490 a(and) p 1623 1490 a(t) o(yp) q(e-driv) o(en) 11
-1550 y(access) p 153 1550 a(of) p 208 1550 a(records.) p
-394 1550 a(Both) p 514 1550 a(of) p 568 1550 a(them) p
-692 1550 a(use) p 775 1550 a(the) p 857 1550 a(same) p
-978 1550 a(metho) q(d) p 1154 1550 a(of) p 1209 1550
-a(enforcing) p 1417 1550 a(principalit) o(y) p 1676 1550
-a(of) p 1730 1550 a(t) o(yping) 11 1610 y(through) p
-191 1610 a(tracing) p 351 1610 a(user) p 450 1610 a(pro) o(vided) p
-647 1610 a(t) o(yp) q(e) p 752 1610 a(information.) p
-1034 1610 a(With) p 1155 1610 a(this) p 1246 1610 a(tracing,) p
-1422 1610 a(their) p 1534 1610 a(implem) o(en) n(tation) 11
-1670 y(is) p 60 1670 a(v) o(ery) p 167 1670 a(easy) l(,) p
-283 1670 a(but) p 373 1670 a(without) p 554 1670 a(it) p
-603 1670 a(they) p 713 1670 a(lo) q(ose) p 834 1670 a(principalit) o(y)
-l(.) 84 1730 y(While) p 229 1730 a(these) p 357 1730
-a(features) p 543 1730 a(pro) o(vide) p 720 1730 a(some) p
-845 1730 a(comfort) p 1029 1730 a(in) p 1089 1730 a(writing) p
-1260 1730 a(user) p 1366 1730 a(programs,) p 1598 1730
-a(they) p 1711 1730 a(are) p 1795 1730 a(not) 11 1791
-y(strictly) p 182 1791 a(necessary) p 403 1791 a(for) p
-482 1791 a(the) p 571 1791 a(v) m(arious) p 742 1791
-a(libraries) p 934 1791 a(coming) p 1107 1791 a(with) p
-1223 1791 a(O'Labl) p 1391 1791 a(\(LablTk,) p 1602 1791
-a(LablGL) p 1787 1791 a(and) 11 1851 y(LablGTK\).) 926
-2937 y(4) p eop
-PStoPSsaved restore
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/testlabl/objvariant.diffs b/testlabl/objvariant.diffs
deleted file mode 100644 (file)
index 75deb24..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-? objvariants-3.09.1.diffs
-? objvariants.diffs
-Index: btype.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/btype.ml,v
-retrieving revision 1.37.4.1
-diff -u -r1.37.4.1 btype.ml
---- btype.ml   5 Dec 2005 13:18:42 -0000       1.37.4.1
-+++ btype.ml   16 Jan 2006 02:23:14 -0000
-@@ -177,7 +177,8 @@
-     Tvariant row -> iter_row f row
-   | Tvar | Tunivar | Tsubst _ | Tconstr _ ->
-       Misc.may (fun (_,l) -> List.iter f l) row.row_name;
--      List.iter f row.row_bound
-+      List.iter f row.row_bound;
-+      List.iter (fun (s,k,t) -> f t) row.row_object
-   | _ -> assert false
- let iter_type_expr f ty =
-@@ -224,7 +225,9 @@
-     | Some (path, tl) -> Some (path, List.map f tl) in
-   { row_fields = fields; row_more = more;
-     row_bound = !bound; row_fixed = row.row_fixed && fixed;
--    row_closed = row.row_closed; row_name = name; }
-+    row_closed = row.row_closed; row_name = name;
-+    row_object = List.map (fun (s,k,t) -> (s,k,f t)) row.row_object;
-+  }
- let rec copy_kind = function
-     Fvar{contents = Some k} -> copy_kind k
-Index: ctype.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/ctype.ml,v
-retrieving revision 1.197.2.6
-diff -u -r1.197.2.6 ctype.ml
---- ctype.ml   15 Dec 2005 02:28:38 -0000      1.197.2.6
-+++ ctype.ml   16 Jan 2006 02:23:15 -0000
-@@ -1421,7 +1421,7 @@
-   newgenty
-     (Tvariant
-        {row_fields = fields; row_closed = closed; row_more = newvar();
--        row_bound = []; row_fixed = false; row_name = None })
-+        row_bound = []; row_fixed = false; row_name = None; row_object=[]})
- (**** Unification ****)
-@@ -1724,8 +1724,11 @@
-     else None
-   in
-   let bound = row1.row_bound @ row2.row_bound in
-+  let opairs, _, miss2 = associate_fields row1.row_object row2.row_object in
-+  let row_object = row1.row_object @ miss2 in
-   let row0 = {row_fields = []; row_more = more; row_bound = bound;
--              row_closed = closed; row_fixed = fixed; row_name = name} in
-+              row_closed = closed; row_fixed = fixed; row_name = name;
-+              row_object = row_object } in
-   let set_more row rest =
-     let rest =
-       if closed then
-@@ -1758,6 +1761,18 @@
-           raise (Unify ((mkvariant [l,f1] true,
-                          mkvariant [l,f2] true) :: trace)))
-       pairs;
-+    List.iter (fun (s,_,ty1,_,ty2) -> unify env ty1 ty2) opairs;
-+    if row_object <> [] then begin
-+      List.iter
-+        (fun (l,f) ->
-+          match row_field_repr f with
-+            Rpresent (Some ty) ->
-+              let fi = build_fields generic_level row_object (newgenvar()) in
-+              unify env (newgenty (Tobject (fi, ref None))) ty
-+          | Rpresent None -> raise (Unify [])
-+          | _ -> ())
-+        (row_repr row1).row_fields
-+    end;
-   with exn ->
-     log_type rm1; rm1.desc <- md1; log_type rm2; rm2.desc <- md2; raise exn
-   end
-@@ -2789,7 +2804,8 @@
-       let row =
-         { row_fields = List.map fst fields; row_more = newvar();
-           row_bound = !bound; row_closed = posi; row_fixed = false;
--          row_name = if c > Unchanged then None else row.row_name }
-+          row_name = if c > Unchanged then None else row.row_name;
-+          row_object = [] }
-       in
-       (newty (Tvariant row), Changed)
-   | Tobject (t1, _) ->
-Index: oprint.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/oprint.ml,v
-retrieving revision 1.22
-diff -u -r1.22 oprint.ml
---- oprint.ml  23 Mar 2005 03:08:37 -0000      1.22
-+++ oprint.ml  16 Jan 2006 02:23:15 -0000
-@@ -185,7 +185,7 @@
-       fprintf ppf "@[<2>< %a >@]" (print_fields rest) fields
-   | Otyp_stuff s -> fprintf ppf "%s" s
-   | Otyp_var (ng, s) -> fprintf ppf "'%s%s" (if ng then "_" else "") s
--  | Otyp_variant (non_gen, row_fields, closed, tags) ->
-+  | Otyp_variant (non_gen, row_fields, closed, tags, obj) ->
-       let print_present ppf =
-         function
-           None | Some [] -> ()
-@@ -198,12 +198,17 @@
-               ppf fields
-         | Ovar_name (id, tyl) ->
-             fprintf ppf "@[%a%a@]" print_typargs tyl print_ident id
-+      and print_object ppf obj =
-+        if obj <> [] then
-+          fprintf ppf "@ as @[<2>< %a >@]" (print_fields (Some false)) obj
-       in
--      fprintf ppf "%s[%s@[<hv>@[<hv>%a@]%a ]@]" (if non_gen then "_" else "")
-+      fprintf ppf "%s[%s@[<hv>@[<hv>%a@]%a%a ]@]"
-+        (if non_gen then "_" else "")
-         (if closed then if tags = None then " " else "< "
-          else if tags = None then "> " else "? ")
-         print_fields row_fields
-         print_present tags
-+        print_object obj
-   | Otyp_alias _ | Otyp_poly _ | Otyp_arrow _ | Otyp_tuple _ as ty ->
-       fprintf ppf "@[<1>(%a)@]" print_out_type ty
-   | Otyp_abstract | Otyp_sum _ | Otyp_record _ | Otyp_manifest (_, _) -> ()
-Index: outcometree.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/outcometree.mli,v
-retrieving revision 1.14
-diff -u -r1.14 outcometree.mli
---- outcometree.mli    23 Mar 2005 03:08:37 -0000      1.14
-+++ outcometree.mli    16 Jan 2006 02:23:15 -0000
-@@ -59,6 +59,7 @@
-   | Otyp_var of bool * string
-   | Otyp_variant of
-       bool * out_variant * bool * (string list) option
-+      * (string * out_type) list
-   | Otyp_poly of string list * out_type
- and out_variant =
-   | Ovar_fields of (string * bool * out_type list) list
-Index: printtyp.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/printtyp.ml,v
-retrieving revision 1.139.2.2
-diff -u -r1.139.2.2 printtyp.ml
---- printtyp.ml        7 Dec 2005 23:37:27 -0000       1.139.2.2
-+++ printtyp.ml        16 Jan 2006 02:23:15 -0000
-@@ -244,7 +244,10 @@
-             visited_objects := px :: !visited_objects;
-           match row.row_name with
-           | Some(p, tyl) when namable_row row ->
--              List.iter (mark_loops_rec visited) tyl
-+              List.iter (mark_loops_rec visited) tyl;
-+              if not (static_row row) then
-+                List.iter (fun (s,k,t) -> mark_loops_rec visited t)
-+                  row.row_object
-           | _ ->
-               iter_row (mark_loops_rec visited) {row with row_bound = []}
-          end
-@@ -343,25 +346,27 @@
-                | _ -> false)
-             fields in
-         let all_present = List.length present = List.length fields in
-+        let static = row.row_closed && all_present in
-+        let obj =
-+          if static then [] else
-+          List.map (fun (s,k,t) -> (s, tree_of_typexp sch t)) row.row_object
-+        in
-+        let tags = if all_present then None else Some (List.map fst present) in
-         begin match row.row_name with
-         | Some(p, tyl) when namable_row row ->
-             let id = tree_of_path p in
-             let args = tree_of_typlist sch tyl in
--            if row.row_closed && all_present then
-+            if static then
-               Otyp_constr (id, args)
-             else
-               let non_gen = is_non_gen sch px in
--              let tags =
--                if all_present then None else Some (List.map fst present) in
-               Otyp_variant (non_gen, Ovar_name(tree_of_path p, args),
--                            row.row_closed, tags)
-+                            row.row_closed, tags, obj)
-         | _ ->
--            let non_gen =
--              not (row.row_closed && all_present) && is_non_gen sch px in
-+            let non_gen = not static && is_non_gen sch px in
-             let fields = List.map (tree_of_row_field sch) fields in
--            let tags =
--              if all_present then None else Some (List.map fst present) in
--            Otyp_variant (non_gen, Ovar_fields fields, row.row_closed, tags)
-+            Otyp_variant (non_gen, Ovar_fields fields, row.row_closed,
-+                          tags, obj)
-         end
-     | Tobject (fi, nm) ->
-         tree_of_typobject sch fi nm
-Index: typecore.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typecore.ml,v
-retrieving revision 1.176.2.2
-diff -u -r1.176.2.2 typecore.ml
---- typecore.ml        11 Dec 2005 09:56:33 -0000      1.176.2.2
-+++ typecore.ml        16 Jan 2006 02:23:15 -0000
-@@ -170,7 +170,8 @@
-       (* Force check of well-formedness *)
-       unify_pat pat.pat_env pat
-         (newty(Tvariant{row_fields=[]; row_more=newvar(); row_closed=false;
--                        row_bound=[]; row_fixed=false; row_name=None}));
-+                        row_bound=[]; row_fixed=false; row_name=None;
-+                        row_object=[]}));
-   | _ -> ()
- let rec iter_pattern f p =
-@@ -251,7 +252,7 @@
-       let ty = may_map (build_as_type env) p' in
-       newty (Tvariant{row_fields=[l, Rpresent ty]; row_more=newvar();
-                       row_bound=[]; row_name=None;
--                      row_fixed=false; row_closed=false})
-+                      row_fixed=false; row_closed=false; row_object=[]})
-   | Tpat_record lpl ->
-       let lbl = fst(List.hd lpl) in
-       if lbl.lbl_private = Private then p.pat_type else
-@@ -318,7 +319,8 @@
-       ([],[]) fields in
-   let row =
-     { row_fields = List.rev fields; row_more = newvar(); row_bound = !bound;
--      row_closed = false; row_fixed = false; row_name = Some (path, tyl) }
-+      row_closed = false; row_fixed = false; row_name = Some (path, tyl);
-+      row_object = [] }
-   in
-   let ty = newty (Tvariant row) in
-   let gloc = {loc with Location.loc_ghost=true} in
-@@ -428,7 +430,8 @@
-                   row_closed = false;
-                   row_more = newvar ();
-                   row_fixed = false;
--                  row_name = None } in
-+                  row_name = None;
-+                  row_object = [] } in
-       rp {
-         pat_desc = Tpat_variant(l, arg, row);
-         pat_loc = sp.ppat_loc;
-@@ -976,7 +979,8 @@
-                                   row_bound = [];
-                                   row_closed = false;
-                                   row_fixed = false;
--                                  row_name = None});
-+                                  row_name = None;
-+                                  row_object = []});
-         exp_env = env }
-   | Pexp_record(lid_sexp_list, opt_sexp) ->
-       let ty = newvar() in
-@@ -1261,8 +1265,30 @@
-                   assert false
-               end
-           | _ ->
--              (Texp_send(obj, Tmeth_name met),
--               filter_method env met Public obj.exp_type)
-+              let obj, met_ty =
-+                match expand_head env obj.exp_type with
-+                  {desc = Tvariant _} ->
-+                    let exp_ty = newvar () in
-+                    let met_ty = filter_method env met Public exp_ty in
-+                    let row =
-+                      {row_fields=[]; row_more=newvar();
-+                       row_bound=[]; row_closed=false;
-+                       row_fixed=false; row_name=None;
-+                       row_object=[met, Fpresent, met_ty]} in
-+                    unify_exp env obj (newty (Tvariant row));
-+                    let prim = Primitive.parse_declaration 1 ["%field1"] in
-+                    let ty = newty(Tarrow("", obj.exp_type, exp_ty, Cok)) in
-+                    let vd = {val_type = ty; val_kind = Val_prim prim} in
-+                    let esnd =
-+                      {exp_desc=Texp_ident(Path.Pident(Ident.create"snd"), vd);
-+                       exp_loc = Location.none; exp_type = ty; exp_env = env}
-+                    in
-+                    ({obj with exp_type = exp_ty;
-+                      exp_desc = Texp_apply(esnd,[Some obj, Required])},
-+                     met_ty)
-+                | _ -> (obj, filter_method env met Public obj.exp_type)
-+              in
-+              (Texp_send(obj, Tmeth_name met), met_ty)
-         in
-         if !Clflags.principal then begin
-           end_def ();
-Index: types.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/types.ml,v
-retrieving revision 1.25
-diff -u -r1.25 types.ml
---- types.ml   9 Dec 2004 12:40:53 -0000       1.25
-+++ types.ml   16 Jan 2006 02:23:15 -0000
-@@ -44,7 +44,9 @@
-       row_bound: type_expr list;
-       row_closed: bool;
-       row_fixed: bool;
--      row_name: (Path.t * type_expr list) option }
-+      row_name: (Path.t * type_expr list) option;
-+      row_object: (string * field_kind * type_expr) list;
-+    }
- and row_field =
-     Rpresent of type_expr option
-Index: types.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/types.mli,v
-retrieving revision 1.25
-diff -u -r1.25 types.mli
---- types.mli  9 Dec 2004 12:40:53 -0000       1.25
-+++ types.mli  16 Jan 2006 02:23:15 -0000
-@@ -43,7 +43,9 @@
-       row_bound: type_expr list;
-       row_closed: bool;
-       row_fixed: bool;
--      row_name: (Path.t * type_expr list) option }
-+      row_name: (Path.t * type_expr list) option;
-+      row_object: (string * field_kind * type_expr) list;
-+    }
- and row_field =
-     Rpresent of type_expr option
-Index: typetexp.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typetexp.ml,v
-retrieving revision 1.54
-diff -u -r1.54 typetexp.ml
---- typetexp.ml        22 Jul 2005 06:42:36 -0000      1.54
-+++ typetexp.ml        16 Jan 2006 02:23:15 -0000
-@@ -215,7 +215,8 @@
-           in
-           let row = { row_closed = true; row_fields = fields;
-                       row_bound = !bound; row_name = Some (path, args);
--                      row_fixed = false; row_more = newvar () } in
-+                      row_fixed = false; row_more = newvar ();
-+                      row_object = [] } in
-           let static = Btype.static_row row in
-           let row =
-             if static then row else
-@@ -262,7 +263,7 @@
-       let mkfield l f =
-         newty (Tvariant {row_fields=[l,f]; row_more=newvar();
-                          row_bound=[]; row_closed=true;
--                         row_fixed=false; row_name=None}) in
-+                         row_fixed=false; row_name=None; row_object=[]}) in
-       let add_typed_field loc l f fields =
-         try
-           let f' = List.assoc l fields in
-@@ -345,7 +346,7 @@
-       let row =
-         { row_fields = List.rev fields; row_more = newvar ();
-           row_bound = !bound; row_closed = closed;
--          row_fixed = false; row_name = !name } in
-+          row_fixed = false; row_name = !name; row_object = [] } in
-       let static = Btype.static_row row in
-       let row =
-         if static then row else
diff --git a/testlabl/objvariant.ml b/testlabl/objvariant.ml
deleted file mode 100644 (file)
index 3233e03..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-(* use with [cvs update -r objvariants typing] *)
-
-let f (x : [> ]) = x#m 3;;
-let o = object method m x = x+2 end;;
-f (`A o);;
-let l = [`A o; `B(object method m x = x -2 method y = 3 end)];;
-List.map f l;;
-let g = function `A x -> x#m 3 | `B x -> x#y;;
-List.map g l;;
-fun x -> ignore (x=f); List.map x l;;
-fun (x : [< `A of _ | `B of _] -> int) -> ignore (x=f); List.map x l;;
-
-
-class cvar name =
-  object
-    method name = name
-    method print ppf = Format.pp_print_string ppf name
-  end
-
-type var = [`Var of cvar]
-
-class cint n =
-  object
-    method n = n
-    method print ppf = Format.pp_print_int ppf n
-  end
-
-class ['a] cadd (e1 : 'a) (e2 : 'a) =
-  object
-    constraint 'a = [> ]
-    method e1 = e1
-    method e2 = e2
-    method print ppf = Format.fprintf ppf "(%t, %t)" e1#print e2#print
-  end
-
-type 'a expr = [var | `Int of cint | `Add of 'a cadd]
-
-type expr1 = expr1 expr
-
-let print = Format.printf "%t@."
-
-let e1 : expr1 = `Add (new cadd (`Var (new cvar "x")) (`Int (new cint 2)))
diff --git a/testlabl/printers.ml b/testlabl/printers.ml
deleted file mode 100644 (file)
index c80c42d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-(* $Id$ *)
-
-open Types
-
-let ignore_abbrevs ppf ab =
-  let s = match ab with
-    Mnil -> "Mnil"
-  | Mlink _ -> "Mlink _"
-  | Mcons _ -> "Mcons _"
-  in
-  Format.pp_print_string ppf s
diff --git a/testlabl/sigsubst.ml b/testlabl/sigsubst.ml
deleted file mode 100644 (file)
index ffddfdf..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-module type Printable = sig
-  type t
-  val print : Format.formatter -> t -> unit
-end
-module type Comparable = sig
-  type t
-  val compare : t -> t -> int
-end
-module type PrintableComparable = sig
-  type t
-  include Printable with type t := t
-  include Comparable with type t := t
-end
-module type PrintableComparable2 = sig
-  include Printable
-  include Comparable with type t := t
-end
-
-module type S = sig type t val f : t -> t end
-module type S' = S with type t := int
-
-module type S = sig type 'a t val map : ('a -> 'b) -> 'a t -> 'b t end
-module type S1 = S with type 'a t := 'a list
-module type S2 = sig
-  type 'a dict = (string * 'a) list
-  include S with type 'a t := 'a dict
-end
-
-
-module type S =
-  sig module T : sig type exp type arg end val f : T.exp -> T.arg end
-module M = struct type exp = string type arg = int end
-module type S' = S with module T := M
diff --git a/testlabl/tests.ml b/testlabl/tests.ml
deleted file mode 100644 (file)
index c39d152..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-(* $Id$ *)
-
-let f1 = function `a x -> x=1 | `b -> true
-let f2 = function `a x -> x | `b -> true
-let f3 = function `b -> true
-let f x = f1 x && f2 x
-
-let sub s ?:pos{=0} ?:len{=String.length s - pos} () =
-  String.sub s pos len
-
-let cCAMLtoTKpack_options w = function
-        `After v1 -> "-after"
-        | `Anchor v1 -> "-anchor"
-        | `Before v1 -> "-before"
-        | `Expand v1 -> "-expand"
-        | `Fill v1 -> "-fill"
-        | `In v1 -> "-in"
-        | `Ipadx v1 -> "-ipadx"
-        | `Ipady v1 -> "-ipady"
-        | `Padx v1 -> "-padx"
-        | `Pady v1 -> "-pady"
-        | `Side v1 -> "-side"
diff --git a/testlabl/valvirt.diffs b/testlabl/valvirt.diffs
deleted file mode 100644 (file)
index b8b17ef..0000000
+++ /dev/null
@@ -1,2349 +0,0 @@
-Index: utils/warnings.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/utils/warnings.ml,v
-retrieving revision 1.23
-diff -u -r1.23 warnings.ml
---- utils/warnings.ml  15 Sep 2005 03:09:26 -0000      1.23
-+++ utils/warnings.ml  5 Apr 2006 02:25:59 -0000
-@@ -26,7 +26,7 @@
-   | Statement_type                   (* S *)
-   | Unused_match                     (* U *)
-   | Unused_pat
--  | Hide_instance_variable of string (* V *)
-+  | Instance_variable_override of string (* V *)
-   | Illegal_backslash                (* X *)
-   | Implicit_public_methods of string list
-   | Unerasable_optional_argument
-@@ -54,7 +54,7 @@
-   | Statement_type ->           's'
-   | Unused_match
-   | Unused_pat ->               'u'
--  | Hide_instance_variable _ -> 'v'
-+  | Instance_variable_override _ -> 'v'
-   | Illegal_backslash
-   | Implicit_public_methods _
-   | Unerasable_optional_argument
-@@ -126,9 +126,9 @@
-       String.concat " "
-         ("the following methods are overriden \
-           by the inherited class:\n " :: slist)
--  | Hide_instance_variable lab ->
--      "this definition of an instance variable " ^ lab ^
--      " hides a previously\ndefined instance variable of the same name."
-+  | Instance_variable_override lab ->
-+      "the instance variable " ^ lab ^ " is overriden.\n" ^
-+      "The behaviour changed in ocaml 3.10 (previous behaviour was hiding.)"
-   | Partial_application ->
-       "this function application is partial,\n\
-        maybe some arguments are missing."
-Index: utils/warnings.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/utils/warnings.mli,v
-retrieving revision 1.16
-diff -u -r1.16 warnings.mli
---- utils/warnings.mli 15 Sep 2005 03:09:26 -0000      1.16
-+++ utils/warnings.mli 5 Apr 2006 02:25:59 -0000
-@@ -26,7 +26,7 @@
-   | Statement_type                   (* S *)
-   | Unused_match                     (* U *)
-   | Unused_pat
--  | Hide_instance_variable of string (* V *)
-+  | Instance_variable_override of string (* V *)
-   | Illegal_backslash                (* X *)
-   | Implicit_public_methods of string list
-   | Unerasable_optional_argument
-Index: parsing/parser.mly
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/parsing/parser.mly,v
-retrieving revision 1.123
-diff -u -r1.123 parser.mly
---- parsing/parser.mly 23 Mar 2005 03:08:37 -0000      1.123
-+++ parsing/parser.mly 5 Apr 2006 02:25:59 -0000
-@@ -623,6 +623,8 @@
-       { [] }
-   | class_fields INHERIT class_expr parent_binder
-       { Pcf_inher ($3, $4) :: $1 }
-+  | class_fields VAL virtual_value
-+      { Pcf_valvirt $3 :: $1 }
-   | class_fields VAL value
-       { Pcf_val $3 :: $1 }
-   | class_fields virtual_method
-@@ -638,14 +640,20 @@
-     AS LIDENT
-           { Some $2 }
-   | /* empty */
--          {None}
-+          { None }
-+;
-+virtual_value:
-+    MUTABLE VIRTUAL label COLON core_type
-+      { $3, Mutable, $5, symbol_rloc () }
-+  | VIRTUAL mutable_flag label COLON core_type
-+      { $3, $2, $5, symbol_rloc () }
- ;
- value:
--        mutable_flag label EQUAL seq_expr
--          { $2, $1, $4, symbol_rloc () }
--      | mutable_flag label type_constraint EQUAL seq_expr
--          { $2, $1, (let (t, t') = $3 in ghexp(Pexp_constraint($5, t, t'))),
--            symbol_rloc () }
-+    mutable_flag label EQUAL seq_expr
-+      { $2, $1, $4, symbol_rloc () }
-+  | mutable_flag label type_constraint EQUAL seq_expr
-+      { $2, $1, (let (t, t') = $3 in ghexp(Pexp_constraint($5, t, t'))),
-+        symbol_rloc () }
- ;
- virtual_method:
-     METHOD PRIVATE VIRTUAL label COLON poly_type
-@@ -711,8 +719,12 @@
-   | class_sig_fields CONSTRAINT constrain       { Pctf_cstr  $3 :: $1 }
- ;
- value_type:
--    mutable_flag label COLON core_type
--      { $2, $1, Some $4, symbol_rloc () }
-+    VIRTUAL mutable_flag label COLON core_type
-+      { $3, $2, Virtual, $5, symbol_rloc () }
-+  | MUTABLE virtual_flag label COLON core_type
-+      { $3, Mutable, $2, $5, symbol_rloc () }
-+  | label COLON core_type
-+      { $1, Immutable, Concrete, $3, symbol_rloc () }
- ;
- method_type:
-     METHOD private_flag label COLON poly_type
-Index: parsing/parsetree.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/parsing/parsetree.mli,v
-retrieving revision 1.42
-diff -u -r1.42 parsetree.mli
---- parsing/parsetree.mli      23 Mar 2005 03:08:37 -0000      1.42
-+++ parsing/parsetree.mli      5 Apr 2006 02:25:59 -0000
-@@ -152,7 +152,7 @@
- and class_type_field =
-     Pctf_inher of class_type
--  | Pctf_val   of (string * mutable_flag * core_type option * Location.t)
-+  | Pctf_val of (string * mutable_flag * virtual_flag * core_type * Location.t)
-   | Pctf_virt  of (string * private_flag * core_type * Location.t)
-   | Pctf_meth  of (string * private_flag * core_type * Location.t)
-   | Pctf_cstr  of (core_type * core_type * Location.t)
-@@ -179,6 +179,7 @@
- and class_field =
-     Pcf_inher of class_expr * string option
-+  | Pcf_valvirt of (string * mutable_flag * core_type * Location.t)
-   | Pcf_val   of (string * mutable_flag * expression * Location.t)
-   | Pcf_virt  of (string * private_flag * core_type * Location.t)
-   | Pcf_meth  of (string * private_flag * expression * Location.t)
-Index: parsing/printast.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/parsing/printast.ml,v
-retrieving revision 1.29
-diff -u -r1.29 printast.ml
---- parsing/printast.ml        4 Jan 2006 16:55:50 -0000       1.29
-+++ parsing/printast.ml        5 Apr 2006 02:25:59 -0000
-@@ -353,10 +353,11 @@
-   | Pctf_inher (ct) ->
-       line i ppf "Pctf_inher\n";
-       class_type i ppf ct;
--  | Pctf_val (s, mf, cto, loc) ->
-+  | Pctf_val (s, mf, vf, ct, loc) ->
-       line i ppf
--        "Pctf_val \"%s\" %a %a\n" s fmt_mutable_flag mf fmt_location loc;
--      option i core_type ppf cto;
-+        "Pctf_val \"%s\" %a %a %a\n" s
-+        fmt_mutable_flag mf fmt_virtual_flag vf fmt_location loc;
-+      core_type (i+1) ppf ct;
-   | Pctf_virt (s, pf, ct, loc) ->
-       line i ppf
-         "Pctf_virt \"%s\" %a %a\n" s fmt_private_flag pf fmt_location loc;
-@@ -428,6 +429,10 @@
-       line i ppf "Pcf_inher\n";
-       class_expr (i+1) ppf ce;
-       option (i+1) string ppf so;
-+  | Pcf_valvirt (s, mf, ct, loc) ->
-+      line i ppf
-+        "Pcf_valvirt \"%s\" %a %a\n" s fmt_mutable_flag mf fmt_location loc;
-+      core_type (i+1) ppf ct;
-   | Pcf_val (s, mf, e, loc) ->
-       line i ppf
-         "Pcf_val \"%s\" %a %a\n" s fmt_mutable_flag mf fmt_location loc;
-Index: typing/btype.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/btype.ml,v
-retrieving revision 1.38
-diff -u -r1.38 btype.ml
---- typing/btype.ml    4 Jan 2006 16:55:50 -0000       1.38
-+++ typing/btype.ml    5 Apr 2006 02:25:59 -0000
-@@ -330,7 +330,7 @@
- let unmark_class_signature sign =
-   unmark_type sign.cty_self;
--  Vars.iter (fun l (m, t) -> unmark_type t) sign.cty_vars
-+  Vars.iter (fun l (m, v, t) -> unmark_type t) sign.cty_vars
- let rec unmark_class_type =
-   function
-Index: typing/ctype.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/ctype.ml,v
-retrieving revision 1.200
-diff -u -r1.200 ctype.ml
---- typing/ctype.ml    6 Jan 2006 02:16:24 -0000       1.200
-+++ typing/ctype.ml    5 Apr 2006 02:25:59 -0000
-@@ -857,7 +857,7 @@
-         Tcty_signature
-           {cty_self = copy sign.cty_self;
-            cty_vars =
--             Vars.map (function (mut, ty) -> (mut, copy ty)) sign.cty_vars;
-+             Vars.map (function (m, v, ty) -> (m, v, copy ty)) sign.cty_vars;
-            cty_concr = sign.cty_concr;
-            cty_inher =
-              List.map (fun (p,tl) -> (p, List.map copy tl)) sign.cty_inher}
-@@ -2354,10 +2354,11 @@
-   | CM_Val_type_mismatch of string * (type_expr * type_expr) list
-   | CM_Meth_type_mismatch of string * (type_expr * type_expr) list
-   | CM_Non_mutable_value of string
-+  | CM_Non_concrete_value of string
-   | CM_Missing_value of string
-   | CM_Missing_method of string
-   | CM_Hide_public of string
--  | CM_Hide_virtual of string
-+  | CM_Hide_virtual of string * string
-   | CM_Public_method of string
-   | CM_Private_method of string
-   | CM_Virtual_method of string
-@@ -2390,8 +2391,8 @@
-            end)
-         pairs;
-       Vars.iter
--        (fun lab (mut, ty) ->
--           let (mut', ty') = Vars.find lab sign1.cty_vars in
-+        (fun lab (mut, v, ty) ->
-+           let (mut', v', ty') = Vars.find lab sign1.cty_vars in
-            try moregen true type_pairs env ty' ty with Unify trace ->
-              raise (Failure [CM_Val_type_mismatch
-                                 (lab, expand_trace env trace)]))
-@@ -2437,7 +2438,7 @@
-              end
-            in
-            if Concr.mem lab sign1.cty_concr then err
--           else CM_Hide_virtual lab::err)
-+           else CM_Hide_virtual ("method", lab) :: err)
-         miss1 []
-     in
-     let missing_method = List.map (fun (m, _, _) -> m) miss2 in
-@@ -2455,11 +2456,13 @@
-     in
-     let error =
-       Vars.fold
--        (fun lab (mut, ty) err ->
-+        (fun lab (mut, vr, ty) err ->
-           try
--            let (mut', ty') = Vars.find lab sign1.cty_vars in
-+            let (mut', vr', ty') = Vars.find lab sign1.cty_vars in
-             if mut = Mutable && mut' <> Mutable then
-               CM_Non_mutable_value lab::err
-+            else if vr = Concrete && vr' <> Concrete then
-+              CM_Non_concrete_value lab::err
-             else
-               err
-           with Not_found ->
-@@ -2467,6 +2470,14 @@
-         sign2.cty_vars error
-     in
-     let error =
-+      Vars.fold
-+        (fun lab (_,vr,_) err ->
-+          if vr = Virtual && not (Vars.mem lab sign2.cty_vars) then
-+            CM_Hide_virtual ("instance variable", lab) :: err
-+          else err)
-+        sign1.cty_vars error
-+    in
-+    let error =
-       List.fold_right
-         (fun e l ->
-            if List.mem e missing_method then l else CM_Virtual_method e::l)
-@@ -2516,8 +2527,8 @@
-              end)
-           pairs;
-         Vars.iter
--          (fun lab (mut, ty) ->
--             let (mut', ty') = Vars.find lab sign1.cty_vars in
-+          (fun lab (_, _, ty) ->
-+             let (_, _, ty') = Vars.find lab sign1.cty_vars in
-              try eqtype true type_pairs subst env ty ty' with Unify trace ->
-                raise (Failure [CM_Val_type_mismatch
-                                   (lab, expand_trace env trace)]))
-@@ -2554,7 +2565,7 @@
-           end
-         in
-         if Concr.mem lab sign1.cty_concr then err
--        else CM_Hide_virtual lab::err)
-+        else CM_Hide_virtual ("method", lab) :: err)
-       miss1 []
-   in
-   let missing_method = List.map (fun (m, _, _) -> m) miss2 in
-@@ -2578,11 +2589,13 @@
-   in
-   let error =
-     Vars.fold
--      (fun lab (mut, ty) err ->
-+      (fun lab (mut, vr, ty) err ->
-          try
--           let (mut', ty') = Vars.find lab sign1.cty_vars in
-+           let (mut', vr', ty') = Vars.find lab sign1.cty_vars in
-            if mut = Mutable && mut' <> Mutable then
-              CM_Non_mutable_value lab::err
-+           else if vr = Concrete && vr' <> Concrete then
-+             CM_Non_concrete_value lab::err
-            else
-              err
-          with Not_found ->
-@@ -2590,6 +2603,14 @@
-       sign2.cty_vars error
-   in
-   let error =
-+    Vars.fold
-+      (fun lab (_,vr,_) err ->
-+        if vr = Virtual && not (Vars.mem lab sign2.cty_vars) then
-+          CM_Hide_virtual ("instance variable", lab) :: err
-+        else err)
-+      sign1.cty_vars error
-+  in
-+  let error =
-     List.fold_right
-       (fun e l ->
-         if List.mem e missing_method then l else CM_Virtual_method e::l)
-@@ -3279,7 +3300,7 @@
- let nondep_class_signature env id sign =
-   { cty_self = nondep_type_rec env id sign.cty_self;
-     cty_vars =
--      Vars.map (function (m, t) -> (m, nondep_type_rec env id t))
-+      Vars.map (function (m, v, t) -> (m, v, nondep_type_rec env id t))
-         sign.cty_vars;
-     cty_concr = sign.cty_concr;
-     cty_inher =
-Index: typing/ctype.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/ctype.mli,v
-retrieving revision 1.53
-diff -u -r1.53 ctype.mli
---- typing/ctype.mli   9 Dec 2004 12:40:53 -0000       1.53
-+++ typing/ctype.mli   5 Apr 2006 02:25:59 -0000
-@@ -170,10 +170,11 @@
-   | CM_Val_type_mismatch of string * (type_expr * type_expr) list
-   | CM_Meth_type_mismatch of string * (type_expr * type_expr) list
-   | CM_Non_mutable_value of string
-+  | CM_Non_concrete_value of string
-   | CM_Missing_value of string
-   | CM_Missing_method of string
-   | CM_Hide_public of string
--  | CM_Hide_virtual of string
-+  | CM_Hide_virtual of string * string
-   | CM_Public_method of string
-   | CM_Private_method of string
-   | CM_Virtual_method of string
-Index: typing/includeclass.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/includeclass.ml,v
-retrieving revision 1.7
-diff -u -r1.7 includeclass.ml
---- typing/includeclass.ml     6 Mar 2000 22:11:57 -0000       1.7
-+++ typing/includeclass.ml     5 Apr 2006 02:25:59 -0000
-@@ -78,14 +78,17 @@
-   | CM_Non_mutable_value lab ->
-       fprintf ppf
-        "@[The non-mutable instance variable %s cannot become mutable@]" lab
-+  | CM_Non_concrete_value lab ->
-+      fprintf ppf
-+       "@[The virtual instance variable %s cannot become concrete@]" lab
-   | CM_Missing_value lab ->
-       fprintf ppf "@[The first class type has no instance variable %s@]" lab
-   | CM_Missing_method lab ->
-       fprintf ppf "@[The first class type has no method %s@]" lab
-   | CM_Hide_public lab ->
-      fprintf ppf "@[The public method %s cannot be hidden@]" lab
--  | CM_Hide_virtual lab ->
--      fprintf ppf "@[The virtual method %s cannot be hidden@]" lab
-+  | CM_Hide_virtual (k, lab) ->
-+      fprintf ppf "@[The virtual %s %s cannot be hidden@]" k lab
-   | CM_Public_method lab ->
-       fprintf ppf "@[The public method %s cannot become private" lab
-   | CM_Virtual_method lab ->
-Index: typing/oprint.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/oprint.ml,v
-retrieving revision 1.22
-diff -u -r1.22 oprint.ml
---- typing/oprint.ml   23 Mar 2005 03:08:37 -0000      1.22
-+++ typing/oprint.ml   5 Apr 2006 02:25:59 -0000
-@@ -291,8 +291,10 @@
-       fprintf ppf "@[<2>method %s%s%s :@ %a@]"
-         (if priv then "private " else "") (if virt then "virtual " else "")
-         name !out_type ty
--  | Ocsg_value (name, mut, ty) ->
--      fprintf ppf "@[<2>val %s%s :@ %a@]" (if mut then "mutable " else "")
-+  | Ocsg_value (name, mut, vr, ty) ->
-+      fprintf ppf "@[<2>val %s%s%s :@ %a@]"
-+        (if mut then "mutable " else "")
-+        (if vr then "virtual " else "")
-         name !out_type ty
- let out_class_type = ref print_out_class_type
-Index: typing/outcometree.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/outcometree.mli,v
-retrieving revision 1.14
-diff -u -r1.14 outcometree.mli
---- typing/outcometree.mli     23 Mar 2005 03:08:37 -0000      1.14
-+++ typing/outcometree.mli     5 Apr 2006 02:25:59 -0000
-@@ -71,7 +71,7 @@
- and out_class_sig_item =
-   | Ocsg_constraint of out_type * out_type
-   | Ocsg_method of string * bool * bool * out_type
--  | Ocsg_value of string * bool * out_type
-+  | Ocsg_value of string * bool * bool * out_type
- type out_module_type =
-   | Omty_abstract
-Index: typing/printtyp.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/printtyp.ml,v
-retrieving revision 1.140
-diff -u -r1.140 printtyp.ml
---- typing/printtyp.ml 4 Jan 2006 16:55:50 -0000       1.140
-+++ typing/printtyp.ml 5 Apr 2006 02:26:00 -0000
-@@ -650,7 +650,7 @@
-         Ctype.flatten_fields (Ctype.object_fields sign.cty_self)
-       in
-       List.iter (fun met -> mark_loops (method_type met)) fields;
--      Vars.iter (fun _ (_, ty) -> mark_loops ty) sign.cty_vars
-+      Vars.iter (fun _ (_, _, ty) -> mark_loops ty) sign.cty_vars
-   | Tcty_fun (_, ty, cty) ->
-       mark_loops ty;
-       prepare_class_type params cty
-@@ -682,13 +682,15 @@
-           csil (tree_of_constraints params)
-       in
-       let all_vars =
--        Vars.fold (fun l (m, t) all -> (l, m, t) :: all) sign.cty_vars [] in
-+        Vars.fold (fun l (m, v, t) all -> (l, m, v, t) :: all) sign.cty_vars []
-+      in
-       (* Consequence of PR#3607: order of Map.fold has changed! *)
-       let all_vars = List.rev all_vars in
-       let csil =
-         List.fold_left
--          (fun csil (l, m, t) ->
--             Ocsg_value (l, m = Mutable, tree_of_typexp sch t) :: csil)
-+          (fun csil (l, m, v, t) ->
-+            Ocsg_value (l, m = Mutable, v = Virtual, tree_of_typexp sch t)
-+            :: csil)
-           csil all_vars
-       in
-       let csil =
-@@ -763,7 +765,9 @@
-     List.exists
-       (fun (lab, _, ty) ->
-          not (lab = dummy_method || Concr.mem lab sign.cty_concr))
--      fields in
-+      fields
-+    || Vars.fold (fun _ (_,vr,_) b -> vr = Virtual || b) sign.cty_vars false
-+  in
-   Osig_class_type
-     (virt, Ident.name id,
-Index: typing/subst.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/subst.ml,v
-retrieving revision 1.49
-diff -u -r1.49 subst.ml
---- typing/subst.ml    4 Jan 2006 16:55:50 -0000       1.49
-+++ typing/subst.ml    5 Apr 2006 02:26:00 -0000
-@@ -178,7 +178,8 @@
- let class_signature s sign =
-   { cty_self = typexp s sign.cty_self;
--    cty_vars = Vars.map (function (m, t) -> (m, typexp s t)) sign.cty_vars;
-+    cty_vars =
-+      Vars.map (function (m, v, t) -> (m, v, typexp s t)) sign.cty_vars;
-     cty_concr = sign.cty_concr;
-     cty_inher =
-       List.map (fun (p, tl) -> (type_path s p, List.map (typexp s) tl))
-Index: typing/typeclass.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typeclass.ml,v
-retrieving revision 1.85
-diff -u -r1.85 typeclass.ml
---- typing/typeclass.ml        22 Jul 2005 06:42:36 -0000      1.85
-+++ typing/typeclass.ml        5 Apr 2006 02:26:00 -0000
-@@ -24,7 +24,7 @@
- type error =
-     Unconsistent_constraint of (type_expr * type_expr) list
--  | Method_type_mismatch of string * (type_expr * type_expr) list
-+  | Field_type_mismatch of string * string * (type_expr * type_expr) list
-   | Structure_expected of class_type
-   | Cannot_apply of class_type
-   | Apply_wrong_label of label
-@@ -36,7 +36,7 @@
-   | Unbound_class_type_2 of Longident.t
-   | Abbrev_type_clash of type_expr * type_expr * type_expr
-   | Constructor_type_mismatch of string * (type_expr * type_expr) list
--  | Virtual_class of bool * string list
-+  | Virtual_class of bool * string list * string list
-   | Parameter_arity_mismatch of Longident.t * int * int
-   | Parameter_mismatch of (type_expr * type_expr) list
-   | Bad_parameters of Ident.t * type_expr * type_expr
-@@ -49,6 +49,7 @@
-   | Non_collapsable_conjunction of
-       Ident.t * Types.class_declaration * (type_expr * type_expr) list
-   | Final_self_clash of (type_expr * type_expr) list
-+  | Mutability_mismatch of string * mutable_flag
- exception Error of Location.t * error
-@@ -90,7 +91,7 @@
-       generalize_class_type cty
-   | Tcty_signature {cty_self = sty; cty_vars = vars; cty_inher = inher} ->
-       Ctype.generalize sty;
--      Vars.iter (fun _ (_, ty) -> Ctype.generalize ty) vars;
-+      Vars.iter (fun _ (_, _, ty) -> Ctype.generalize ty) vars;
-       List.iter (fun (_,tl) -> List.iter Ctype.generalize tl) inher
-   | Tcty_fun (_, ty, cty) ->
-       Ctype.generalize ty;
-@@ -152,7 +153,7 @@
-   | Tcty_signature sign ->
-       Ctype.closed_schema sign.cty_self
-         &&
--      Vars.fold (fun _ (_, ty) cc -> Ctype.closed_schema ty && cc)
-+      Vars.fold (fun _ (_, _, ty) cc -> Ctype.closed_schema ty && cc)
-         sign.cty_vars
-         true
-   | Tcty_fun (_, ty, cty) ->
-@@ -172,7 +173,7 @@
-       limited_generalize rv cty
-   | Tcty_signature sign ->
-       Ctype.limited_generalize rv sign.cty_self;
--      Vars.iter (fun _ (_, ty) -> Ctype.limited_generalize rv ty)
-+      Vars.iter (fun _ (_, _, ty) -> Ctype.limited_generalize rv ty)
-         sign.cty_vars;
-       List.iter (fun (_, tl) -> List.iter (Ctype.limited_generalize rv) tl)
-         sign.cty_inher
-@@ -201,11 +202,25 @@
-    Env.add_value id {val_type = ty; val_kind = Val_unbound} par_env)
- (* Enter an instance variable in the environment *)
--let enter_val cl_num vars lab mut ty val_env met_env par_env =
--  let (id, val_env, met_env, par_env) as result =
--    enter_met_env lab (Val_ivar (mut, cl_num)) ty val_env met_env par_env
-+let enter_val cl_num vars inh lab mut virt ty val_env met_env par_env loc =
-+  let (id, virt) =
-+    try
-+      let (id, mut', virt', ty') = Vars.find lab !vars in
-+      if mut' <> mut then raise (Error(loc, Mutability_mismatch(lab, mut)));
-+      Ctype.unify val_env (Ctype.instance ty) (Ctype.instance ty');
-+      (if not inh then Some id else None),
-+      (if virt' = Concrete then virt' else virt)
-+    with
-+      Ctype.Unify tr ->
-+        raise (Error(loc, Field_type_mismatch("instance variable", lab, tr)))
-+    | Not_found -> None, virt
-+  in
-+  let (id, _, _, _) as result =
-+    match id with Some id -> (id, val_env, met_env, par_env)
-+    | None ->
-+        enter_met_env lab (Val_ivar (mut, cl_num)) ty val_env met_env par_env
-   in
--  vars := Vars.add lab (id, mut, ty) !vars;
-+  vars := Vars.add lab (id, mut, virt, ty) !vars;
-   result
- let inheritance self_type env concr_meths warn_meths loc parent =
-@@ -218,7 +233,7 @@
-       with Ctype.Unify trace ->
-         match trace with
-           _::_::_::({desc = Tfield(n, _, _, _)}, _)::rem ->
--            raise(Error(loc, Method_type_mismatch (n, rem)))
-+            raise(Error(loc, Field_type_mismatch ("method", n, rem)))
-         | _ ->
-             assert false
-       end;
-@@ -243,7 +258,7 @@
-   in
-   let ty = transl_simple_type val_env false sty in
-   try Ctype.unify val_env ty ty' with Ctype.Unify trace ->
--    raise(Error(loc, Method_type_mismatch (lab, trace)))
-+    raise(Error(loc, Field_type_mismatch ("method", lab, trace)))
- let delayed_meth_specs = ref []
-@@ -253,7 +268,7 @@
-   in
-   let unif ty =
-     try Ctype.unify val_env ty ty' with Ctype.Unify trace ->
--      raise(Error(loc, Method_type_mismatch (lab, trace)))
-+      raise(Error(loc, Field_type_mismatch ("method", lab, trace)))
-   in
-   match sty.ptyp_desc, priv with
-     Ptyp_poly ([],sty), Public ->
-@@ -279,6 +294,15 @@
- (*******************************)
-+let add_val env loc lab (mut, virt, ty) val_sig = 
-+  let virt =
-+    try
-+      let (mut', virt', ty') = Vars.find lab val_sig in
-+      if virt' = Concrete then virt' else virt
-+    with Not_found -> virt
-+  in
-+  Vars.add lab (mut, virt, ty) val_sig
-+
- let rec class_type_field env self_type meths (val_sig, concr_meths, inher) =
-   function
-     Pctf_inher sparent ->
-@@ -293,25 +317,12 @@
-           parent
-       in
-       let val_sig =
--        Vars.fold
--          (fun lab (mut, ty) val_sig -> Vars.add lab (mut, ty) val_sig)
--          cl_sig.cty_vars val_sig
--      in
-+        Vars.fold (add_val env sparent.pcty_loc) cl_sig.cty_vars val_sig in
-       (val_sig, concr_meths, inher)
--  | Pctf_val (lab, mut, sty_opt, loc) ->
--      let (mut, ty) =
--        match sty_opt with
--          None     ->
--            let (mut', ty) =
--              try Vars.find lab val_sig with Not_found ->
--                raise(Error(loc, Unbound_val lab))
--            in
--            (if mut = Mutable then mut' else Immutable), ty
--        | Some sty ->
--            mut, transl_simple_type env false sty
--      in
--      (Vars.add lab (mut, ty) val_sig, concr_meths, inher)
-+  | Pctf_val (lab, mut, virt, sty, loc) ->
-+      let ty = transl_simple_type env false sty in
-+      (add_val env loc lab (mut, virt, ty) val_sig, concr_meths, inher)
-   | Pctf_virt (lab, priv, sty, loc) ->
-       declare_method env meths self_type lab priv sty loc;
-@@ -397,7 +408,7 @@
- let rec class_field cl_num self_type meths vars
-     (val_env, met_env, par_env, fields, concr_meths, warn_meths,
--     inh_vals, inher) =
-+     warn_vals, inher) =
-   function
-     Pcf_inher (sparent, super) ->
-       let parent = class_expr cl_num val_env par_env sparent in
-@@ -411,18 +422,23 @@
-           parent.cl_type
-       in
-       (* Variables *)
--      let (val_env, met_env, par_env, inh_vars, inh_vals) =
-+      let (val_env, met_env, par_env, inh_vars, warn_vals) =
-         Vars.fold
--          (fun lab (mut, ty) (val_env, met_env, par_env, inh_vars, inh_vals) ->
-+          (fun lab info (val_env, met_env, par_env, inh_vars, warn_vals) ->
-+             let mut, vr, ty = info in
-              let (id, val_env, met_env, par_env) =
--               enter_val cl_num vars lab mut ty val_env met_env par_env
-+               enter_val cl_num vars true lab mut vr ty val_env met_env par_env
-+                 sparent.pcl_loc
-              in
--             if StringSet.mem lab inh_vals then
--               Location.prerr_warning sparent.pcl_loc
--                 (Warnings.Hide_instance_variable lab);
--             (val_env, met_env, par_env, (lab, id) :: inh_vars,
--              StringSet.add lab inh_vals))
--          cl_sig.cty_vars (val_env, met_env, par_env, [], inh_vals)
-+             let warn_vals =
-+               if vr = Virtual then warn_vals else
-+               if StringSet.mem lab warn_vals then
-+                 (Location.prerr_warning sparent.pcl_loc
-+                   (Warnings.Instance_variable_override lab); warn_vals)
-+               else StringSet.add lab warn_vals
-+             in
-+             (val_env, met_env, par_env, (lab, id) :: inh_vars, warn_vals))
-+          cl_sig.cty_vars (val_env, met_env, par_env, [], warn_vals)
-       in
-       (* Inherited concrete methods *)
-       let inh_meths = 
-@@ -443,11 +459,26 @@
-       in
-       (val_env, met_env, par_env,
-        lazy(Cf_inher (parent, inh_vars, inh_meths))::fields,
--       concr_meths, warn_meths, inh_vals, inher)
-+       concr_meths, warn_meths, warn_vals, inher)
-+
-+  | Pcf_valvirt (lab, mut, styp, loc) ->
-+      if !Clflags.principal then Ctype.begin_def ();
-+      let ty = Typetexp.transl_simple_type val_env false styp in
-+      if !Clflags.principal then begin
-+        Ctype.end_def ();
-+        Ctype.generalize_structure ty
-+      end;
-+      let (id, val_env, met_env', par_env) =
-+        enter_val cl_num vars false lab mut Virtual ty
-+          val_env met_env par_env loc
-+      in
-+      (val_env, met_env', par_env,
-+       lazy(Cf_val (lab, id, None, met_env' == met_env)) :: fields,
-+       concr_meths, warn_meths, StringSet.remove lab warn_vals, inher)
-   | Pcf_val (lab, mut, sexp, loc) ->
--      if StringSet.mem lab inh_vals then
--        Location.prerr_warning loc (Warnings.Hide_instance_variable lab);
-+      if StringSet.mem lab warn_vals then
-+        Location.prerr_warning loc (Warnings.Instance_variable_override lab);
-       if !Clflags.principal then Ctype.begin_def ();
-       let exp =
-         try type_exp val_env sexp with Ctype.Unify [(ty, _)] ->
-@@ -457,17 +488,19 @@
-         Ctype.end_def ();
-         Ctype.generalize_structure exp.exp_type
-       end;
--      let (id, val_env, met_env, par_env) =
--        enter_val cl_num vars lab mut exp.exp_type val_env met_env par_env
--      in
--      (val_env, met_env, par_env, lazy(Cf_val (lab, id, exp)) :: fields,
--       concr_meths, warn_meths, inh_vals, inher)
-+      let (id, val_env, met_env', par_env) =
-+        enter_val cl_num vars false lab mut Concrete exp.exp_type
-+          val_env met_env par_env loc
-+      in
-+      (val_env, met_env', par_env,
-+       lazy(Cf_val (lab, id, Some exp, met_env' == met_env)) :: fields,
-+       concr_meths, warn_meths, StringSet.add lab warn_vals, inher)
-   | Pcf_virt (lab, priv, sty, loc) ->
-       virtual_method val_env meths self_type lab priv sty loc;
-       let warn_meths = Concr.remove lab warn_meths in
-       (val_env, met_env, par_env, fields, concr_meths, warn_meths,
--       inh_vals, inher)
-+       warn_vals, inher)
-   | Pcf_meth (lab, priv, expr, loc)  ->
-       let (_, ty) =
-@@ -493,7 +526,7 @@
-           end
-       | _ -> assert false
-       with Ctype.Unify trace ->
--        raise(Error(loc, Method_type_mismatch (lab, trace)))
-+        raise(Error(loc, Field_type_mismatch ("method", lab, trace)))
-       end;
-       let meth_expr = make_method cl_num expr in
-       (* backup variables for Pexp_override *)
-@@ -510,12 +543,12 @@
-           Cf_meth (lab, texp)
-         end in
-       (val_env, met_env, par_env, field::fields,
--       Concr.add lab concr_meths, Concr.add lab warn_meths, inh_vals, inher)
-+       Concr.add lab concr_meths, Concr.add lab warn_meths, warn_vals, inher)
-   | Pcf_cstr (sty, sty', loc) ->
-       type_constraint val_env sty sty' loc;
-       (val_env, met_env, par_env, fields, concr_meths, warn_meths,
--       inh_vals, inher)
-+       warn_vals, inher)
-   | Pcf_let (rec_flag, sdefs, loc) ->
-       let (defs, val_env) =
-@@ -545,7 +578,7 @@
-           ([], met_env, par_env)
-       in
-       (val_env, met_env, par_env, lazy(Cf_let(rec_flag, defs, vals))::fields,
--       concr_meths, warn_meths, inh_vals, inher)
-+       concr_meths, warn_meths, warn_vals, inher)
-   | Pcf_init expr ->
-       let expr = make_method cl_num expr in
-@@ -562,7 +595,7 @@
-           Cf_init texp
-         end in
-       (val_env, met_env, par_env, field::fields,
--       concr_meths, warn_meths, inh_vals, inher)
-+       concr_meths, warn_meths, warn_vals, inher)
- and class_structure cl_num final val_env met_env loc (spat, str) =
-   (* Environment for substructures *)
-@@ -616,7 +649,7 @@
-   Ctype.unify val_env self_type (Ctype.newvar ());
-   let sign =
-     {cty_self = public_self;
--     cty_vars = Vars.map (function (id, mut, ty) -> (mut, ty)) !vars;
-+     cty_vars = Vars.map (fun (id, mut, vr, ty) -> (mut, vr, ty)) !vars;
-      cty_concr = concr_meths;
-      cty_inher = inher} in
-   let methods = get_methods self_type in
-@@ -628,7 +661,11 @@
-        be modified after this point *)
-     Ctype.close_object self_type;
-     let mets = virtual_methods {sign with cty_self = self_type} in
--    if mets <> [] then raise(Error(loc, Virtual_class(true, mets)));
-+    let vals =
-+      Vars.fold
-+        (fun name (mut, vr, ty) l -> if vr = Virtual then name :: l else l)
-+        sign.cty_vars [] in
-+    if mets <> [] then raise(Error(loc, Virtual_class(true, mets, vals)));
-     let self_methods =
-       List.fold_right
-         (fun (lab,kind,ty) rem ->
-@@ -1135,9 +1172,14 @@
-   in
-   if cl.pci_virt = Concrete then begin
--    match virtual_methods (Ctype.signature_of_class_type typ) with
--      []   -> ()
--    | mets -> raise(Error(cl.pci_loc, Virtual_class(define_class, mets)))
-+    let sign = Ctype.signature_of_class_type typ in
-+    let mets = virtual_methods sign in
-+    let vals =
-+      Vars.fold
-+        (fun name (mut, vr, ty) l -> if vr = Virtual then name :: l else l)
-+        sign.cty_vars [] in
-+    if mets <> []  || vals <> [] then
-+      raise(Error(cl.pci_loc, Virtual_class(true, mets, vals)));
-   end;
-   (* Misc. *)
-@@ -1400,10 +1442,10 @@
-       Printtyp.report_unification_error ppf trace
-         (fun ppf -> fprintf ppf "Type")
-         (fun ppf -> fprintf ppf "is not compatible with type")
--  | Method_type_mismatch (m, trace) ->
-+  | Field_type_mismatch (k, m, trace) ->
-       Printtyp.report_unification_error ppf trace
-         (function ppf ->
--           fprintf ppf "The method %s@ has type" m)
-+           fprintf ppf "The %s %s@ has type" k m)
-         (function ppf ->
-            fprintf ppf "but is expected to have type")
-   | Structure_expected clty ->
-@@ -1451,15 +1493,20 @@
-            fprintf ppf "The expression \"new %s\" has type" c)
-         (function ppf ->
-            fprintf ppf "but is used with type")
--  | Virtual_class (cl, mets) ->
-+  | Virtual_class (cl, mets, vals) ->
-       let print_mets ppf mets =
-         List.iter (function met -> fprintf ppf "@ %s" met) mets in
-       let cl_mark = if cl then "" else " type" in
-+      let missings =
-+        match mets, vals with
-+          [], _ -> "variables"
-+        | _, [] -> "methods"
-+        | _ -> "methods and variables"
-+      in
-       fprintf ppf
--        "@[This class%s should be virtual@ \
--           @[<2>The following methods are undefined :%a@]
--         @]"
--        cl_mark print_mets mets
-+        "@[This class%s should be virtual.@ \
-+           @[<2>The following %s are undefined :%a@]@]"
-+          cl_mark missings print_mets (mets @ vals)
-   | Parameter_arity_mismatch(lid, expected, provided) ->
-       fprintf ppf
-         "@[The class constructor %a@ expects %i type argument(s),@ \
-@@ -1532,3 +1579,10 @@
-            fprintf ppf "This object is expected to have type")
-         (function ppf ->
-            fprintf ppf "but has actually type")
-+  | Mutability_mismatch (lab, mut) ->
-+      let mut1, mut2 =
-+        if mut = Immutable then "mutable", "immutable"
-+        else "immutable", "mutable" in
-+      fprintf ppf
-+        "@[The instance variable is %s,@ it cannot be redefined as %s@]"
-+        mut1 mut2
-Index: typing/typeclass.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typeclass.mli,v
-retrieving revision 1.18
-diff -u -r1.18 typeclass.mli
---- typing/typeclass.mli       1 Dec 2003 00:32:11 -0000       1.18
-+++ typing/typeclass.mli       5 Apr 2006 02:26:00 -0000
-@@ -49,7 +49,7 @@
- type error =
-     Unconsistent_constraint of (type_expr * type_expr) list
--  | Method_type_mismatch of string * (type_expr * type_expr) list
-+  | Field_type_mismatch of string * string * (type_expr * type_expr) list
-   | Structure_expected of class_type
-   | Cannot_apply of class_type
-   | Apply_wrong_label of label
-@@ -61,7 +61,7 @@
-   | Unbound_class_type_2 of Longident.t
-   | Abbrev_type_clash of type_expr * type_expr * type_expr
-   | Constructor_type_mismatch of string * (type_expr * type_expr) list
--  | Virtual_class of bool * string list
-+  | Virtual_class of bool * string list * string list
-   | Parameter_arity_mismatch of Longident.t * int * int
-   | Parameter_mismatch of (type_expr * type_expr) list
-   | Bad_parameters of Ident.t * type_expr * type_expr
-@@ -74,6 +74,7 @@
-   | Non_collapsable_conjunction of
-       Ident.t * Types.class_declaration * (type_expr * type_expr) list
-   | Final_self_clash of (type_expr * type_expr) list
-+  | Mutability_mismatch of string * mutable_flag
- exception Error of Location.t * error
-Index: typing/typecore.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typecore.ml,v
-retrieving revision 1.178
-diff -u -r1.178 typecore.ml
---- typing/typecore.ml 6 Jan 2006 02:25:37 -0000       1.178
-+++ typing/typecore.ml 5 Apr 2006 02:26:00 -0000
-@@ -611,11 +611,11 @@
-       List.for_all
-         (function
-             Cf_meth _ -> true
--          | Cf_val (_,_,e) -> incr count; is_nonexpansive e
-+          | Cf_val (_,_,e,_) -> incr count; is_nonexpansive_opt e
-           | Cf_init e -> is_nonexpansive e
-           | Cf_inher _ | Cf_let _ -> false)
-         fields &&
--      Vars.fold (fun _ (mut,_) b -> decr count; b && mut = Immutable)
-+      Vars.fold (fun _ (mut,_,_) b -> decr count; b && mut = Immutable)
-         vars true &&
-       !count = 0
-   | _ -> false
-@@ -1356,7 +1356,7 @@
-         (path_self, _) ->
-           let type_override (lab, snewval) =
-             begin try
--              let (id, _, ty) = Vars.find lab !vars in
-+              let (id, _, _, ty) = Vars.find lab !vars in
-               (Path.Pident id, type_expect env snewval (instance ty))
-             with
-               Not_found ->
-Index: typing/typecore.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typecore.mli,v
-retrieving revision 1.37
-diff -u -r1.37 typecore.mli
---- typing/typecore.mli        4 Mar 2005 14:51:31 -0000       1.37
-+++ typing/typecore.mli        5 Apr 2006 02:26:00 -0000
-@@ -38,7 +38,8 @@
-         string -> type_expr -> Env.t -> Env.t -> Env.t -> Parsetree.pattern ->
-         Typedtree.pattern *
-         (Ident.t * type_expr) Meths.t ref *
--        (Ident.t * Asttypes.mutable_flag * type_expr) Vars.t ref *
-+        (Ident.t * Asttypes.mutable_flag * Asttypes.virtual_flag * type_expr)
-+            Vars.t ref *
-         Env.t * Env.t * Env.t
- val type_expect:
-         ?in_function:(Location.t * type_expr) ->
-Index: typing/typedtree.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typedtree.ml,v
-retrieving revision 1.36
-diff -u -r1.36 typedtree.ml
---- typing/typedtree.ml        25 Nov 2003 09:20:43 -0000      1.36
-+++ typing/typedtree.ml        5 Apr 2006 02:26:00 -0000
-@@ -106,7 +106,7 @@
- and class_field =
-     Cf_inher of class_expr * (string * Ident.t) list * (string * Ident.t) list
--  | Cf_val of string * Ident.t * expression
-+  | Cf_val of string * Ident.t * expression option * bool
-   | Cf_meth of string * expression
-   | Cf_let of rec_flag * (pattern * expression) list *
-               (Ident.t * expression) list
-@@ -140,7 +140,8 @@
-   | Tstr_recmodule of (Ident.t * module_expr) list
-   | Tstr_modtype of Ident.t * module_type
-   | Tstr_open of Path.t
--  | Tstr_class of (Ident.t * int * string list * class_expr) list
-+  | Tstr_class of
-+      (Ident.t * int * string list * class_expr * virtual_flag) list
-   | Tstr_cltype of (Ident.t * cltype_declaration) list
-   | Tstr_include of module_expr * Ident.t list
-Index: typing/typedtree.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typedtree.mli,v
-retrieving revision 1.34
-diff -u -r1.34 typedtree.mli
---- typing/typedtree.mli       25 Nov 2003 09:20:43 -0000      1.34
-+++ typing/typedtree.mli       5 Apr 2006 02:26:00 -0000
-@@ -107,7 +107,8 @@
- and class_field =
-     Cf_inher of class_expr * (string * Ident.t) list * (string * Ident.t) list
-     (* Inherited instance variables and concrete methods *)
--  | Cf_val of string * Ident.t * expression
-+  | Cf_val of string * Ident.t * expression option * bool
-+        (* None = virtual, true = override *)
-   | Cf_meth of string * expression
-   | Cf_let of rec_flag * (pattern * expression) list *
-               (Ident.t * expression) list
-@@ -141,7 +142,8 @@
-   | Tstr_recmodule of (Ident.t * module_expr) list
-   | Tstr_modtype of Ident.t * module_type
-   | Tstr_open of Path.t
--  | Tstr_class of (Ident.t * int * string list * class_expr) list
-+  | Tstr_class of
-+      (Ident.t * int * string list * class_expr * virtual_flag) list
-   | Tstr_cltype of (Ident.t * cltype_declaration) list
-   | Tstr_include of module_expr * Ident.t list
-Index: typing/typemod.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/typemod.ml,v
-retrieving revision 1.73
-diff -u -r1.73 typemod.ml
---- typing/typemod.ml  8 Aug 2005 09:41:51 -0000       1.73
-+++ typing/typemod.ml  5 Apr 2006 02:26:00 -0000
-@@ -17,6 +17,7 @@
- open Misc
- open Longident
- open Path
-+open Asttypes
- open Parsetree
- open Types
- open Typedtree
-@@ -667,8 +668,9 @@
-         let (classes, new_env) = Typeclass.class_declarations env cl in
-         let (str_rem, sig_rem, final_env) = type_struct new_env srem in
-         (Tstr_class
--           (List.map (fun (i, _,_,_,_,_,_,_, s, m, c) ->
--              (i, s, m, c)) classes) ::
-+           (List.map (fun (i, d, _,_,_,_,_,_, s, m, c) ->
-+              let vf = if d.cty_new = None then Virtual else Concrete in
-+              (i, s, m, c, vf)) classes) ::
-          Tstr_cltype
-            (List.map (fun (_,_, i, d, _,_,_,_,_,_,_) -> (i, d)) classes) ::
-          Tstr_type
-Index: typing/types.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/types.ml,v
-retrieving revision 1.25
-diff -u -r1.25 types.ml
---- typing/types.ml    9 Dec 2004 12:40:53 -0000       1.25
-+++ typing/types.ml    5 Apr 2006 02:26:00 -0000
-@@ -90,7 +90,8 @@
-   | Val_prim of Primitive.description   (* Primitive *)
-   | Val_ivar of mutable_flag * string   (* Instance variable (mutable ?) *)
-   | Val_self of (Ident.t * type_expr) Meths.t ref *
--                (Ident.t * Asttypes.mutable_flag * type_expr) Vars.t ref *
-+                (Ident.t * Asttypes.mutable_flag *
-+                 Asttypes.virtual_flag * type_expr) Vars.t ref *
-                 string * type_expr
-                                         (* Self *)
-   | Val_anc of (string * Ident.t) list * string
-@@ -156,7 +157,8 @@
- and class_signature =
-   { cty_self: type_expr;
--    cty_vars: (Asttypes.mutable_flag * type_expr) Vars.t;
-+    cty_vars:
-+      (Asttypes.mutable_flag * Asttypes.virtual_flag * type_expr) Vars.t;
-     cty_concr: Concr.t;
-     cty_inher: (Path.t * type_expr list) list }
-Index: typing/types.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/types.mli,v
-retrieving revision 1.25
-diff -u -r1.25 types.mli
---- typing/types.mli   9 Dec 2004 12:40:53 -0000       1.25
-+++ typing/types.mli   5 Apr 2006 02:26:00 -0000
-@@ -91,7 +91,8 @@
-   | Val_prim of Primitive.description   (* Primitive *)
-   | Val_ivar of mutable_flag * string   (* Instance variable (mutable ?) *)
-   | Val_self of (Ident.t * type_expr) Meths.t ref *
--                (Ident.t * Asttypes.mutable_flag * type_expr) Vars.t ref *
-+                (Ident.t * Asttypes.mutable_flag *
-+                 Asttypes.virtual_flag * type_expr) Vars.t ref *
-                 string * type_expr
-                                         (* Self *)
-   | Val_anc of (string * Ident.t) list * string
-@@ -158,7 +159,8 @@
- and class_signature =
-   { cty_self: type_expr;
--    cty_vars: (Asttypes.mutable_flag * type_expr) Vars.t;
-+    cty_vars:
-+      (Asttypes.mutable_flag * Asttypes.virtual_flag * type_expr) Vars.t;
-     cty_concr: Concr.t;
-     cty_inher: (Path.t * type_expr list) list }
-Index: typing/unused_var.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/typing/unused_var.ml,v
-retrieving revision 1.5
-diff -u -r1.5 unused_var.ml
---- typing/unused_var.ml       4 Jan 2006 16:55:50 -0000       1.5
-+++ typing/unused_var.ml       5 Apr 2006 02:26:00 -0000
-@@ -245,7 +245,7 @@
-   match cf with
-   | Pcf_inher (ce, _) -> class_expr ppf tbl ce;
-   | Pcf_val (_, _, e, _) -> expression ppf tbl e;
--  | Pcf_virt _ -> ()
-+  | Pcf_virt _ | Pcf_valvirt _ -> ()
-   | Pcf_meth (_, _, e, _) -> expression ppf tbl e;
-   | Pcf_cstr _ -> ()
-   | Pcf_let (recflag, pel, _) -> let_pel ppf tbl recflag pel None;
-Index: bytecomp/translclass.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/translclass.ml,v
-retrieving revision 1.38
-diff -u -r1.38 translclass.ml
---- bytecomp/translclass.ml    13 Aug 2005 20:59:37 -0000      1.38
-+++ bytecomp/translclass.ml    5 Apr 2006 02:26:00 -0000
-@@ -133,10 +133,10 @@
-                        (fun _ -> lambda_unit) cl
-                    in
-                    (inh_init, lsequence obj_init' obj_init, true)
--               | Cf_val (_, id, exp) ->
-+               | Cf_val (_, id, Some exp, _) ->
-                    (inh_init, lsequence (set_inst_var obj id exp) obj_init,
-                     has_init)
--               | Cf_meth _ ->
-+               | Cf_meth _ | Cf_val _ ->
-                    (inh_init, obj_init, has_init)
-                | Cf_init _ ->
-                    (inh_init, obj_init, true)
-@@ -213,27 +213,17 @@
-   if len < 2 && nvals = 0 then Meths.fold (bind_method tbl) meths cl_init else
-   if len = 0 && nvals < 2 then transl_vals tbl true vals cl_init else
-   let ids = Ident.create "ids" in
--  let i = ref len in
--  let getter, names, cl_init =
--    match vals with [] -> "get_method_labels", [], cl_init
--    | (_,id0)::vals' ->
--        incr i;
--        let i = ref (List.length vals) in
--        "new_methods_variables",
--        [transl_meth_list (List.map fst vals)],
--        Llet(Strict, id0, lfield ids 0,
--           List.fold_right
--             (fun (name,id) rem ->
--               decr i;
--                 Llet(Alias, id, Lprim(Poffsetint !i, [Lvar id0]), rem))
--             vals' cl_init)
-+  let i = ref (len + nvals) in
-+  let getter, names =
-+    if nvals = 0 then "get_method_labels", [] else
-+    "new_methods_variables", [transl_meth_list (List.map fst vals)]
-   in
-   Llet(StrictOpt, ids,
-        Lapply (oo_prim getter,
-                [Lvar tbl; transl_meth_list (List.map fst methl)] @ names),
-        List.fold_right
-          (fun (lab,id) lam -> decr i; Llet(StrictOpt, id, lfield ids !i, lam))
--         methl cl_init)
-+         (methl @ vals) cl_init)
- let output_methods tbl methods lam =
-   match methods with
-@@ -283,8 +273,9 @@
-                     (vals, meths_super cla str.cl_meths meths)
-                     inh_init cl_init msubst top cl in
-                 (inh_init, cl_init, [], values)
--            | Cf_val (name, id, exp) ->
--                (inh_init, cl_init, methods, (name, id)::values)
-+            | Cf_val (name, id, exp, over) ->
-+                let values = if over then values else (name, id) :: values in
-+                (inh_init, cl_init, methods, values)
-             | Cf_meth (name, exp) ->
-                 let met_code = msubst true (transl_exp exp) in
-                 let met_code =
-@@ -342,27 +333,24 @@
-         assert (Path.same path path');
-         let lpath = transl_path path in
-           let inh = Ident.create "inh"
--          and inh_vals = Ident.create "vals"
--          and inh_meths = Ident.create "meths"
-+          and ofs = List.length vals + 1
-           and valids, methids = super in
-           let cl_init =
-             List.fold_left
-               (fun init (nm, id, _) ->
--                Llet(StrictOpt, id, lfield inh_meths (index nm concr_meths),
-+                Llet(StrictOpt, id, lfield inh (index nm concr_meths + ofs),
-                      init))
-               cl_init methids in
-           let cl_init =
-             List.fold_left
-               (fun init (nm, id) ->
--                Llet(StrictOpt, id, lfield inh_vals (index nm vals), init))
-+                Llet(StrictOpt, id, lfield inh (index nm vals + 1), init))
-               cl_init valids in
-           (inh_init,
-            Llet (Strict, inh, 
-                Lapply(oo_prim "inherits", narrow_args @
-                       [lpath; Lconst(Const_pointer(if top then 1 else 0))]),
--                 Llet(StrictOpt, obj_init, lfield inh 0,
--                 Llet(Alias, inh_vals, lfield inh 1,
--                 Llet(Alias, inh_meths, lfield inh 2, cl_init)))))
-+                 Llet(StrictOpt, obj_init, lfield inh 0, cl_init)))
-       | _ ->
-         let core cl_init =
-             build_class_init cla true super inh_init cl_init msubst top cl
-@@ -397,12 +385,16 @@
-    XXX Il devrait etre peu couteux d'ecrire des classes :
-      class c x y = d e f
- *)
--let rec transl_class_rebind obj_init cl =
-+let rec transl_class_rebind obj_init cl vf =
-   match cl.cl_desc with
-     Tclass_ident path ->
-+      if vf = Concrete then begin
-+        try if (Env.find_class path cl.cl_env).cty_new = None then raise Exit
-+        with Not_found -> raise Exit
-+      end;
-       (path, obj_init)
-   | Tclass_fun (pat, _, cl, partial) ->
--      let path, obj_init = transl_class_rebind obj_init cl in
-+      let path, obj_init = transl_class_rebind obj_init cl vf in
-       let build params rem =
-         let param = name_pattern "param" [pat, ()] in
-         Lfunction (Curried, param::params,
-@@ -414,14 +406,14 @@
-          Lfunction (Curried, params, rem) -> build params rem
-        | rem                              -> build [] rem)
-   | Tclass_apply (cl, oexprs) ->
--      let path, obj_init = transl_class_rebind obj_init cl in
-+      let path, obj_init = transl_class_rebind obj_init cl vf in
-       (path, transl_apply obj_init oexprs)
-   | Tclass_let (rec_flag, defs, vals, cl) ->
--      let path, obj_init = transl_class_rebind obj_init cl in
-+      let path, obj_init = transl_class_rebind obj_init cl vf in
-       (path, Translcore.transl_let rec_flag defs obj_init)
-   | Tclass_structure _ -> raise Exit
-   | Tclass_constraint (cl', _, _, _) ->
--      let path, obj_init = transl_class_rebind obj_init cl' in
-+      let path, obj_init = transl_class_rebind obj_init cl' vf in
-       let rec check_constraint = function
-           Tcty_constr(path', _, _) when Path.same path path' -> ()
-         | Tcty_fun (_, _, cty) -> check_constraint cty
-@@ -430,21 +422,21 @@
-       check_constraint cl.cl_type;
-       (path, obj_init)
--let rec transl_class_rebind_0 self obj_init cl =
-+let rec transl_class_rebind_0 self obj_init cl vf =
-   match cl.cl_desc with
-     Tclass_let (rec_flag, defs, vals, cl) ->
--      let path, obj_init = transl_class_rebind_0 self obj_init cl in
-+      let path, obj_init = transl_class_rebind_0 self obj_init cl vf in
-       (path, Translcore.transl_let rec_flag defs obj_init)
-   | _ ->
--      let path, obj_init = transl_class_rebind obj_init cl in
-+      let path, obj_init = transl_class_rebind obj_init cl vf in
-       (path, lfunction [self] obj_init)
--let transl_class_rebind ids cl =
-+let transl_class_rebind ids cl vf =
-   try
-     let obj_init = Ident.create "obj_init"
-     and self = Ident.create "self" in
-     let obj_init0 = lapply (Lvar obj_init) [Lvar self] in
--    let path, obj_init' = transl_class_rebind_0 self obj_init0 cl in
-+    let path, obj_init' = transl_class_rebind_0 self obj_init0 cl vf in
-     if not (Translcore.check_recursive_lambda ids obj_init') then
-       raise(Error(cl.cl_loc, Illegal_class_expr));
-     let id = (obj_init' = lfunction [self] obj_init0) in
-@@ -592,9 +584,9 @@
- *)
--let transl_class ids cl_id arity pub_meths cl =
-+let transl_class ids cl_id arity pub_meths cl vflag =
-   (* First check if it is not only a rebind *)
--  let rebind = transl_class_rebind ids cl in
-+  let rebind = transl_class_rebind ids cl vflag in
-   if rebind <> lambda_unit then rebind else
-   (* Prepare for heavy environment handling *)
-@@ -696,9 +688,7 @@
-   (* Simplest case: an object defined at toplevel (ids=[]) *)
-   if top && ids = [] then llets (ltable cla (ldirect obj_init)) else
--  let concrete =
--    ids = [] ||
--    Typeclass.virtual_methods (Ctype.signature_of_class_type cl.cl_type) = []
-+  let concrete = (vflag = Concrete)
-   and lclass lam =
-     let cl_init = llets (Lfunction(Curried, [cla], cl_init)) in
-     Llet(Strict, class_init, cl_init, lam (free_variables cl_init))
-@@ -800,11 +790,11 @@
- (* Wrapper for class compilation *)
--let transl_class ids cl_id arity pub_meths cl =
--  oo_wrap cl.cl_env false (transl_class ids cl_id arity pub_meths) cl
-+let transl_class ids cl_id arity pub_meths cl vf =
-+  oo_wrap cl.cl_env false (transl_class ids cl_id arity pub_meths cl) vf
- let () =
--  transl_object := (fun id meths cl -> transl_class [] id 0 meths cl)
-+  transl_object := (fun id meths cl -> transl_class [] id 0 meths cl Concrete)
- (* Error report *)
-Index: bytecomp/translclass.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/translclass.mli,v
-retrieving revision 1.11
-diff -u -r1.11 translclass.mli
---- bytecomp/translclass.mli   12 Aug 2004 12:55:11 -0000      1.11
-+++ bytecomp/translclass.mli   5 Apr 2006 02:26:00 -0000
-@@ -16,7 +16,8 @@
- open Lambda
- val transl_class :
--  Ident.t list -> Ident.t -> int -> string list -> class_expr -> lambda;;
-+  Ident.t list -> Ident.t ->
-+  int -> string list -> class_expr -> Asttypes.virtual_flag -> lambda;;
- type error = Illegal_class_expr | Tags of string * string
-Index: bytecomp/translmod.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/bytecomp/translmod.ml,v
-retrieving revision 1.51
-diff -u -r1.51 translmod.ml
---- bytecomp/translmod.ml      12 Aug 2004 12:55:11 -0000      1.51
-+++ bytecomp/translmod.ml      5 Apr 2006 02:26:00 -0000
-@@ -317,10 +317,10 @@
-   | Tstr_open path :: rem ->
-       transl_structure fields cc rootpath rem
-   | Tstr_class cl_list :: rem ->
--      let ids = List.map (fun (i, _, _, _) -> i) cl_list in
-+      let ids = List.map (fun (i, _, _, _, _) -> i) cl_list in
-       Lletrec(List.map
--                (fun (id, arity, meths, cl) ->
--                  (id, transl_class ids id arity meths cl))
-+                (fun (id, arity, meths, cl, vf) ->
-+                  (id, transl_class ids id arity meths cl vf))
-                 cl_list,
-               transl_structure (List.rev ids @ fields) cc rootpath rem)
-   | Tstr_cltype cl_list :: rem ->
-@@ -414,11 +414,11 @@
-   | Tstr_open path :: rem ->
-       transl_store subst rem
-   | Tstr_class cl_list :: rem ->
--      let ids = List.map (fun (i, _, _, _) -> i) cl_list in
-+      let ids = List.map (fun (i, _, _, _, _) -> i) cl_list in
-       let lam =
-         Lletrec(List.map
--                  (fun (id, arity, meths, cl) ->
--                     (id, transl_class ids id arity meths cl))
-+                  (fun (id, arity, meths, cl, vf) ->
-+                     (id, transl_class ids id arity meths cl vf))
-                   cl_list,
-                 store_idents ids) in
-       Lsequence(subst_lambda subst lam,
-@@ -485,7 +485,7 @@
-   | Tstr_modtype(id, decl) :: rem -> defined_idents rem
-   | Tstr_open path :: rem -> defined_idents rem
-   | Tstr_class cl_list :: rem ->
--      List.map (fun (i, _, _, _) -> i) cl_list @ defined_idents rem
-+      List.map (fun (i, _, _, _, _) -> i) cl_list @ defined_idents rem
-   | Tstr_cltype cl_list :: rem -> defined_idents rem
-   | Tstr_include(modl, ids) :: rem -> ids @ defined_idents rem
-@@ -603,14 +603,14 @@
-   | Tstr_class cl_list ->
-       (* we need to use unique names for the classes because there might
-          be a value named identically *)
--      let ids = List.map (fun (i, _, _, _) -> i) cl_list in
-+      let ids = List.map (fun (i, _, _, _, _) -> i) cl_list in
-       List.iter set_toplevel_unique_name ids;
-       Lletrec(List.map
--                (fun (id, arity, meths, cl) ->
--                   (id, transl_class ids id arity meths cl))
-+                (fun (id, arity, meths, cl, vf) ->
-+                   (id, transl_class ids id arity meths cl vf))
-                 cl_list,
-               make_sequence
--                (fun (id, _, _, _) -> toploop_setvalue_id id)
-+                (fun (id, _, _, _, _) -> toploop_setvalue_id id)
-                 cl_list)
-   | Tstr_cltype cl_list ->
-       lambda_unit
-Index: driver/main_args.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/driver/main_args.ml,v
-retrieving revision 1.48
-diff -u -r1.48 main_args.ml
---- driver/main_args.ml        4 Jan 2006 16:55:49 -0000       1.48
-+++ driver/main_args.ml        5 Apr 2006 02:26:00 -0000
-@@ -136,11 +136,11 @@
-       \032    E/e enable/disable fragile match\n\
-       \032    F/f enable/disable partially applied function\n\
-       \032    L/l enable/disable labels omitted in application\n\
--      \032    M/m enable/disable overriden method\n\
-+      \032    M/m enable/disable overriden methods\n\
-       \032    P/p enable/disable partial match\n\
-       \032    S/s enable/disable non-unit statement\n\
-       \032    U/u enable/disable unused match case\n\
--      \032    V/v enable/disable hidden instance variable\n\
-+      \032    V/v enable/disable overriden instance variables\n\
-       \032    Y/y enable/disable suspicious unused variables\n\
-       \032    Z/z enable/disable all other unused variables\n\
-       \032    X/x enable/disable all other warnings\n\
-Index: driver/optmain.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/driver/optmain.ml,v
-retrieving revision 1.87
-diff -u -r1.87 optmain.ml
---- driver/optmain.ml  4 Jan 2006 16:55:49 -0000       1.87
-+++ driver/optmain.ml  5 Apr 2006 02:26:00 -0000
-@@ -173,7 +173,7 @@
-          \032    P/p enable/disable partial match\n\
-          \032    S/s enable/disable non-unit statement\n\
-          \032    U/u enable/disable unused match case\n\
--         \032    V/v enable/disable hidden instance variables\n\
-+         \032    V/v enable/disable overriden instance variables\n\
-          \032    Y/y enable/disable suspicious unused variables\n\
-          \032    Z/z enable/disable all other unused variables\n\
-          \032    X/x enable/disable all other warnings\n\
-Index: stdlib/camlinternalOO.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/stdlib/camlinternalOO.ml,v
-retrieving revision 1.14
-diff -u -r1.14 camlinternalOO.ml
---- stdlib/camlinternalOO.ml   25 Oct 2005 18:34:07 -0000      1.14
-+++ stdlib/camlinternalOO.ml   5 Apr 2006 02:26:00 -0000
-@@ -206,7 +206,11 @@
-      (table.methods_by_name, table.methods_by_label, table.hidden_meths,
-       table.vars, virt_meth_labs, vars)
-      :: table.previous_states;
--  table.vars <- Vars.empty;
-+  table.vars <-
-+    Vars.fold
-+      (fun lab info tvars ->
-+        if List.mem lab vars then Vars.add lab info tvars else tvars)
-+      table.vars Vars.empty;
-   let by_name = ref Meths.empty in
-   let by_label = ref Labs.empty in
-   List.iter2
-@@ -255,9 +259,11 @@
-   index
- let new_variable table name =
--  let index = new_slot table in
--  table.vars <- Vars.add name index table.vars;
--  index
-+  try Vars.find name table.vars
-+  with Not_found ->
-+    let index = new_slot table in
-+    table.vars <- Vars.add name index table.vars;
-+    index
- let to_array arr =
-   if arr = Obj.magic 0 then [||] else arr
-@@ -265,16 +271,17 @@
- let new_methods_variables table meths vals =
-   let meths = to_array meths in
-   let nmeths = Array.length meths and nvals = Array.length vals in
--  let index = new_variable table vals.(0) in
--  let res = Array.create (nmeths + 1) index in
--  for i = 1 to nvals - 1 do ignore (new_variable table vals.(i)) done;
-+  let res = Array.create (nmeths + nvals) 0 in
-   for i = 0 to nmeths - 1 do
--    res.(i+1) <- get_method_label table meths.(i)
-+    res.(i) <- get_method_label table meths.(i)
-+  done;
-+  for i = 0 to nvals - 1 do
-+    res.(i+nmeths) <- new_variable table vals.(i)
-   done;
-   res
- let get_variable table name =
--  Vars.find name table.vars
-+  try Vars.find name table.vars with Not_found -> assert false
- let get_variables table names =
-   Array.map (get_variable table) names
-@@ -315,9 +322,12 @@
-   let init =
-     if top then super cla env else Obj.repr (super cla) in
-   widen cla;
--  (init, Array.map (get_variable cla) (to_array vals),
--   Array.map (fun nm -> get_method cla (get_method_label cla nm))
--     (to_array concr_meths))
-+  Array.concat
-+    [[| repr init |];
-+     magic (Array.map (get_variable cla) (to_array vals) : int array);
-+     Array.map
-+       (fun nm -> repr (get_method cla (get_method_label cla nm) : closure))
-+       (to_array concr_meths) ]
- let make_class pub_meths class_init =
-   let table = create_table pub_meths in
-Index: stdlib/camlinternalOO.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/stdlib/camlinternalOO.mli,v
-retrieving revision 1.9
-diff -u -r1.9 camlinternalOO.mli
---- stdlib/camlinternalOO.mli  25 Oct 2005 18:34:07 -0000      1.9
-+++ stdlib/camlinternalOO.mli  5 Apr 2006 02:26:00 -0000
-@@ -46,8 +46,7 @@
- val init_class : table -> unit
- val inherits :
-     table -> string array -> string array -> string array ->
--    (t * (table -> obj -> Obj.t) * t * obj) -> bool ->
--    (Obj.t * int array * closure array)
-+    (t * (table -> obj -> Obj.t) * t * obj) -> bool -> Obj.t array
- val make_class :
-     string array -> (table -> Obj.t -> t) ->
-     (t * (table -> Obj.t -> t) * (Obj.t -> t) * Obj.t)
-@@ -79,6 +78,7 @@
- (** {6 Builtins to reduce code size} *)
-+(*
- val get_const : t -> closure
- val get_var : int -> closure
- val get_env : int -> int -> closure
-@@ -103,6 +103,7 @@
- val send_var : tag -> int -> int -> closure
- val send_env : tag -> int -> int -> int -> closure
- val send_meth : tag -> label -> int -> closure
-+*)
- type impl =
-     GetConst
-Index: stdlib/sys.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/stdlib/sys.ml,v
-retrieving revision 1.142
-diff -u -r1.142 sys.ml
---- stdlib/sys.ml      22 Mar 2006 12:39:39 -0000      1.142
-+++ stdlib/sys.ml      5 Apr 2006 02:26:00 -0000
-@@ -78,4 +78,4 @@
- (* OCaml version string, must be in the format described in sys.mli. *)
--let ocaml_version = "3.10+dev4 (2006-03-22)";;
-+let ocaml_version = "3.10+dev5 (2006-04-05)";;
-Index: tools/depend.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/tools/depend.ml,v
-retrieving revision 1.9
-diff -u -r1.9 depend.ml
---- tools/depend.ml    23 Mar 2005 03:08:37 -0000      1.9
-+++ tools/depend.ml    5 Apr 2006 02:26:00 -0000
-@@ -87,7 +87,7 @@
- and add_class_type_field bv = function
-     Pctf_inher cty -> add_class_type bv cty
--  | Pctf_val(_, _, oty, _) -> add_opt add_type bv oty
-+  | Pctf_val(_, _, _, ty, _) -> add_type bv ty
-   | Pctf_virt(_, _, ty, _) -> add_type bv ty
-   | Pctf_meth(_, _, ty, _) -> add_type bv ty
-   | Pctf_cstr(ty1, ty2, _) -> add_type bv ty1; add_type bv ty2
-@@ -280,6 +280,7 @@
- and add_class_field bv = function
-     Pcf_inher(ce, _) -> add_class_expr bv ce
-   | Pcf_val(_, _, e, _) -> add_expr bv e
-+  | Pcf_valvirt(_, _, ty, _)
-   | Pcf_virt(_, _, ty, _) -> add_type bv ty
-   | Pcf_meth(_, _, e, _) -> add_expr bv e
-   | Pcf_cstr(ty1, ty2, _) -> add_type bv ty1; add_type bv ty2
-Index: tools/ocamlprof.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/tools/ocamlprof.ml,v
-retrieving revision 1.38
-diff -u -r1.38 ocamlprof.ml
---- tools/ocamlprof.ml 24 Mar 2005 17:20:54 -0000      1.38
-+++ tools/ocamlprof.ml 5 Apr 2006 02:26:00 -0000
-@@ -328,7 +328,7 @@
-       rewrite_patexp_list iflag spat_sexp_list
-   | Pcf_init sexp ->
-       rewrite_exp iflag sexp
--  | Pcf_virt _ | Pcf_cstr _  -> ()
-+  | Pcf_valvirt _ | Pcf_virt _ | Pcf_cstr _  -> ()
- and rewrite_class_expr iflag cexpr =
-   match cexpr.pcl_desc with
-Index: otherlibs/labltk/browser/searchpos.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/otherlibs/labltk/browser/searchpos.ml,v
-retrieving revision 1.48
-diff -u -r1.48 searchpos.ml
---- otherlibs/labltk/browser/searchpos.ml      23 Mar 2005 03:08:37 -0000      1.48
-+++ otherlibs/labltk/browser/searchpos.ml      5 Apr 2006 02:26:01 -0000
-@@ -141,9 +141,8 @@
-         List.iter cfl ~f:
-           begin function
-               Pctf_inher cty -> search_pos_class_type cty ~pos ~env
--            | Pctf_val (_, _, Some ty, loc) ->
-+            | Pctf_val (_, _, _, ty, loc) ->
-                 if in_loc loc ~pos then search_pos_type ty ~pos ~env
--            | Pctf_val _ -> ()
-             | Pctf_virt (_, _, ty, loc) ->
-                 if in_loc loc ~pos then search_pos_type ty ~pos ~env
-             | Pctf_meth (_, _, ty, loc) ->
-@@ -675,7 +674,7 @@
-   | Tstr_modtype _ -> ()
-   | Tstr_open _ -> ()
-   | Tstr_class l ->
--      List.iter l ~f:(fun (id, _, _, cl) -> search_pos_class_expr cl ~pos)
-+      List.iter l ~f:(fun (id, _, _, cl, _) -> search_pos_class_expr cl ~pos)
-   | Tstr_cltype _ -> ()
-   | Tstr_include (m, _) -> search_pos_module_expr m ~pos
-   end
-@@ -685,7 +684,8 @@
-     begin function
-         Cf_inher (cl, _, _) ->
-           search_pos_class_expr cl ~pos
--      | Cf_val (_, _, exp) -> search_pos_expr exp ~pos
-+      | Cf_val (_, _, Some exp, _) -> search_pos_expr exp ~pos
-+      | Cf_val _ -> ()
-       | Cf_meth (_, exp) -> search_pos_expr exp ~pos
-       | Cf_let (_, pel, iel) ->
-           List.iter pel ~f:
-Index: ocamldoc/Makefile
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/ocamldoc/Makefile,v
-retrieving revision 1.61
-diff -u -r1.61 Makefile
---- ocamldoc/Makefile  4 Jan 2006 16:55:49 -0000       1.61
-+++ ocamldoc/Makefile  5 Apr 2006 02:26:01 -0000
-@@ -31,7 +31,7 @@
- MKDIR=mkdir -p
- CP=cp -f
- OCAMLDOC=ocamldoc
--OCAMLDOC_RUN=sh ./runocamldoc $(SUPPORTS_SHARED_LIBRARIES)
-+OCAMLDOC_RUN=./ocamldoc.opt #sh ./runocamldoc $(SUPPORTS_SHARED_LIBRARIES)
- OCAMLDOC_OPT=$(OCAMLDOC).opt
- OCAMLDOC_LIBCMA=odoc_info.cma
- OCAMLDOC_LIBCMI=odoc_info.cmi
-@@ -188,12 +188,12 @@
-       ../otherlibs/num/num.mli
- all: exe lib
--      $(MAKE) manpages
- exe: $(OCAMLDOC)
- lib: $(OCAMLDOC_LIBCMA) $(OCAMLDOC_LIBCMI) $(ODOC_TEST)
- opt.opt: exeopt libopt
-+      $(MAKE) manpages
- exeopt: $(OCAMLDOC_OPT)
- libopt: $(OCAMLDOC_LIBCMXA) $(OCAMLDOC_LIBCMI)
- debug:
-Index: ocamldoc/odoc_ast.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/ocamldoc/odoc_ast.ml,v
-retrieving revision 1.27
-diff -u -r1.27 odoc_ast.ml
---- ocamldoc/odoc_ast.ml       4 Jan 2006 16:55:49 -0000       1.27
-+++ ocamldoc/odoc_ast.ml       5 Apr 2006 02:26:01 -0000
-@@ -88,7 +88,7 @@
-             ident_type_decl_list
-       | Typedtree.Tstr_class info_list ->
-           List.iter
--            (fun ((id,_,_,_) as ci) ->
-+            (fun ((id,_,_,_,_) as ci) ->
-               Hashtbl.add table (C (Name.from_ident id))
-                 (Typedtree.Tstr_class [ci]))
-             info_list
-@@ -146,7 +146,7 @@
-     let search_class_exp table name =
-       match Hashtbl.find table (C name) with
--      | (Typedtree.Tstr_class [(_,_,_,ce)]) ->
-+      | (Typedtree.Tstr_class [(_,_,_,ce,_)]) ->
-           (
-            try
-              let type_decl = search_type_declaration table name in
-@@ -184,7 +184,7 @@
-       let rec iter = function
-         | [] ->
-             raise Not_found
--        | Typedtree.Cf_val (_, ident, exp) :: q
-+        | Typedtree.Cf_val (_, ident, Some exp, _) :: q
-           when Name.from_ident ident = name ->
-             exp.Typedtree.exp_type
-         | _ :: q ->
-@@ -523,7 +523,8 @@
-               p_clexp.Parsetree.pcl_loc.Location.loc_end.Lexing.pos_cnum
-               q
--        | (Parsetree.Pcf_val (label, mutable_flag, expression, loc)) :: q ->
-+        | (Parsetree.Pcf_val (label, mutable_flag, _, loc) |
-+           Parsetree.Pcf_valvirt (label, mutable_flag, _, loc)) :: q ->
-             let complete_name = Name.concat current_class_name label in
-             let (info_opt, ele_comments) = get_comments_in_class last_pos loc.Location.loc_start.Lexing.pos_cnum in
-             let type_exp =
-Index: ocamldoc/odoc_sig.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/ocamldoc/odoc_sig.ml,v
-retrieving revision 1.37
-diff -u -r1.37 odoc_sig.ml
---- ocamldoc/odoc_sig.ml       4 Jan 2006 16:55:50 -0000       1.37
-+++ ocamldoc/odoc_sig.ml       5 Apr 2006 02:26:01 -0000
-@@ -107,7 +107,7 @@
-       | _ -> assert false
-     let search_attribute_type name class_sig =
--      let (_, type_expr) = Types.Vars.find name class_sig.Types.cty_vars in
-+      let (_, _, type_expr) = Types.Vars.find name class_sig.Types.cty_vars in
-       type_expr
-     let search_method_type name class_sig =
-@@ -269,7 +269,7 @@
-           [] -> pos_limit
-         | ele2 :: _ ->
-             match ele2 with
--              Parsetree.Pctf_val (_, _, _, loc)
-+              Parsetree.Pctf_val (_, _, _, _, loc)
-             | Parsetree.Pctf_virt (_, _, _, loc)
-             | Parsetree.Pctf_meth (_, _, _, loc)
-             | Parsetree.Pctf_cstr (_, _, loc) -> loc.Location.loc_start.Lexing.pos_cnum
-@@ -330,7 +330,7 @@
-             in
-             ([], ele_comments)
--        | Parsetree.Pctf_val (name, mutable_flag, _, loc) :: q ->
-+        | Parsetree.Pctf_val (name, mutable_flag, _, _, loc) :: q ->
-             (* of (string * mutable_flag * core_type option * Location.t)*)
-             let (comment_opt, eles_comments) = get_comments_in_class last_pos loc.Location.loc_start.Lexing.pos_cnum in
-             let complete_name = Name.concat current_class_name name in
-Index: camlp4/camlp4/ast2pt.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/camlp4/ast2pt.ml,v
-retrieving revision 1.36
-diff -u -r1.36 ast2pt.ml
---- camlp4/camlp4/ast2pt.ml    29 Jun 2005 04:11:26 -0000      1.36
-+++ camlp4/camlp4/ast2pt.ml    5 Apr 2006 02:26:01 -0000
-@@ -244,6 +244,7 @@
- ;
- value mkmutable m = if m then Mutable else Immutable;
- value mkprivate m = if m then Private else Public;
-+value mkvirtual m = if m then Virtual else Concrete;
- value mktrecord (loc, n, m, t) =
-   (n, mkmutable m, ctyp (mkpolytype t), mkloc loc);
- value mkvariant (loc, c, tl) = (c, List.map ctyp tl, mkloc loc);
-@@ -862,8 +863,8 @@
-   | CgInh loc ct -> [Pctf_inher (class_type ct) :: l]
-   | CgMth loc s pf t ->
-       [Pctf_meth (s, mkprivate pf, ctyp (mkpolytype t), mkloc loc) :: l]
--  | CgVal loc s b t ->
--      [Pctf_val (s, mkmutable b, Some (ctyp t), mkloc loc) :: l]
-+  | CgVal loc s b v t ->
-+      [Pctf_val (s, mkmutable b, mkvirtual v, ctyp t, mkloc loc) :: l]
-   | CgVir loc s b t ->
-       [Pctf_virt (s, mkprivate b, ctyp (mkpolytype t), mkloc loc) :: l] ]
- and class_expr =
-@@ -907,7 +908,9 @@
-       [Pcf_meth (s, mkprivate b, e, mkloc loc) :: l]
-   | CrVal loc s b e -> [Pcf_val (s, mkmutable b, expr e, mkloc loc) :: l]
-   | CrVir loc s b t ->
--      [Pcf_virt (s, mkprivate b, ctyp (mkpolytype t), mkloc loc) :: l] ]
-+      [Pcf_virt (s, mkprivate b, ctyp (mkpolytype t), mkloc loc) :: l]
-+  | CrVvr loc s b t ->
-+      [Pcf_valvirt (s, mkmutable b, ctyp t, mkloc loc) :: l] ]
- ;
- value interf ast = List.fold_right sig_item ast [];
-Index: camlp4/camlp4/mLast.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/camlp4/mLast.mli,v
-retrieving revision 1.18
-diff -u -r1.18 mLast.mli
---- camlp4/camlp4/mLast.mli    29 Jun 2005 04:11:26 -0000      1.18
-+++ camlp4/camlp4/mLast.mli    5 Apr 2006 02:26:01 -0000
-@@ -180,7 +180,7 @@
-   | CgDcl of loc and list class_sig_item
-   | CgInh of loc and class_type
-   | CgMth of loc and string and bool and ctyp
--  | CgVal of loc and string and bool and ctyp
-+  | CgVal of loc and string and bool and bool and ctyp
-   | CgVir of loc and string and bool and ctyp ]
- and class_expr =
-   [ CeApp of loc and class_expr and expr
-@@ -196,7 +196,8 @@
-   | CrIni of loc and expr
-   | CrMth of loc and string and bool and expr and option ctyp
-   | CrVal of loc and string and bool and expr
--  | CrVir of loc and string and bool and ctyp ]
-+  | CrVir of loc and string and bool and ctyp
-+  | CrVvr of loc and string and bool and ctyp ]
- ;
- external loc_of_ctyp : ctyp -> loc = "%field0";
-Index: camlp4/camlp4/reloc.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/camlp4/reloc.ml,v
-retrieving revision 1.18
-diff -u -r1.18 reloc.ml
---- camlp4/camlp4/reloc.ml     29 Jun 2005 04:11:26 -0000      1.18
-+++ camlp4/camlp4/reloc.ml     5 Apr 2006 02:26:01 -0000
-@@ -350,7 +350,7 @@
-     | CgDcl loc x1 -> let nloc = floc loc in CgDcl nloc (List.map (class_sig_item floc sh) x1)
-     | CgInh loc x1 -> let nloc = floc loc in CgInh nloc (class_type floc sh x1)
-     | CgMth loc x1 x2 x3 -> let nloc = floc loc in CgMth nloc x1 x2 (ctyp floc sh x3)
--    | CgVal loc x1 x2 x3 -> let nloc = floc loc in CgVal nloc x1 x2 (ctyp floc sh x3)
-+    | CgVal loc x1 x2 x3 x4 -> let nloc = floc loc in CgVal nloc x1 x2 x3 (ctyp floc sh x4)
-     | CgVir loc x1 x2 x3 -> let nloc = floc loc in CgVir nloc x1 x2 (ctyp floc sh x3) ]
- and class_expr floc sh =
-   self where rec self =
-@@ -377,5 +377,6 @@
-     | CrMth loc x1 x2 x3 x4 ->
-         let nloc = floc loc in CrMth nloc x1 x2 (expr floc sh x3) (option_map (ctyp floc sh) x4)
-     | CrVal loc x1 x2 x3 -> let nloc = floc loc in CrVal nloc x1 x2 (expr floc sh x3)
--    | CrVir loc x1 x2 x3 -> let nloc = floc loc in CrVir nloc x1 x2 (ctyp floc sh x3) ]
-+    | CrVir loc x1 x2 x3 -> let nloc = floc loc in CrVir nloc x1 x2 (ctyp floc sh x3)
-+    | CrVvr loc x1 x2 x3 -> let nloc = floc loc in CrVvr nloc x1 x2 (ctyp floc sh x3) ]
- ;
-Index: camlp4/etc/pa_o.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/etc/pa_o.ml,v
-retrieving revision 1.66
-diff -u -r1.66 pa_o.ml
---- camlp4/etc/pa_o.ml 29 Jun 2005 04:11:26 -0000      1.66
-+++ camlp4/etc/pa_o.ml 5 Apr 2006 02:26:01 -0000
-@@ -1037,8 +1037,14 @@
-   class_str_item:
-     [ [ "inherit"; ce = class_expr; pb = OPT [ "as"; i = LIDENT -> i ] ->
-           <:class_str_item< inherit $ce$ $opt:pb$ >>
--      | "val"; mf = OPT "mutable"; lab = label; e = cvalue_binding ->
--          <:class_str_item< value $opt:o2b mf$ $lab$ = $e$ >>
-+      | "val"; "mutable"; lab = label; e = cvalue_binding ->
-+          <:class_str_item< value mutable $lab$ = $e$ >>
-+      | "val"; lab = label; e = cvalue_binding ->
-+          <:class_str_item< value $lab$ = $e$ >>
-+      | "val"; "mutable"; "virtual"; lab = label; ":"; t = ctyp ->
-+          <:class_str_item< value virtual mutable $lab$ : $t$ >>
-+      | "val"; "virtual"; mf = OPT "mutable"; lab = label; ":"; t = ctyp ->
-+          <:class_str_item< value virtual $opt:o2b mf$ $lab$ : $t$ >>
-       | "method"; "private"; "virtual"; l = label; ":"; t = poly_type ->
-           <:class_str_item< method virtual private $l$ : $t$ >>
-       | "method"; "virtual"; "private"; l = label; ":"; t = poly_type ->
-@@ -1087,8 +1093,9 @@
-   ;
-   class_sig_item:
-     [ [ "inherit"; cs = class_signature -> <:class_sig_item< inherit $cs$ >>
--      | "val"; mf = OPT "mutable"; l = label; ":"; t = ctyp ->
--          <:class_sig_item< value $opt:o2b mf$ $l$ : $t$ >>
-+      | "val"; mf = OPT "mutable"; vf = OPT "virtual";
-+        l = label; ":"; t = ctyp ->
-+          <:class_sig_item< value $opt:o2b mf$ $opt:o2b vf$ $l$ : $t$ >>
-       | "method"; "private"; "virtual"; l = label; ":"; t = poly_type ->
-           <:class_sig_item< method virtual private $l$ : $t$ >>
-       | "method"; "virtual"; "private"; l = label; ":"; t = poly_type ->
-Index: camlp4/etc/pr_o.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/etc/pr_o.ml,v
-retrieving revision 1.51
-diff -u -r1.51 pr_o.ml
---- camlp4/etc/pr_o.ml 5 Jan 2006 10:44:29 -0000       1.51
-+++ camlp4/etc/pr_o.ml 5 Apr 2006 02:26:01 -0000
-@@ -1768,10 +1768,11 @@
-                   [: `S LR "method"; private_flag pf; `label lab;
-                      `S LR ":" :];
-                `ctyp t "" k :]
--      | MLast.CgVal _ lab mf t ->
-+      | MLast.CgVal _ lab mf vf t ->
-           fun curr next dg k ->
-             [: `HVbox
--                  [: `S LR "val"; mutable_flag mf; `label lab; `S LR ":" :];
-+                  [: `S LR "val"; mutable_flag mf; virtual_flag vf;
-+                     `label lab; `S LR ":" :];
-                `ctyp t "" k :]
-       | MLast.CgVir _ lab pf t ->
-           fun curr next dg k ->
-Index: camlp4/meta/pa_r.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/meta/pa_r.ml,v
-retrieving revision 1.64
-diff -u -r1.64 pa_r.ml
---- camlp4/meta/pa_r.ml        29 Jun 2005 04:11:26 -0000      1.64
-+++ camlp4/meta/pa_r.ml        5 Apr 2006 02:26:01 -0000
-@@ -658,7 +658,9 @@
-       | "inherit"; ce = class_expr; pb = OPT as_lident ->
-           <:class_str_item< inherit $ce$ $opt:pb$ >>
-       | "value"; mf = OPT "mutable"; lab = label; e = cvalue_binding ->
--          <:class_str_item< value $opt:o2b mf$ $lab$ = $e$ >>
-+          <:class_str_item< value $opt:o2b mf$ $lab$ = $e$ >> 
-+      | "value"; "virtual"; mf = OPT "mutable"; l = label; ":"; t = ctyp ->
-+          <:class_str_item< value virtual $opt:o2b mf$ $l$ : $t$ >>
-       | "method"; "virtual"; pf = OPT "private"; l = label; ":"; t = ctyp ->
-           <:class_str_item< method virtual $opt:o2b pf$ $l$ : $t$ >>
-       | "method"; pf = OPT "private"; l = label; topt = OPT polyt;
-@@ -701,8 +703,9 @@
-     [ [ "declare"; st = LIST0 [ s = class_sig_item; ";" -> s ]; "end" ->
-           <:class_sig_item< declare $list:st$ end >>
-       | "inherit"; cs = class_type -> <:class_sig_item< inherit $cs$ >>
--      | "value"; mf = OPT "mutable"; l = label; ":"; t = ctyp ->
--          <:class_sig_item< value $opt:o2b mf$ $l$ : $t$ >>
-+      | "value"; mf = OPT "mutable"; vf = OPT "virtual";
-+        l = label; ":"; t = ctyp ->
-+          <:class_sig_item< value $opt:o2b mf$ $opt:o2b vf$ $l$ : $t$ >>
-       | "method"; "virtual"; pf = OPT "private"; l = label; ":"; t = ctyp ->
-           <:class_sig_item< method virtual $opt:o2b pf$ $l$ : $t$ >>
-       | "method"; pf = OPT "private"; l = label; ":"; t = ctyp ->
-Index: camlp4/meta/q_MLast.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/meta/q_MLast.ml,v
-retrieving revision 1.60
-diff -u -r1.60 q_MLast.ml
---- camlp4/meta/q_MLast.ml     29 Jun 2005 04:11:26 -0000      1.60
-+++ camlp4/meta/q_MLast.ml     5 Apr 2006 02:26:01 -0000
-@@ -947,6 +947,8 @@
-           Qast.Node "CrDcl" [Qast.Loc; st]
-       | "inherit"; ce = class_expr; pb = SOPT as_lident ->
-           Qast.Node "CrInh" [Qast.Loc; ce; pb]
-+      | "value"; "virtual"; mf = SOPT "mutable"; l = label; ":"; t = ctyp ->
-+          Qast.Node "CrVvr" [Qast.Loc; l; o2b mf; t]
-       | "value"; mf = SOPT "mutable"; lab = label; e = cvalue_binding ->
-           Qast.Node "CrVal" [Qast.Loc; lab; o2b mf; e]
-       | "method"; "virtual"; pf = SOPT "private"; l = label; ":"; t = ctyp ->
-@@ -992,8 +994,9 @@
-     [ [ "declare"; st = SLIST0 [ s = class_sig_item; ";" -> s ]; "end" ->
-           Qast.Node "CgDcl" [Qast.Loc; st]
-       | "inherit"; cs = class_type -> Qast.Node "CgInh" [Qast.Loc; cs]
--      | "value"; mf = SOPT "mutable"; l = label; ":"; t = ctyp ->
--          Qast.Node "CgVal" [Qast.Loc; l; o2b mf; t]
-+      | "value"; mf = SOPT "mutable"; vf = SOPT "virtual";
-+        l = label; ":"; t = ctyp ->
-+          Qast.Node "CgVal" [Qast.Loc; l; o2b mf; o2b vf; t]
-       | "method"; "virtual"; pf = SOPT "private"; l = label; ":"; t = ctyp ->
-           Qast.Node "CgVir" [Qast.Loc; l; o2b pf; t]
-       | "method"; pf = SOPT "private"; l = label; ":"; t = ctyp ->
-Index: camlp4/ocaml_src/camlp4/ast2pt.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/ocaml_src/camlp4/ast2pt.ml,v
-retrieving revision 1.36
-diff -u -r1.36 ast2pt.ml
---- camlp4/ocaml_src/camlp4/ast2pt.ml  29 Jun 2005 04:11:26 -0000      1.36
-+++ camlp4/ocaml_src/camlp4/ast2pt.ml  5 Apr 2006 02:26:01 -0000
-@@ -227,6 +227,7 @@
- ;;
- let mkmutable m = if m then Mutable else Immutable;;
- let mkprivate m = if m then Private else Public;;
-+let mkvirtual m = if m then Virtual else Concrete;;
- let mktrecord (loc, n, m, t) =
-   n, mkmutable m, ctyp (mkpolytype t), mkloc loc
- ;;
-@@ -878,8 +879,8 @@
-   | CgInh (loc, ct) -> Pctf_inher (class_type ct) :: l
-   | CgMth (loc, s, pf, t) ->
-       Pctf_meth (s, mkprivate pf, ctyp (mkpolytype t), mkloc loc) :: l
--  | CgVal (loc, s, b, t) ->
--      Pctf_val (s, mkmutable b, Some (ctyp t), mkloc loc) :: l
-+  | CgVal (loc, s, b, v, t) ->
-+      Pctf_val (s, mkmutable b, mkvirtual v, ctyp t, mkloc loc) :: l
-   | CgVir (loc, s, b, t) ->
-       Pctf_virt (s, mkprivate b, ctyp (mkpolytype t), mkloc loc) :: l
- and class_expr =
-@@ -923,6 +924,8 @@
-   | CrVal (loc, s, b, e) -> Pcf_val (s, mkmutable b, expr e, mkloc loc) :: l
-   | CrVir (loc, s, b, t) ->
-       Pcf_virt (s, mkprivate b, ctyp (mkpolytype t), mkloc loc) :: l
-+  | CrVvr (loc, s, b, t) ->
-+      Pcf_valvirt (s, mkmutable b, ctyp t, mkloc loc) :: l
- ;;
- let interf ast = List.fold_right sig_item ast [];;
-Index: camlp4/ocaml_src/camlp4/mLast.mli
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/ocaml_src/camlp4/mLast.mli,v
-retrieving revision 1.20
-diff -u -r1.20 mLast.mli
---- camlp4/ocaml_src/camlp4/mLast.mli  29 Jun 2005 04:11:26 -0000      1.20
-+++ camlp4/ocaml_src/camlp4/mLast.mli  5 Apr 2006 02:26:01 -0000
-@@ -180,7 +180,7 @@
-   | CgDcl of loc * class_sig_item list
-   | CgInh of loc * class_type
-   | CgMth of loc * string * bool * ctyp
--  | CgVal of loc * string * bool * ctyp
-+  | CgVal of loc * string * bool * bool * ctyp
-   | CgVir of loc * string * bool * ctyp
- and class_expr =
-     CeApp of loc * class_expr * expr
-@@ -197,6 +197,7 @@
-   | CrMth of loc * string * bool * expr * ctyp option
-   | CrVal of loc * string * bool * expr
-   | CrVir of loc * string * bool * ctyp
-+  | CrVvr of loc * string * bool * ctyp
- ;;
- external loc_of_ctyp : ctyp -> loc = "%field0";;
-Index: camlp4/ocaml_src/camlp4/reloc.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/ocaml_src/camlp4/reloc.ml,v
-retrieving revision 1.20
-diff -u -r1.20 reloc.ml
---- camlp4/ocaml_src/camlp4/reloc.ml   29 Jun 2005 04:11:26 -0000      1.20
-+++ camlp4/ocaml_src/camlp4/reloc.ml   5 Apr 2006 02:26:01 -0000
-@@ -430,8 +430,8 @@
-         let nloc = floc loc in CgInh (nloc, class_type floc sh x1)
-     | CgMth (loc, x1, x2, x3) ->
-         let nloc = floc loc in CgMth (nloc, x1, x2, ctyp floc sh x3)
--    | CgVal (loc, x1, x2, x3) ->
--        let nloc = floc loc in CgVal (nloc, x1, x2, ctyp floc sh x3)
-+    | CgVal (loc, x1, x2, x3, x4) ->
-+        let nloc = floc loc in CgVal (nloc, x1, x2, x3, ctyp floc sh x4)
-     | CgVir (loc, x1, x2, x3) ->
-         let nloc = floc loc in CgVir (nloc, x1, x2, ctyp floc sh x3)
-   in
-@@ -478,6 +478,8 @@
-         let nloc = floc loc in CrVal (nloc, x1, x2, expr floc sh x3)
-     | CrVir (loc, x1, x2, x3) ->
-         let nloc = floc loc in CrVir (nloc, x1, x2, ctyp floc sh x3)
-+    | CrVvr (loc, x1, x2, x3) ->
-+        let nloc = floc loc in CrVvr (nloc, x1, x2, ctyp floc sh x3)
-   in
-   self
- ;;
-Index: camlp4/ocaml_src/meta/pa_r.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/ocaml_src/meta/pa_r.ml,v
-retrieving revision 1.59
-diff -u -r1.59 pa_r.ml
---- camlp4/ocaml_src/meta/pa_r.ml      29 Jun 2005 04:11:26 -0000      1.59
-+++ camlp4/ocaml_src/meta/pa_r.ml      5 Apr 2006 02:26:01 -0000
-@@ -2161,6 +2161,15 @@
-         (fun (t : 'ctyp) _ (l : 'label) (pf : string option) _ _
-            (_loc : Lexing.position * Lexing.position) ->
-            (MLast.CrVir (_loc, l, o2b pf, t) : 'class_str_item));
-+      [Gramext.Stoken ("", "value"); Gramext.Stoken ("", "virtual");
-+       Gramext.Sopt (Gramext.Stoken ("", "mutable"));
-+       Gramext.Snterm (Grammar.Entry.obj (label : 'label Grammar.Entry.e));
-+       Gramext.Stoken ("", ":");
-+       Gramext.Snterm (Grammar.Entry.obj (ctyp : 'ctyp Grammar.Entry.e))],
-+      Gramext.action
-+        (fun (t : 'ctyp) _ (l : 'label) (mf : string option) _ _
-+           (_loc : Lexing.position * Lexing.position) ->
-+           (MLast.CrVvr (_loc, l, o2b mf, t) : 'class_str_item));
-       [Gramext.Stoken ("", "value");
-        Gramext.Sopt (Gramext.Stoken ("", "mutable"));
-        Gramext.Snterm (Grammar.Entry.obj (label : 'label Grammar.Entry.e));
-@@ -2338,13 +2347,15 @@
-            (MLast.CgVir (_loc, l, o2b pf, t) : 'class_sig_item));
-       [Gramext.Stoken ("", "value");
-        Gramext.Sopt (Gramext.Stoken ("", "mutable"));
-+       Gramext.Sopt (Gramext.Stoken ("", "virtual"));
-        Gramext.Snterm (Grammar.Entry.obj (label : 'label Grammar.Entry.e));
-        Gramext.Stoken ("", ":");
-        Gramext.Snterm (Grammar.Entry.obj (ctyp : 'ctyp Grammar.Entry.e))],
-       Gramext.action
--        (fun (t : 'ctyp) _ (l : 'label) (mf : string option) _
-+        (fun (t : 'ctyp) _ (l : 'label) (vf : string option)
-+           (mf : string option) _
-            (_loc : Lexing.position * Lexing.position) ->
--           (MLast.CgVal (_loc, l, o2b mf, t) : 'class_sig_item));
-+           (MLast.CgVal (_loc, l, o2b mf, o2b vf, t) : 'class_sig_item));
-       [Gramext.Stoken ("", "inherit");
-        Gramext.Snterm
-          (Grammar.Entry.obj (class_type : 'class_type Grammar.Entry.e))],
-Index: camlp4/ocaml_src/meta/q_MLast.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/ocaml_src/meta/q_MLast.ml,v
-retrieving revision 1.65
-diff -u -r1.65 q_MLast.ml
---- camlp4/ocaml_src/meta/q_MLast.ml   12 Jan 2006 08:54:21 -0000      1.65
-+++ camlp4/ocaml_src/meta/q_MLast.ml   5 Apr 2006 02:26:01 -0000
-@@ -3152,9 +3152,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__17))])],
-+                      (Qast.Str x : 'e__18))])],
-           Gramext.action
--            (fun (a : 'e__17 option)
-+            (fun (a : 'e__18 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3191,9 +3191,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__16))])],
-+                      (Qast.Str x : 'e__17))])],
-           Gramext.action
--            (fun (a : 'e__16 option)
-+            (fun (a : 'e__17 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3216,9 +3216,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__15))])],
-+                      (Qast.Str x : 'e__16))])],
-           Gramext.action
--            (fun (a : 'e__15 option)
-+            (fun (a : 'e__16 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3235,6 +3235,31 @@
-            (_loc : Lexing.position * Lexing.position) ->
-            (Qast.Node ("CrVal", [Qast.Loc; lab; o2b mf; e]) :
-             'class_str_item));
-+      [Gramext.Stoken ("", "value"); Gramext.Stoken ("", "virtual");
-+       Gramext.srules
-+         [[Gramext.Sopt
-+             (Gramext.srules
-+                [[Gramext.Stoken ("", "mutable")],
-+                 Gramext.action
-+                   (fun (x : string)
-+                      (_loc : Lexing.position * Lexing.position) ->
-+                      (Qast.Str x : 'e__15))])],
-+          Gramext.action
-+            (fun (a : 'e__15 option)
-+               (_loc : Lexing.position * Lexing.position) ->
-+               (Qast.Option a : 'a_opt));
-+          [Gramext.Snterm
-+             (Grammar.Entry.obj (a_opt : 'a_opt Grammar.Entry.e))],
-+          Gramext.action
-+            (fun (a : 'a_opt) (_loc : Lexing.position * Lexing.position) ->
-+               (a : 'a_opt))];
-+       Gramext.Snterm (Grammar.Entry.obj (label : 'label Grammar.Entry.e));
-+       Gramext.Stoken ("", ":");
-+       Gramext.Snterm (Grammar.Entry.obj (ctyp : 'ctyp Grammar.Entry.e))],
-+      Gramext.action
-+        (fun (t : 'ctyp) _ (l : 'label) (mf : 'a_opt) _ _
-+           (_loc : Lexing.position * Lexing.position) ->
-+           (Qast.Node ("CrVvr", [Qast.Loc; l; o2b mf; t]) : 'class_str_item));
-       [Gramext.Stoken ("", "inherit");
-        Gramext.Snterm
-          (Grammar.Entry.obj (class_expr : 'class_expr Grammar.Entry.e));
-@@ -3366,9 +3391,9 @@
-                  Gramext.action
-                    (fun _ (csf : 'class_sig_item)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (csf : 'e__18))])],
-+                      (csf : 'e__19))])],
-           Gramext.action
--            (fun (a : 'e__18 list)
-+            (fun (a : 'e__19 list)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.List a : 'a_list));
-           [Gramext.Snterm
-@@ -3446,9 +3471,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__22))])],
-+                      (Qast.Str x : 'e__24))])],
-           Gramext.action
--            (fun (a : 'e__22 option)
-+            (fun (a : 'e__24 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3471,9 +3496,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__21))])],
-+                      (Qast.Str x : 'e__23))])],
-           Gramext.action
--            (fun (a : 'e__21 option)
-+            (fun (a : 'e__23 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3496,9 +3521,26 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__20))])],
-+                      (Qast.Str x : 'e__21))])],
-           Gramext.action
--            (fun (a : 'e__20 option)
-+            (fun (a : 'e__21 option)
-+               (_loc : Lexing.position * Lexing.position) ->
-+               (Qast.Option a : 'a_opt));
-+          [Gramext.Snterm
-+             (Grammar.Entry.obj (a_opt : 'a_opt Grammar.Entry.e))],
-+          Gramext.action
-+            (fun (a : 'a_opt) (_loc : Lexing.position * Lexing.position) ->
-+               (a : 'a_opt))];
-+       Gramext.srules
-+         [[Gramext.Sopt
-+             (Gramext.srules
-+                [[Gramext.Stoken ("", "virtual")],
-+                 Gramext.action
-+                   (fun (x : string)
-+                      (_loc : Lexing.position * Lexing.position) ->
-+                      (Qast.Str x : 'e__22))])],
-+          Gramext.action
-+            (fun (a : 'e__22 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3510,9 +3552,10 @@
-        Gramext.Stoken ("", ":");
-        Gramext.Snterm (Grammar.Entry.obj (ctyp : 'ctyp Grammar.Entry.e))],
-       Gramext.action
--        (fun (t : 'ctyp) _ (l : 'label) (mf : 'a_opt) _
-+        (fun (t : 'ctyp) _ (l : 'label) (vf : 'a_opt) (mf : 'a_opt) _
-            (_loc : Lexing.position * Lexing.position) ->
--           (Qast.Node ("CgVal", [Qast.Loc; l; o2b mf; t]) : 'class_sig_item));
-+           (Qast.Node ("CgVal", [Qast.Loc; l; o2b mf; o2b vf; t]) :
-+            'class_sig_item));
-       [Gramext.Stoken ("", "inherit");
-        Gramext.Snterm
-          (Grammar.Entry.obj (class_type : 'class_type Grammar.Entry.e))],
-@@ -3531,9 +3574,9 @@
-                  Gramext.action
-                    (fun _ (s : 'class_sig_item)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (s : 'e__19))])],
-+                      (s : 'e__20))])],
-           Gramext.action
--            (fun (a : 'e__19 list)
-+            (fun (a : 'e__20 list)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.List a : 'a_list));
-           [Gramext.Snterm
-@@ -3556,9 +3599,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__23))])],
-+                      (Qast.Str x : 'e__25))])],
-           Gramext.action
--            (fun (a : 'e__23 option)
-+            (fun (a : 'e__25 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3593,9 +3636,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__24))])],
-+                      (Qast.Str x : 'e__26))])],
-           Gramext.action
--            (fun (a : 'e__24 option)
-+            (fun (a : 'e__26 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3713,9 +3756,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__25))])],
-+                      (Qast.Str x : 'e__27))])],
-           Gramext.action
--            (fun (a : 'e__25 option)
-+            (fun (a : 'e__27 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -3922,9 +3965,9 @@
-                  Gramext.action
-                    (fun (x : string)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (Qast.Str x : 'e__26))])],
-+                      (Qast.Str x : 'e__28))])],
-           Gramext.action
--            (fun (a : 'e__26 option)
-+            (fun (a : 'e__28 option)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.Option a : 'a_opt));
-           [Gramext.Snterm
-@@ -4390,9 +4433,9 @@
-                  Gramext.action
-                    (fun _ (e : 'expr)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (e : 'e__29))])],
-+                      (e : 'e__31))])],
-           Gramext.action
--            (fun (a : 'e__29 list)
-+            (fun (a : 'e__31 list)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.List a : 'a_list));
-           [Gramext.Snterm
-@@ -4425,9 +4468,9 @@
-                  Gramext.action
-                    (fun _ (e : 'expr)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (e : 'e__28))])],
-+                      (e : 'e__30))])],
-           Gramext.action
--            (fun (a : 'e__28 list)
-+            (fun (a : 'e__30 list)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.List a : 'a_list));
-           [Gramext.Snterm
-@@ -4454,9 +4497,9 @@
-                  Gramext.action
-                    (fun _ (e : 'expr)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (e : 'e__27))])],
-+                      (e : 'e__29))])],
-           Gramext.action
--            (fun (a : 'e__27 list)
-+            (fun (a : 'e__29 list)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.List a : 'a_list));
-           [Gramext.Snterm
-@@ -4547,9 +4590,9 @@
-                  Gramext.action
-                    (fun _ (cf : 'class_str_item)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (cf : 'e__30))])],
-+                      (cf : 'e__32))])],
-           Gramext.action
--            (fun (a : 'e__30 list)
-+            (fun (a : 'e__32 list)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.List a : 'a_list));
-           [Gramext.Snterm
-@@ -4592,9 +4635,9 @@
-                  Gramext.action
-                    (fun _ (csf : 'class_sig_item)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (csf : 'e__32))])],
-+                      (csf : 'e__34))])],
-           Gramext.action
--            (fun (a : 'e__32 list)
-+            (fun (a : 'e__34 list)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.List a : 'a_list));
-           [Gramext.Snterm
-@@ -4623,9 +4666,9 @@
-                  Gramext.action
-                    (fun _ (csf : 'class_sig_item)
-                       (_loc : Lexing.position * Lexing.position) ->
--                      (csf : 'e__31))])],
-+                      (csf : 'e__33))])],
-           Gramext.action
--            (fun (a : 'e__31 list)
-+            (fun (a : 'e__33 list)
-                (_loc : Lexing.position * Lexing.position) ->
-                (Qast.List a : 'a_list));
-           [Gramext.Snterm
-Index: camlp4/top/rprint.ml
-===================================================================
-RCS file: /net/yquem/devel/caml/repository/csl/camlp4/top/rprint.ml,v
-retrieving revision 1.18
-diff -u -r1.18 rprint.ml
---- camlp4/top/rprint.ml       29 Jun 2005 04:11:26 -0000      1.18
-+++ camlp4/top/rprint.ml       5 Apr 2006 02:26:01 -0000
-@@ -288,8 +288,9 @@
-       fprintf ppf "@[<2>method %s%s%s :@ %a;@]"
-         (if priv then "private " else "") (if virt then "virtual " else "")
-         name Toploop.print_out_type.val ty
--  | Ocsg_value name mut ty ->
--      fprintf ppf "@[<2>value %s%s :@ %a;@]" (if mut then "mutable " else "")
-+  | Ocsg_value name mut virt ty ->
-+      fprintf ppf "@[<2>value %s%s%s :@ %a;@]"
-+        (if mut then "mutable " else "") (if virt then "virtual " else "")
-         name Toploop.print_out_type.val ty ]
- ;
diff --git a/testlabl/varunion.ml b/testlabl/varunion.ml
deleted file mode 100644 (file)
index 30a410f..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-(* cvs update -r varunion parsing typing bytecomp toplevel *)
-
-type t = private [> ];;
-type u = private [> ] ~ [t];;
-type v = [t | u];;
-let f x = (x : t :> v);;
-
-(* bad *)
-module Mix(X: sig type t = private [> ] end)
-    (Y: sig type t = private [> ] end) =
-  struct type t = [X.t | Y.t] end;;
-
-(* bad *)
-module Mix(X: sig type t = private [> `A of int ] end)
-    (Y: sig type t = private [> `A of bool] ~ [X.t] end) =
-  struct type t = [X.t | Y.t] end;;
-
-(* ok *)
-module Mix(X: sig type t = private [> `A of int ] end)
-    (Y: sig type t = private [> `A of int] ~ [X.t] end) =
-  struct type t = [X.t | Y.t] end;;
-
-(* bad *)
-module Mix(X: sig type t = private [> `A of int ] end)
-    (Y: sig type t = private [> `B of bool] ~ [X.t] end) =
-  struct type t = [X.t | Y.t] end;;
-
-type 'a t = private [> `L of 'a] ~ [`L];;
-
-(* ok *)
-module Mix(X: sig type t = private [> `A of int ] ~ [`B] end)
-    (Y: sig type t = private [> `B of bool] ~ [X.t] end) =
-  struct type t = [X.t | Y.t] let is_t = function #t -> true | _ -> false end;;
-
-module Mix(X: sig type t = private [> `A of int ] ~ [`B] end)
-    (Y: sig type t = private [> `B of bool] ~ [X.t] end) =
-  struct
-    type t = [X.t | Y.t]
-    let which = function #X.t -> `X | #Y.t -> `Y
-  end;;
-
-module Mix(I: sig type t = private [> ] ~ [`A;`B] end)
-    (X: sig type t = private [> I.t | `A of int ] ~ [`B] end)
-    (Y: sig type t = private [> I.t | `B of bool] ~ [X.t] end) =
-  struct
-    type t = [X.t | Y.t]
-    let which = function #X.t -> `X | #Y.t -> `Y
-  end;;
-
-(* ok *)
-module M =
-  Mix(struct type t = [`C of char] end)
-    (struct type t = [`A of int | `C of char] end)
-    (struct type t = [`B of bool | `C of char] end);;
-
-(* bad *)
-module M =
-  Mix(struct type t = [`B of bool] end)
-    (struct type t = [`A of int | `B of bool] end)
-    (struct type t = [`B of bool | `C of char] end);;
-
-(* ok *)
-module M1 = struct type t = [`A of int | `C of char] end
-module M2 = struct type t = [`B of bool | `C of char] end
-module I = struct type t = [`C of char] end
-module M = Mix(I)(M1)(M2) ;;
-
-let c = (`C 'c' : M.t) ;;
-
-module M(X : sig type t = private [> `A] end) = 
-  struct let f (#X.t as x) = x end;;
-
-(* code generation *)
-type t = private [> `A ] ~ [`B];;
-match `B with #t -> 1 | `B -> 2;;
-
-module M : sig type t = private [> `A of int | `B] ~ [`C] end =
-  struct type t = [`A of int | `B | `D of bool] end;;
-let f = function (`C | #M.t) -> 1+1 ;;
-let f = function (`A _ | `B #M.t) -> 1+1 ;;
-
-(* expression *)
-module Mix(X:sig type t = private [> ] val show: t -> string end)
-    (Y:sig type t = private [> ] ~ [X.t] val show: t -> string end) =
-  struct
-    type t = [X.t | Y.t]
-    let show : t -> string = function
-        #X.t as x -> X.show x
-      | #Y.t as y -> Y.show y
-  end;;
-
-module EStr = struct
-  type t = [`Str of string]
-  let show (`Str s) = s
-end
-module EInt = struct
-  type t = [`Int of int]
-  let show (`Int i) = string_of_int i
-end
-module M = Mix(EStr)(EInt);;
-
-module type T = sig type t = private [> ] val show: t -> string end
-module Mix(X:T)(Y:T with type t = private [> ] ~ [X.t]) :
-    T with type t = [X.t | Y.t] =
-  struct
-    type t = [X.t | Y.t]
-    let show = function
-        #X.t as x -> X.show x
-      | #Y.t as y -> Y.show y
-  end;;
-module M = Mix(EStr)(EInt);;
-
-(* deep *)
-module M : sig type t = private [> `A] end = struct type t = [`A] end
-module M' : sig type t = private [> ] end = struct type t = [M.t | `A] end;;
-
-(* bad *)
-type t = private [> ]
-type u = private [> `A of int] ~ [t] ;;
-
-(* ok *)
-type t = private [> `A of int]
-type u = private [> `A of int] ~ [t] ;;
-
-module F(X: sig
-  type t = private [> ] ~ [`A;`B;`C;`D]
-  type u = private [> `A|`B|`C] ~ [t; `D]
-end) : sig type v = private [< X.t | X.u | `D] end = struct
-  open X
-  let f = function #u -> 1 | #t -> 2 | `D -> 3
-  let g = function #u|#t|`D -> 2 
-  type v = [t|u|`D]
-end
-
-(* ok *)
-module M = struct type t = private [> `A] end;;
-module M' : sig type t = private [> ] ~ [`A] end = M;;
-
-(* ok *)
-module type T = sig type t = private [> ] ~ [`A] end;;
-module type T' = T with type t = private [> `A];;
-
-(* ok *)
-type t = private [> ] ~ [`A]
-let f = function `A x -> x | #t -> 0
-type t' = private [< `A of int | t];;
-
-(* should be ok *)
-module F(X:sig end) :
-    sig type t = private [> ] type u = private [> ] ~ [t] end =
-  struct type t = [ `A] type u = [`B] end
-module M = F(String)
-let f = function #M.t -> 1 | #M.u -> 2
-let f = function #M.t -> 1 | _ -> 2
-type t = [M.t | M.u]
-let f = function #t -> 1 | _ -> 2;;
-module G(X : sig type t = private [> ] type u = private [> ] ~ [t] end) =
-  struct let f = function #X.t -> 1 | _ -> 2 end;;
-module M1 = G(struct module N = F(String) type t = N.t type u = N.u end) ;;
-module M1 = G(struct type t = M.t type u = M.u end) ;;
-(* bad *)
-let f = function #F(String).t -> 1 | _ -> 2;;
-type t = [F(String).t | M.u]
-let f = function #t -> 1 | _ -> 2;;
-module N : sig type t = private [> ] end =
-  struct type t = [F(String).t | M.u] end;;
-
-(* compatibility improvement *)
-type a = [`A of int | `B]
-type b = [`A of bool | `B]
-type c = private [> ] ~ [a;b]
-let f = function #c -> 1 | `A x -> truncate x
-type d = private [> ] ~ [a]
-let g = function #d -> 1 | `A x -> truncate x;;
-
-
-(* Expression Problem: functorial form *)
-
-type num = [ `Num of int ]
-
-module type Exp = sig
-  type t = private [> num]
-  val eval : t -> t
-  val show : t -> string
-end
-
-module Num(X : Exp) = struct
-  type t = num
-  let eval (`Num _ as x) : X.t = x
-  let show (`Num n) = string_of_int n
-end
-
-type 'a add = [ `Add of 'a * 'a ]
-
-module Add(X : Exp with type t = private [> num | 'a add] as 'a) = struct
-  type t = X.t add
-  let show (`Add(e1, e2) : t) = "("^ X.show e1 ^"+"^ X.show e2 ^")"
-  let eval (`Add(e1, e2) : t) =
-    let e1 = X.eval e1 and e2 = X.eval e2 in
-    match e1, e2 with
-      `Num n1, `Num n2 -> `Num (n1+n2)
-    | `Num 0, e | e, `Num 0 -> e
-    | e12 -> `Add e12
-end 
-
-type 'a mul = [`Mul of 'a * 'a]
-
-module Mul(X : Exp with type t = private [> num | 'a mul] as 'a) = struct
-  type t = X.t mul
-  let show (`Mul(e1, e2) : t) = "("^ X.show e1 ^"*"^ X.show e2 ^")"
-  let eval (`Mul(e1, e2) : t) =
-    let e1 = X.eval e1 and e2 = X.eval e2 in
-    match e1, e2 with
-      `Num n1, `Num n2 -> `Num (n1*n2)
-    | `Num 0, e | e, `Num 0 -> `Num 0
-    | `Num 1, e | e, `Num 1 -> e
-    | e12 -> `Mul e12
-end
-
-module Ext(X : sig type t = private [> ] end)(Y : sig type t end) = struct
-  module type S =
-    sig
-      type t = private [> ] ~ [ X.t ]
-      val eval : t -> Y.t
-      val show : t -> string
-    end
-end
-
-module Dummy = struct type t = [`Dummy] end
-
-module Mix(E : Exp)(E1 : Ext(Dummy)(E).S)(E2 : Ext(E1)(E).S) =
-  struct
-    type t = [E1.t | E2.t]
-    let eval = function
-        #E1.t as x -> E1.eval x
-      | #E2.t as x -> E2.eval x
-    let show = function
-        #E1.t as x -> E1.show x
-      | #E2.t as x -> E2.show x
-  end
-
-module rec EAdd : (Exp with type t = [num | EAdd.t add]) =
-    Mix(EAdd)(Num(EAdd))(Add(EAdd))
-
-(* A bit heavy: one must pass E to everybody *)
-module rec E : Exp with type t = [num | E.t add | E.t mul] =
-    Mix(E)(Mix(E)(Num(E))(Add(E)))(Mul(E))
-
-let e = E.eval (`Add(`Mul(`Num 2,`Num 3),`Num 1))
-
-(* Alternatives *)
-(* Direct approach, no need of Mix *)
-module rec E : (Exp with type t = [num | E.t add | E.t mul]) =
-  struct
-    module E1 = Num(E)
-    module E2 = Add(E)
-    module E3 = Mul(E)
-    type t = E.t
-    let show = function
-      | #num as x -> E1.show x
-      | #add as x -> E2.show x
-      | #mul as x -> E3.show x
-    let eval = function
-      | #num as x -> E1.eval x
-      | #add as x -> E2.eval x
-      | #mul as x -> E3.eval x
-  end
-
-(* Do functor applications in Mix *)
-module type T = sig type t = private [> ] end
-module type Tnum = sig type t = private [> num] end
-
-module Ext(E : Tnum) = struct
-  module type S = functor (Y : Exp with type t = E.t) ->
-    sig
-      type t = private [> num]
-      val eval : t -> Y.t
-      val show : t -> string
-    end
-end
-
-module Ext'(E : Tnum)(X : T) = struct
-  module type S = functor (Y : Exp with type t = E.t) ->
-    sig
-      type t = private [> ] ~ [ X.t ]
-      val eval : t -> Y.t
-      val show : t -> string
-    end
-end
-
-module Mix(E : Exp)(F1 : Ext(E).S)(F2 : Ext'(E)(F1(E)).S) =
-  struct
-    module E1 = F1(E)
-    module E2 = F2(E)
-    type t = [E1.t | E2.t]
-    let eval = function
-        #E1.t as x -> E1.eval x
-      | #E2.t as x -> E2.eval x
-    let show = function
-        #E1.t as x -> E1.show x
-      | #E2.t as x -> E2.show x
-  end
-
-module Join(E : Exp)(F1 : Ext(E).S)(F2 : Ext'(E)(F1(E)).S)
-    (E' : Exp with type t = E.t) =
-  Mix(E)(F1)(F2)
-
-module rec EAdd : (Exp with type t = [num | EAdd.t add]) =
-  Mix(EAdd)(Num)(Add)
-
-module rec EMul : (Exp with type t = [num | EMul.t mul]) =
-  Mix(EMul)(Num)(Mul)
-
-module rec E : (Exp with type t = [num | E.t add | E.t mul]) =
-  Mix(E)(Join(E)(Num)(Add))(Mul)
-
-(* Linear extension by the end: not so nice *)
-module LExt(X : T) = struct
-  module type S =
-    sig
-      type t
-      val eval : t -> X.t
-      val show : t -> string
-    end
-end
-module LNum(E: Exp)(X : LExt(E).S with type t = private [> ] ~ [num]) =
-  struct
-    type t = [num | X.t]
-    let show = function
-        `Num n -> string_of_int n
-      | #X.t as x -> X.show x
-    let eval = function
-        #num as x -> x
-      | #X.t as x -> X.eval x
-  end
-module LAdd(E : Exp with type t = private [> num | 'a add] as 'a)
-    (X : LExt(E).S with type t = private [> ] ~ [add]) =
-  struct
-    type t = [E.t add | X.t]
-    let show = function
-        `Add(e1,e2) -> "("^ E.show e1 ^"+"^ E.show e2 ^")"
-      | #X.t as x -> X.show x
-    let eval = function
-        `Add(e1,e2) ->
-          let e1 = E.eval e1 and e2 = E.eval e2 in
-          begin match e1, e2 with
-            `Num n1, `Num n2 -> `Num (n1+n2)
-          | `Num 0, e | e, `Num 0 -> e
-          | e12 -> `Add e12
-          end
-      | #X.t as x -> X.eval x
-  end
-module LEnd = struct
-  type t = [`Dummy]
-  let show `Dummy = ""
-  let eval `Dummy = `Dummy
-end
-module rec L : Exp with type t = [num | L.t add | `Dummy] =
-    LAdd(L)(LNum(L)(LEnd))
-
-(* Back to first form, but add map *)
-
-module Num(X : Exp) = struct
-  type t = num
-  let map f x = x
-  let eval1 (`Num _ as x) : X.t = x
-  let show (`Num n) = string_of_int n
-end
-
-module Add(X : Exp with type t = private [> num | 'a add] as 'a) = struct
-  type t = X.t add
-  let show (`Add(e1, e2) : t) = "("^ X.show e1 ^"+"^ X.show e2 ^")"
-  let map f (`Add(e1, e2) : t) = `Add(f e1, f e2)
-  let eval1 (`Add(e1, e2) as e : t) =
-    match e1, e2 with
-      `Num n1, `Num n2 -> `Num (n1+n2)
-    | `Num 0, e | e, `Num 0 -> e
-    | _ -> e
-end 
-
-module Mul(X : Exp with type t = private [> num | 'a mul] as 'a) = struct
-  type t = X.t mul
-  let show (`Mul(e1, e2) : t) = "("^ X.show e1 ^"*"^ X.show e2 ^")"
-  let map f (`Mul(e1, e2) : t) = `Mul(f e1, f e2)
-  let eval1 (`Mul(e1, e2) as e : t) =
-    match e1, e2 with
-      `Num n1, `Num n2 -> `Num (n1*n2)
-    | `Num 0, e | e, `Num 0 -> `Num 0
-    | `Num 1, e | e, `Num 1 -> e
-    | _ -> e
-end
-
-module Ext(X : sig type t = private [> ] end)(Y : sig type t end) = struct
-  module type S =
-    sig
-      type t = private [> ] ~ [ X.t ]
-      val map  : (Y.t -> Y.t) -> t -> t
-      val eval1 : t -> Y.t
-      val show : t -> string
-    end
-end
-
-module Mix(E : Exp)(E1 : Ext(Dummy)(E).S)(E2 : Ext(E1)(E).S) =
-  struct
-    type t = [E1.t | E2.t]
-    let map f = function
-        #E1.t as x -> (E1.map f x : E1.t :> t)
-      | #E2.t as x -> (E2.map f x : E2.t :> t)
-    let eval1 = function
-        #E1.t as x -> E1.eval1 x
-      | #E2.t as x -> E2.eval1 x
-    let show = function
-        #E1.t as x -> E1.show x
-      | #E2.t as x -> E2.show x
-  end
-
-module type ET = sig
-  type t
-  val map  : (t -> t) -> t -> t
-  val eval1 : t -> t
-  val show : t -> string
-end
-
-module Fin(E : ET) = struct
-  include E
-  let rec eval e = eval1 (map eval e)
-end
-
-module rec EAdd : (Exp with type t = [num | EAdd.t add]) =
-    Fin(Mix(EAdd)(Num(EAdd))(Add(EAdd)))
-
-module rec E : Exp with type t = [num | E.t add | E.t mul] =
-    Fin(Mix(E)(Mix(E)(Num(E))(Add(E)))(Mul(E)))
-
-let e = E.eval (`Add(`Mul(`Num 2,`Num 3),`Num 1))
index 10425ca5f44c09f1fb4fee0e5d20645fc6249beb..51e93b8f8664017719deb623af97cef7bbf06a3f 100644 (file)
@@ -14,7 +14,7 @@ default:
 
 all:
        @for dir in tests/*; do \
-         $(MAKE) $(NO_PRINT) one DIR=$$dir; \
+         $(MAKE) $(NO_PRINT) exec-one DIR=$$dir; \
        done 2>&1 | tee _log
        @$(MAKE) report
 
@@ -22,13 +22,16 @@ list:
        @if [ -z $(FILE) ]; then echo "No value set for variable 'FILE'."; exit 1; fi
        @if [ ! -f $(FILE) ]; then echo "File '$(FILE)' does not exist."; exit 1; fi
        @while read LINE; do \
-         $(MAKE) $(NO_PRINT) one DIR=$$LINE; \
+         $(MAKE) $(NO_PRINT) exec-one DIR=$$LINE; \
        done < $(FILE) 2>&1 | tee _log
        @$(MAKE) report
 
 one: lib
        @if [ -z $(DIR) ]; then echo "No value set for variable 'DIR'."; exit 1; fi
        @if [ ! -d $(DIR) ]; then echo "Directory '$(DIR)' does not exist."; exit 1; fi
+       @$(MAKE) $(NO_PRINT) exec-one DIR=$(DIR)
+
+exec-one:
        @echo "Running tests from '$$DIR' ..."
        @(cd $(DIR) && $(MAKE) BASEDIR=$(BASEDIR) && cd ../..)
 
diff --git a/testsuite/tests/basic/maps.ml b/testsuite/tests/basic/maps.ml
new file mode 100644 (file)
index 0000000..cb0e989
--- /dev/null
@@ -0,0 +1,28 @@
+(***********************************************************************)
+(*                                                                     *)
+(*                           Objective Caml                            *)
+(*                                                                     *)
+(*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *)
+(*                                                                     *)
+(*  Copyright 1996 Institut National de Recherche en Informatique et   *)
+(*  en Automatique.  All rights reserved.  This file is distributed    *)
+(*  under the terms of the Q Public License version 1.0.               *)
+(*                                                                     *)
+(***********************************************************************)
+
+(* $Id: sets.ml 5183 2002-10-16 09:06:39Z weis $ *)
+
+module IntMap = Map.Make(struct type t = int let compare x y = x-y end)
+
+let m1 = IntMap.add 4 "Y" (IntMap.singleton 3 "X1")
+let m2 = IntMap.add 4 "Y" (IntMap.singleton 5 "X2")
+
+let show m = IntMap.iter (fun k v -> Printf.printf "%d %s\n" k v) m
+
+let () =
+  print_endline "Union+concat";
+  show (IntMap.merge (fun _ l r -> match l, r with Some x, None | None, Some x -> Some x | Some x, Some y -> Some (x ^ x) | _ -> assert false) m1 m2);
+  print_endline "Inter";
+  show (IntMap.merge (fun _ l r -> match l, r with Some x, Some y when x = y -> Some x | _ -> None) m1 m2);
+  ()
+
diff --git a/testsuite/tests/basic/maps.reference b/testsuite/tests/basic/maps.reference
new file mode 100644 (file)
index 0000000..c7b0c08
--- /dev/null
@@ -0,0 +1,6 @@
+Union+concat
+3 X1
+4 YY
+5 X2
+Inter
+4 Y
index bb266a017c9fc8bb5d08efc707772f98c4929f80..03c85ea407b84afedecb039602392768dea644f3 100644 (file)
@@ -588,7 +588,7 @@ let automated_test() =
   start_test "Search for /\\ba/";
   let r = Str.regexp "\\ba" in
   let n = 0 in
-  test_search_forward r n "abcd"
+  test_search_forward r n "a2cd"
     [|"a"|];
   test_search_forward r n "the a"
     [|"a"|];
@@ -606,7 +606,7 @@ let automated_test() =
   let n = 0 in
   test_search_forward r n "a"
     [|"a"|];
-  test_search_forward r n "bcda"
+  test_search_forward r n "bc_a"
     [|"a"|];
   test_search_forward r n "a foo"
     [|"a"|];
index df7f5ee607558b4e54ddbc66b221e1534eaf0b00..f9bc4271644fa41b8e5c620bac1ecf77d536f7ce 100644 (file)
@@ -1 +1 @@
-head -1 test2.result | grep -q '^[ab]*'
\ No newline at end of file
+sed -e 1q test2.result | grep -q '^[ab]*'
index 514ab3073c8f68c519415535f8059a5f3b64478f..95fa0ed04865b660a8e8bcf5fc8b67f5229e0836 100644 (file)
@@ -1 +1 @@
-head -1 test3.result | grep -q '^[ab]*'
\ No newline at end of file
+sed -e 1q test3.result | grep -q '^[ab]*'
index 92ef9c82ce330d822550a7604a7c57c6bb9bf219..2e8ef03a23d129dd1a109a843a30eead56ce3959 100644 (file)
@@ -1 +1 @@
-head -1 testsignal.result | grep -q '^[ab]*Got ctrl-C, exiting...$' 
\ No newline at end of file
+sed -e 1q testsignal.result | grep -q '^[ab]*Got ctrl-C, exiting...$' 
index c7ed8d15200cfd61b326c80ad6b81294cc7bd557..6808a2659d8609f66fb76a9d51e41bbccf11417a 100644 (file)
@@ -1 +1 @@
-head -1 testsignal2.result | grep -q '^[ab]*'
\ No newline at end of file
+sed -e 1q testsignal2.result | grep -q '^[ab]*'
diff --git a/testsuite/tests/typing-objects-bugs/pr4824_ok.ml b/testsuite/tests/typing-objects-bugs/pr4824_ok.ml
new file mode 100644 (file)
index 0000000..9069593
--- /dev/null
@@ -0,0 +1,10 @@
+module M :
+   sig
+     class x : int -> object method m : int end
+  end
+=
+struct
+  class x _ = object
+    method m = 42
+  end
+end;;
diff --git a/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml b/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml
new file mode 100644 (file)
index 0000000..983455b
--- /dev/null
@@ -0,0 +1,6 @@
+module M : sig class c : 'a -> object val x : 'b end end =
+  struct class c x = object val x = x end end
+
+class c (x : int) = object inherit M.c x method x : bool = x end
+
+let r = (new c 2)#x;;
index aa95aaead6ef8cea25ac8b716997dbf626cfd3a3..6faf6fb60c1fd64d90d410bc3d7b7d90592abdde 100644 (file)
@@ -121,7 +121,7 @@ Type point = point is not a subtype of color_point = color_point
       print_string (self#color);
       print_string ")"
   end;;
-\e[mWarning 13: the following instance variables are overriden by the class printable_point :
+\e[mWarning 13: the following instance variables are overridden by the class printable_point :
   x
 The behaviour changed in ocaml 3.10 (previous behaviour was hiding.)
 class printable_color_point :
index d93c5ec0ab39d7a5d5410b97a508b21c736e8cc3..73d8de03e1c79d6994be7944424d91558c916df7 100644 (file)
@@ -186,7 +186,7 @@ and d : unit -> object method f : int end
     method a = a
     method b = b
   end;;
-\e[mWarning 13: the following instance variables are overriden by the class c :
+\e[mWarning 13: the following instance variables are overridden by the class c :
   x
 The behaviour changed in ocaml 3.10 (previous behaviour was hiding.)
 \e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A\e[A# class e () = object 
@@ -229,7 +229,7 @@ The behaviour changed in ocaml 3.10 (previous behaviour was hiding.)
 
 
 
-Warning 13: the following instance variables are overriden by the class d :
+Warning 13: the following instance variables are overridden by the class d :
   t z
 The behaviour changed in ocaml 3.10 (previous behaviour was hiding.)
 Characters 91-96:
index d1a9ee16981945395c5935b485cf60a1ec34a3ea..13c53636979873672f94ec1eeef70ae3a5d033c0 100644 (file)
@@ -612,3 +612,13 @@ and transf_alist : 'a. _ -> ('a*t) list -> ('a*t) list = fun f -> function
   | [] -> []
   | (k,v)::tl -> (k, transf f v) :: transf_alist f tl
 ;;
+
+(* PR#4862 *)
+
+type t = {f: 'a. ('a list -> int) Lazy.t}
+let l : t = { f = lazy (raise Not_found)};;
+
+(* variant *)
+type t = {f: 'a. 'a -> unit};;
+{f=fun ?x y -> ()};;
+{f=fun ?x y -> y};; (* fail *)
index 8b1b45a66cc96e7ca04b95f80be53bd68663b9b2..72a4f55106d38dd91693e51f6ccd76d7fc3bbac1 100644 (file)
@@ -572,4 +572,11 @@ val neg : int -> bool -> int * bool = <fun>
 #                         type t = A of int | B of (int * t) list | C of (string * t) list
 val transf : (int -> t) -> t -> t = <fun>
 val transf_alist : (int -> t) -> ('a * t) list -> ('a * t) list = <fun>
+#         type t = { f : 'a. ('a list -> int) Lazy.t; }
+val l : t = {f = <lazy>}
+#     type t = { f : 'a. 'a -> unit; }
+# - : t = {f = <fun>}
+# \e[A# {f=\e[4mfun ?x y -> y\e[m};; (* fail *)
+\e[mError: This field value has type unit -> unit which is less general than
+         'a. 'a -> unit
 # 
index e599b19c131c399a394f9a3c99777e3b5623bb4b..75e26f18175d8945c7ab2420b29af3dccdee29db 100644 (file)
@@ -556,4 +556,11 @@ val neg : int -> bool -> int * bool = <fun>
 #                         type t = A of int | B of (int * t) list | C of (string * t) list
 val transf : (int -> t) -> t -> t = <fun>
 val transf_alist : (int -> t) -> ('a * t) list -> ('a * t) list = <fun>
+#         type t = { f : 'a. ('a list -> int) Lazy.t; }
+val l : t = {f = <lazy>}
+#     type t = { f : 'a. 'a -> unit; }
+# - : t = {f = <fun>}
+# \e[A# {f=\e[4mfun ?x y -> y\e[m};; (* fail *)
+\e[mError: This field value has type unit -> unit which is less general than
+         'a. 'a -> unit
 # 
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr5057_ok.ml b/testsuite/tests/typing-polyvariants-bugs/pr5057_ok.ml
new file mode 100644 (file)
index 0000000..38df770
--- /dev/null
@@ -0,0 +1,14 @@
+(* PR5057 *)
+
+module TT = struct
+  module IntSet = Set.Make(struct type t = int let compare = compare end)
+end
+
+let () =
+  let f flag = 
+    let module T = TT in
+    let _ = match flag with `A -> 0 | `B r -> r in
+    let _ = match flag with `A -> T.IntSet.mem | `B r -> r in
+    ()
+  in
+  f `A
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.ml b/testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.ml
new file mode 100644 (file)
index 0000000..35cc338
--- /dev/null
@@ -0,0 +1,7 @@
+(* This one should fail *)
+
+let f flag = 
+  let module T = Set.Make(struct type t = int let compare = compare end) in
+  let _ = match flag with `A -> 0 | `B r -> r in
+  let _ = match flag with `A -> T.mem | `B r -> r in
+  ()
index 5bf3c16e17f2795b576ab3a5a0c48698f9409fce..b4e46d0351bbf2fd2c4d8832bbcc826c5a19a22e 100644 (file)
@@ -78,8 +78,8 @@
       type \e[4mt = M.t = T of int\e[m
       val mk : int -> t
     end = M;;
-\e[mError: The variant or record definition does not match that of type
-M.t
+\e[mError: This variant or record definition does not match that of type M.t
+       A private type would be revealed.
 #           module M5 : sig type t = M.t = private T of int val mk : int -> t end
 #         module M6 : sig type t = private T of int val mk : int -> t end
 #                   module M' :
index 6adfbf20f8b6e657373e61389196ab8e94516c02..cf3c69515df68c36fa585c9660c5d4db13e28d64 100644 (file)
@@ -1,5 +1,6 @@
 ocamldep
 ocamldep.opt
+ocamldep.bak
 ocamlprof
 opnames.ml
 dumpobj
@@ -21,3 +22,4 @@ lexer301.ml
 scrapelabels
 addlabels
 myocamlbuild_config.ml
+objinfo_helper
index 9a5ab8be13ba5ea39a7293b11f291f8b025287bf..36c177ed430e9def03fdaec46d791171bd35934a 100644 (file)
@@ -10,10 +10,6 @@ depend.cmo: ../parsing/parsetree.cmi ../parsing/longident.cmi \
     ../parsing/location.cmi depend.cmi
 depend.cmx: ../parsing/parsetree.cmi ../parsing/longident.cmx \
     ../parsing/location.cmx depend.cmi
-dumpapprox.cmo: ../utils/config.cmi ../asmcomp/compilenv.cmi \
-    ../asmcomp/clambda.cmi
-dumpapprox.cmx: ../utils/config.cmx ../asmcomp/compilenv.cmx \
-    ../asmcomp/clambda.cmx
 dumpobj.cmo: ../utils/tbl.cmi opnames.cmo ../bytecomp/opcodes.cmo \
     ../parsing/location.cmi ../bytecomp/lambda.cmi ../bytecomp/instruct.cmi \
     ../typing/ident.cmi ../bytecomp/emitcode.cmi ../utils/config.cmi \
@@ -24,12 +20,14 @@ dumpobj.cmx: ../utils/tbl.cmx opnames.cmx ../bytecomp/opcodes.cmx \
     ../typing/ident.cmx ../bytecomp/emitcode.cmx ../utils/config.cmx \
     ../bytecomp/cmo_format.cmi ../bytecomp/bytesections.cmx \
     ../parsing/asttypes.cmi
-lexer301.cmo: ../utils/warnings.cmi ../utils/misc.cmi ../parsing/location.cmi
-lexer301.cmx: ../utils/warnings.cmx ../utils/misc.cmx ../parsing/location.cmx
 myocamlbuild_config.cmo:
 myocamlbuild_config.cmx:
-objinfo.cmo: ../utils/config.cmi ../bytecomp/cmo_format.cmi
-objinfo.cmx: ../utils/config.cmx ../bytecomp/cmo_format.cmi
+objinfo.cmo: ../utils/misc.cmi ../utils/config.cmi ../asmcomp/cmx_format.cmi \
+    ../bytecomp/cmo_format.cmi ../asmcomp/clambda.cmi \
+    ../bytecomp/bytesections.cmi
+objinfo.cmx: ../utils/misc.cmx ../utils/config.cmx ../asmcomp/cmx_format.cmi \
+    ../bytecomp/cmo_format.cmi ../asmcomp/clambda.cmx \
+    ../bytecomp/bytesections.cmx
 ocaml299to3.cmo:
 ocaml299to3.cmx:
 ocamlcp.cmo: ../driver/main_args.cmi
@@ -60,5 +58,5 @@ primreq.cmo: ../utils/config.cmi ../bytecomp/cmo_format.cmi
 primreq.cmx: ../utils/config.cmx ../bytecomp/cmo_format.cmi
 profiling.cmo: profiling.cmi
 profiling.cmx: profiling.cmi
-scrapelabels.cmo: lexer301.cmo
-scrapelabels.cmx: lexer301.cmx
+scrapelabels.cmo:
+scrapelabels.cmx:
index fb8e6868abbd87423a0b1413dc9773c9d6ff3cff..2cd82df88a11d773585bbd6a04f28eb3e8a695bc 100644 (file)
@@ -1,6 +1,6 @@
 # Characters
 
-# $Id$
+# $Id: Characters 2629 1999-11-29 19:04:21Z doligez $
 
 # Usage:
 #    Characters n1 to n2
index 2fce340103232e72c4eaa7684923d54e608fbfc3..fe0b7cb76222a445d276e9f576fe91d360d72ed7 100644 (file)
@@ -1,6 +1,6 @@
 # DoMake
 
-# $Id$
+# $Id: DoMake 9547 2010-01-22 12:48:24Z doligez $
 
 # Execute the output of "Make -f Makefile.Mac -f Makefile.Mac.depend"
 # or "Make -f Makefile -f Makefile.depend" if "Makefile.Mac" does not exist
index 5693b27e8d67a9c3e9da5e5103dd4b7e2bc312f4..0ca8e3d483457718a23f9c989a2125d965227c9a 100644 (file)
@@ -1,6 +1,6 @@
 # MakeDepend
 
-# $Id$
+# $Id: MakeDepend 2631 1999-11-29 19:04:25Z doligez $
 
 
 # Usage: MakeDepend fileÉ
index bad14c7e50ee77e616660b36cf9887361a26c6b4..f7997e85cded57b8f7d012d9d6635a6c79b38d19 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 8616 2007-11-22 22:14:43Z doligez $
 
 include Makefile.shared
 
index b90c0c4f6662963a75aa3f43a5c1e87a9668680c..66b4598ed1999fcbf661381ccc00bed2fe0b9fc2 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 8485 2007-11-07 10:14:21Z frisch $
 
 include Makefile.shared
 
index 1abf73b4bb36b95d114e3578d47afe4da2204cff..7f59b38aa83494e21a8b43af208ff226559b3dce 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.shared 10530 2010-06-07 06:58:41Z garrigue $
 
 include ../config/Makefile
 
@@ -23,8 +23,9 @@ INCLUDES=-I ../utils -I ../parsing -I ../typing -I ../bytecomp -I ../asmcomp \
 COMPFLAGS= -warn-error A $(INCLUDES)
 LINKFLAGS=$(INCLUDES)
 
-all: ocamldep ocamlprof ocamlcp ocamlmktop ocamlmklib scrapelabels addlabels \
-     dumpobj
+all: ocamldep ocamlprof ocamlcp ocamlmktop ocamlmklib dumpobj objinfo
+# scrapelabels addlabels
+
 .PHONY: all
 
 opt.opt: ocamldep.opt
@@ -154,8 +155,8 @@ scrapelabels: $(SCRAPELABELS)
 lexer301.ml: lexer301.mll
        $(CAMLLEX) lexer301.mll
 
-install::
-       cp scrapelabels $(LIBDIR)
+#install::
+#      cp scrapelabels $(LIBDIR)
 
 clean::
        rm -f scrapelabels lexer301.ml
@@ -170,8 +171,8 @@ addlabels: addlabels.cmo
        $(CAMLC) $(LINKFLAGS) -w sl -o addlabels \
                $(ADDLABELS_IMPORTS) addlabels.cmo
 
-install::
-       cp addlabels $(LIBDIR)
+#install::
+#      cp addlabels $(LIBDIR)
 
 clean::
        rm -f addlabels
@@ -225,21 +226,24 @@ clean::
 
 beforedepend:: opnames.ml
 
-# Dump .cmx files
+# Display info on compiled files
 
-dumpapprox: dumpapprox.cmo
-       $(CAMLC) $(LINKFLAGS) -o dumpapprox config.cmo dumpapprox.cmo
+objinfo_helper$(EXE): objinfo_helper.c ../config/s.h
+       $(BYTECC) -o objinfo_helper$(EXE) $(BYTECCCOMPOPTS) \
+          objinfo_helper.c $(LIBBFD_LINK)
 
-clean::
-       rm -f dumpapprox
+OBJINFO=../utils/misc.cmo ../utils/config.cmo ../bytecomp/bytesections.cmo \
+        objinfo.cmo
 
-# Print imported interfaces for .cmo files
+objinfo: objinfo_helper$(EXE) $(OBJINFO)
+       $(CAMLC) -o objinfo $(OBJINFO)
 
-objinfo: objinfo.cmo
-       $(CAMLC) $(LINKFLAGS) -o objinfo config.cmo objinfo.cmo
+install::
+       cp objinfo $(BINDIR)/ocamlobjinfo$(EXE)
+       cp objinfo_helper$(EXE) $(LIBDIR)/objinfo_helper$(EXE)
 
 clean::
-       rm -f objinfo
+       rm -f objinfo objinfo_helper$(EXE)
 
 # Scan object files for required primitives
 
@@ -266,7 +270,7 @@ clean::
        $(CAMLOPT) $(COMPFLAGS) -c $<
 
 clean::
-       rm -f *.cmo *.cmi
+       rm -f *.cmo *.cmi *.cma *.dll *.so *.lib *.a
 
 depend: beforedepend
        $(CAMLRUN) ./ocamldep $(INCLUDES) *.mli *.ml > .depend
index 15ad6f5a1fb3c4114f83f9833395df51c35eefac..3fd1912d8dd1c2423e32afc059563230643ecd57 100644 (file)
@@ -1,4 +1,4 @@
-(* $Id$ *)
+(* $Id: addlabels.ml 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 open StdLabels
 open Asttypes
index fc760945fcc09204fe907d8b8e8b718680d3fb68..adfdf7482e58f3263aa3d2c683d371547b12ed6b 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: checkstack.c 9625 2010-02-09 14:48:28Z weis $ */
 
 #include <stdio.h>
 #include <stdlib.h>
index 3e28ae9722ec4b2964836efff3f08c63a099c69c..23ea61f49655d5dd37b25088aca242fdf450a03c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: cvt_emit.mll 3304 2000-10-02 14:18:05Z maranget $ *)
 
 {
 let first_item = ref false
index 44e85702bdac6cb6189b1f7cd8098162bbf569df..b528dc3451dc1caaf4cb2a82fb3a1682013e8105 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: depend.ml 10263 2010-04-17 14:45:12Z garrigue $ *)
 
 open Format
 open Location
index a13870610b448a2561ec0bd9d63fc951cacce758..682d2c6d1c05c6e8b64072c14dab6fdc494d7784 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: depend.mli 4694 2002-04-18 07:27:47Z garrigue $ *)
 
 (** Module dependencies. *)
 
diff --git a/tools/dumpapprox.ml b/tools/dumpapprox.ml
deleted file mode 100644 (file)
index 4270842..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-(***********************************************************************)
-(*                                                                     *)
-(*                           Objective Caml                            *)
-(*                                                                     *)
-(*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *)
-(*                                                                     *)
-(*  Copyright 1996 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the Q Public License version 1.0.               *)
-(*                                                                     *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(* Dump a .cmx file *)
-
-open Config
-open Format
-open Clambda
-open Compilenv
-
-let print_digest ppf d =
-  for i = 0 to String.length d - 1 do
-    print_string(Printf.sprintf "%02x" (Char.code d.[i]))
-  done
-
-let rec print_approx ppf = function
-    Value_closure(fundesc, approx) ->
-      printf "@[<2>function %s@ arity %i" fundesc.fun_label fundesc.fun_arity;
-      if fundesc.fun_closed then begin
-        printf "@ (closed)"
-      end;
-      if fundesc.fun_inline <> None then begin
-        printf "@ (inline)"
-      end;
-      printf "@ -> @ %a@]" print_approx approx
-  | Value_tuple approx ->
-      let tuple ppf approx =
-        for i = 0 to Array.length approx - 1 do
-          if i > 0 then printf ";@ ";
-          printf "%i: %a" i print_approx approx.(i)
-        done in
-      printf "@[<hov 1>(%a)@]" tuple approx
-  | Value_unknown ->
-      print_string "_"
-  | Value_integer n ->
-      print_int n
-  | Value_constptr n ->
-      print_int n; print_string "p"
-
-let print_name_crc (name, crc) =
-  printf "@ %s (%a)" name print_digest crc
-
-let print_infos (ui, crc) =
-  printf "Name: %s@." ui.ui_name;
-  printf "CRC of implementation: %a@." print_digest crc;
-  printf "@[<hov 2>Globals defined:";
-  List.iter (fun s -> printf "@ %s" s) ui.ui_defines;
-  printf "@]@.";
-  let pr_imports ppf imps = List.iter print_name_crc imps in
-  printf "@[<v 2>Interfaces imported:%a@]@." pr_imports ui.ui_imports_cmi;
-  printf "@[<v 2>Implementations imported:%a@]@." pr_imports ui.ui_imports_cmx;
-  printf "@[<v 2>Approximation:@ %a@]@." print_approx ui.ui_approx;
-  let pr_funs ppf fns =
-    List.iter (fun arity -> printf "@ %i" arity) fns in
-  printf "@[<2>Currying functions:%a@]@." pr_funs ui.ui_curry_fun;
-  printf "@[<2>Apply functions:%a@]@." pr_funs ui.ui_apply_fun
-
-let print_unit_info filename =
-  let ic = open_in_bin filename in
-  try
-    let buffer = String.create (String.length cmx_magic_number) in
-    really_input ic buffer 0 (String.length cmx_magic_number);
-    if buffer = cmx_magic_number then begin
-      let ui = (input_value ic : unit_infos) in
-      let crc = Digest.input ic in
-      close_in ic;
-      print_infos (ui, crc)
-    end else if buffer = cmxa_magic_number then begin
-      let li = (input_value ic : library_infos) in
-      close_in ic;
-      List.iter print_infos li.lib_units
-    end else begin
-      close_in ic;
-      prerr_endline "Wrong magic number";
-      exit 2
-    end
-  with End_of_file | Failure _ ->
-    close_in ic;
-    prerr_endline "Error reading file";
-    exit 2
-
-let main () =
-  print_unit_info Sys.argv.(1);
-  exit 0
-
-let _ = main ()
index 2a054ee684a2fa7d795fb632751dfcde2cdc6e75..62fe18c802bc269d7bafcc3b83efd8e0b489a4ee 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: dumpobj.ml 9015 2008-09-10 12:53:05Z doligez $ *)
 
 (* Disassembler for executable and .cmo object files *)
 
index 9a244721df149d0fe773b22cfd122d01bd4dbccc..82a436c731372b460cfcca282c9d82f52cc7afbc 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer299.mll 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* The lexer definition *)
 
index daec549e7e64d14442c67277eb2561a6e12e5c40..afa3b3d10e3c72c3a329975c8fec495015bd59cc 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: lexer301.mll 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* The lexer definition *)
 
index 7e671e291005382b0f5fb762c98f2313129ff7ea..d2c7c75dcb7641df9e1ad3c7dd5b1a15cd704b1d 100755 (executable)
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: make-package-macosx 10448 2010-05-21 11:28:21Z doligez $
 
 cd package-macosx
 rm -rf ocaml.pkg ocaml-rw.dmg
 
-VERSION=`head -1 ../VERSION`
+VERSION=`sed -e 1q ../VERSION`
 VERSION_MAJOR=`sed -n -e '1s/^\([0-9]*\)\..*/\1/p' ../VERSION`
 VERSION_MINOR=`sed -n -e '1s/^[0-9]*\.\([0-9]*\)[.+].*/\1/p' ../VERSION`
 
index 943f83f3b893aa7d1744125348a0cb3fa390d2dc..4f467f26e6a3aa8d243746887b14949e5b9245c6 100644 (file)
 (*                           Objective Caml                            *)
 (*                                                                     *)
 (*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *)
+(*        Mehdi Dogguy, PPS laboratory, University Paris Diderot       *)
 (*                                                                     *)
 (*  Copyright 1996 Institut National de Recherche en Informatique et   *)
-(*  en Automatique.  All rights reserved.  This file is distributed    *)
-(*  under the terms of the Q Public License version 1.0.               *)
+(*  en Automatique.   Modifications Copyright 2010 Mehdi Dogguy,       *)
+(*  used and distributed as part of Objective Caml by permission from  *)
+(*  the author.   This file is distributed under the terms of the      *)
+(*  Q Public License version 1.0.                                      *)
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: objinfo.ml 10459 2010-05-24 14:27:50Z xleroy $ *)
 
-(* Dump a compilation unit description *)
+(* Dump info on .cmi, .cmo, .cmx, .cma, .cmxa, .cmxs files
+   and on bytecode executables. *)
 
+open Printf
+open Misc
 open Config
 open Cmo_format
+open Clambda
 
-let print_digest d =
-  for i = 0 to String.length d - 1 do
-    Printf.printf "%02x" (Char.code d.[i])
-  done
+let input_stringlist ic len =
+  let get_string_list sect len =
+    let rec fold s e acc =
+      if e != len then
+        if sect.[e] = '\000' then
+          fold (e+1) (e+1) (String.sub sect s (e-s) :: acc)
+        else fold s (e+1) acc
+      else acc
+    in fold 0 0 []
+  in
+  let sect = String.create len in
+  let _ = really_input ic sect 0 len in
+  get_string_list sect len
 
-let print_info cu =
-  print_string "  Unit name: "; print_string cu.cu_name; print_newline();
-  print_string "  Interfaces imported:"; print_newline();
-  List.iter
-    (fun (name, digest) ->
-      print_string "\t"; print_digest digest; print_string "\t";
-      print_string name; print_newline())
-    cu.cu_imports;
-  print_string "  Uses unsafe features: ";
-  begin match cu.cu_primitives with
-    [] -> print_string "no"; print_newline()
-  | l  -> print_string "YES"; print_newline();
-          print_string "  Primitives declared in this module:";
-          print_newline();
-          List.iter
-            (fun name -> print_string "\t"; print_string name; print_newline())
-            l
-  end
+let print_name_crc (name, crc) =
+  printf "\t%s\t%s\n" (Digest.to_hex crc) name
+
+let print_line name =
+  printf "\t%s\n" name
+
+let print_cmo_infos cu =
+  printf "Unit name: %s\n" cu.cu_name;
+  print_string "Interfaces imported:\n";
+  List.iter print_name_crc cu.cu_imports;
+  printf "Uses unsafe features: ";
+  match cu.cu_primitives with
+    | [] -> printf "no\n"
+    | l  ->
+        printf "YES\n";
+        printf "Primitives declared in this module:\n";
+        List.iter print_line l
+
+let rec print_approx_infos ppf = function
+    Value_closure(fundesc, approx) ->
+      Format.fprintf ppf "@[<2>function %s@ arity %i"
+        fundesc.fun_label fundesc.fun_arity;
+      if fundesc.fun_closed then begin
+        Format.fprintf ppf "@ (closed)"
+      end;
+      if fundesc.fun_inline <> None then begin
+        Format.fprintf ppf "@ (inline)"
+      end;
+      Format.fprintf ppf "@ -> @ %a@]" print_approx_infos approx
+  | Value_tuple approx ->
+      let tuple ppf approx =
+        for i = 0 to Array.length approx - 1 do
+          if i > 0 then Format.fprintf ppf ";@ ";
+          Format.fprintf ppf "%i: %a" i print_approx_infos approx.(i)
+        done in
+      Format.fprintf ppf "@[<hov 1>(%a)@]" tuple approx
+  | Value_unknown ->
+      Format.fprintf ppf "_"
+  | Value_integer n ->
+      Format.fprintf ppf "%d" n
+  | Value_constptr n ->
+      Format.fprintf ppf "%dp" n
 
-let print_spaced_string s = print_char ' '; print_string s
+let print_spaced_string s =
+  printf " %s" s
 
-let print_library_info lib =
-  print_string "  Force custom: ";
-  print_string (if lib.lib_custom then "YES" else "no");
-  print_newline();
-  print_string "  Extra C object files:";
+let print_cma_infos (lib : Cmo_format.library) =
+  printf "Force custom: %s\n" (if lib.lib_custom then "YES" else "no");
+  printf "Extra C object files:";
   (* PR#4949: print in linking order *)
-  List.iter print_spaced_string (List.rev lib.lib_ccobjs); print_newline();
-  print_string "  Extra C options:";
-  List.iter print_spaced_string lib.lib_ccopts; print_newline();
-  List.iter print_info lib.lib_units
-
-let print_intf_info name sign comps crcs =
-  print_string "  Module name: "; print_string name; print_newline();
-  print_string "  Interfaces imported:"; print_newline();
+  List.iter print_spaced_string (List.rev lib.lib_ccobjs);
+  printf "\nExtra C options:";
+  List.iter print_spaced_string lib.lib_ccopts;
+  printf "\n";
+  print_string "Extra dynamically-loaded libraries:";
+  List.iter print_spaced_string lib.lib_dllibs;
+  printf "\n";
+  List.iter print_cmo_infos lib.lib_units
+
+let print_cmi_infos name sign comps crcs =
+  printf "Unit name: %s\n" name;
+  printf "Interfaces imported:\n";
+  List.iter print_name_crc crcs
+
+let print_general_infos name crc defines cmi cmx =
+  printf "Name: %s\n" name;
+  printf "CRC of implementation: %s\n" (Digest.to_hex crc);
+  printf "Globals defined:\n";
+  List.iter print_line defines;
+  printf "Interfaces imported:\n";
+  List.iter print_name_crc cmi;
+  printf "Implementations imported:\n";
+  List.iter print_name_crc cmx
+
+open Cmx_format
+
+let print_cmx_infos (ui, crc) =
+  print_general_infos
+    ui.ui_name crc ui.ui_defines ui.ui_imports_cmi ui.ui_imports_cmx;
+  printf "Approximation:\n";
+  Format.fprintf Format.std_formatter "  %a@." print_approx_infos ui.ui_approx;
+  let pr_funs _ fns =
+    List.iter (fun arity -> printf " %d" arity) fns in
+  printf "Currying functions:%a\n" pr_funs ui.ui_curry_fun;
+  printf "Apply functions:%a\n" pr_funs ui.ui_apply_fun
+
+let print_cmxs_infos header =
   List.iter
-    (fun (name, digest) ->
-      print_string "\t"; print_digest digest; print_string "\t";
-      print_string name; print_newline())
-    crcs
+    (fun ui ->
+       print_general_infos
+         ui.dynu_name
+         ui.dynu_crc
+         ui.dynu_defines
+         ui.dynu_imports_cmi
+         ui.dynu_imports_cmx)
+    header.dynu_units
+
+let p_title title = printf "%s:\n" title
+
+let p_section title = function
+  | [] -> ()
+  | l ->
+      p_title title;
+      List.iter print_name_crc l
+
+let p_list title print = function
+  | [] -> ()
+  | l ->
+      p_title title;
+      List.iter print l
+
+let dump_byte ic =
+  Bytesections.read_toc ic;
+  let toc = Bytesections.toc () in
+  let toc = List.sort Pervasives.compare toc in
+  List.iter
+    (fun (section, _) ->
+       try
+         let len = Bytesections.seek_section ic section in
+         if len > 0 then match section with
+           | "CRCS" ->
+               p_section
+                 "Imported units"
+                 (input_value ic : (string * Digest.t) list)
+           | "DLLS" ->
+               p_list
+                 "Used DLLs"
+                 print_line
+                 (input_stringlist ic len)
+           | "DLPT" ->
+               p_list
+                 "Additional DLL paths"
+                 print_line
+                 (input_stringlist ic len)
+           | "PRIM" ->
+               p_list
+                 "Primitives used"
+                 print_line
+                 (input_stringlist ic len)
+           | _ -> ()
+       with _ -> ()
+    )
+    toc
+
+let read_dyn_header filename ic =
+  let tempfile = Filename.temp_file "objinfo" ".out" in
+  let helper = Filename.concat Config.standard_library "objinfo_helper" in
+  try
+    try_finally
+      (fun () ->
+        let rc = Sys.command (sprintf "%s %s > %s"
+                                (Filename.quote helper)
+                                (Filename.quote filename)
+                                tempfile) in
+        if rc <> 0 then failwith "cannot read";
+        let tc = open_in tempfile in
+        try_finally
+          (fun () ->
+            let ofs = Scanf.fscanf tc "%Ld" (fun x -> x) in
+            LargeFile.seek_in ic ofs;
+            Some(input_value ic : dynheader))
+          (fun () -> close_in tc))
+      (fun () -> remove_file tempfile)
+  with Failure _ | Sys_error _ -> None
 
 let dump_obj filename =
-  print_string "File "; print_string filename; print_newline();
+  printf "File %s\n" filename;
   let ic = open_in_bin filename in
-  let buffer = String.create (String.length cmo_magic_number) in
-  really_input ic buffer 0 (String.length cmo_magic_number);
-  if buffer = cmo_magic_number then begin
+  let len_magic_number = String.length cmo_magic_number in
+  let magic_number = String.create len_magic_number in
+  really_input ic magic_number 0 len_magic_number;
+  if magic_number = cmo_magic_number then begin
     let cu_pos = input_binary_int ic in
     seek_in ic cu_pos;
     let cu = (input_value ic : compilation_unit) in
     close_in ic;
-    print_info cu
-  end else
-  if buffer = cma_magic_number then begin
+    print_cmo_infos cu
+  end else if magic_number = cma_magic_number then begin
     let toc_pos = input_binary_int ic in
     seek_in ic toc_pos;
     let toc = (input_value ic : library) in
     close_in ic;
-    print_library_info toc
-  end else
-  if buffer = cmi_magic_number then begin
+    print_cma_infos toc
+  end else if magic_number = cmi_magic_number then begin
     let (name, sign, comps) = input_value ic in
     let crcs = input_value ic in
     close_in ic;
-    print_intf_info name sign comps crcs
+    print_cmi_infos name sign comps crcs
+  end else if magic_number = cmx_magic_number then begin
+    let ui = (input_value ic : unit_infos) in
+    let crc = Digest.input ic in
+    close_in ic;
+    print_cmx_infos (ui, crc)
+  end else if magic_number = cmxa_magic_number then begin
+    let li = (input_value ic : library_infos) in
+    close_in ic;
+    List.iter print_cmx_infos li.lib_units
   end else begin
-    prerr_endline "Not an object file"; exit 2
+    let pos_trailer = in_channel_length ic - len_magic_number in
+    let _ = seek_in ic pos_trailer in
+    let _ = really_input ic magic_number 0 len_magic_number in
+    if magic_number = Config.exec_magic_number then begin
+      dump_byte ic;
+      close_in ic
+    end else if Filename.check_suffix filename ".cmxs" then begin
+      flush stdout;
+      match read_dyn_header filename ic with
+      | None ->
+          printf "Unable to read info on file %s\n" filename;
+          exit 2
+      | Some header ->
+          if header.dynu_magic = Config.cmxs_magic_number then
+            print_cmxs_infos header
+          else begin
+            printf "Wrong magic number\n"; exit 2
+          end;
+          close_in ic
+    end else begin
+      printf "Not an OCaml object file\n"; exit 2
+    end
   end
 
 let main() =
diff --git a/tools/objinfo_helper.c b/tools/objinfo_helper.c
new file mode 100644 (file)
index 0000000..464720c
--- /dev/null
@@ -0,0 +1,92 @@
+/***********************************************************************/
+/*                                                                     */
+/*                           Objective Caml                            */
+/*                                                                     */
+/*        Mehdi Dogguy, PPS laboratory, University Paris Diderot       */
+/*                                                                     */
+/*  Copyright 2010 Mehdi Dogguy.  Used and distributed as part of      */
+/*  Objective Caml by permission from the author.   This file is       */
+/*  distributed under the terms of the Q Public License version 1.0.   */
+/***********************************************************************/
+
+#include "../config/s.h"
+#include "../byterun/mlvalues.h"
+#include "../byterun/alloc.h"
+#include <stdio.h>
+
+#ifdef HAS_LIBBFD
+#include <stdlib.h>
+#include <string.h>
+#include <bfd.h>
+
+int main(int argc, char ** argv)
+{
+  bfd *fd;
+  asection *sec;
+  file_ptr offset;
+  long st_size;
+  asymbol ** symbol_table;
+  long sym_count, i;
+
+  if (argc != 2) {
+    fprintf(stderr, "Usage: objinfo_helper <dynamic library>\n");
+    return 2;
+  }
+
+  fd = bfd_openr(argv[1], "default");
+  if (!fd) {
+    fprintf(stderr, "Error opening file %s\n", argv[1]);
+    return 2;
+  }
+  if (! bfd_check_format (fd, bfd_object)) {
+    fprintf(stderr, "Error: wrong format\n");
+    bfd_close(fd);
+    return 2;
+  }
+
+  sec = bfd_get_section_by_name(fd, ".data");
+  if (! sec) {
+    fprintf(stderr, "Error: section .data not found\n");
+    bfd_close(fd);
+    return 2;
+  }
+
+  offset = sec->filepos;
+  st_size = bfd_get_dynamic_symtab_upper_bound (fd);
+  if (st_size <= 0) {
+    fprintf(stderr, "Error: size of section .data unknown\n");
+    bfd_close(fd);
+    return 2;
+  }
+
+  symbol_table = malloc(st_size);
+  if (! symbol_table) {
+    fprintf(stderr, "Error: out of memory\n");
+    bfd_close(fd);
+    return 2;
+  }
+
+  sym_count = bfd_canonicalize_dynamic_symtab (fd, symbol_table);
+
+  for (i = 0; i < sym_count; i++) {
+    if (strcmp(symbol_table[i]->name, "caml_plugin_header") == 0) {
+      printf("%ld\n", (long) (offset + symbol_table[i]->value));
+      bfd_close(fd);
+      return 0;
+    }
+  }
+
+  fprintf(stderr, "Error: missing symbol caml_plugin_header\n");
+  bfd_close(fd);
+  return 2;
+}
+
+#else
+
+int main(int argc, char ** argv)
+{
+  fprintf(stderr, "BFD library unavailable, cannot print info on .cmxs files\n");
+  return 2;
+}
+
+#endif
index cb2f703b4d85620eb71730886a6894fef5db143b..99279cf8a913cda27b98f6d7b36c051bd1f6cee3 100755 (executable)
@@ -12,7 +12,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: ocaml-objcopy-macosx 7307 2006-01-04 16:55:50Z doligez $
 
 
 TMP="${TMPDIR=/tmp}"
index b1dca8daafcf73d46c094acbd146a5bbb15c8c65..e30d71c95832c7e3652bfe19239204806abb5046 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ocaml299to3.ml 3838 2001-10-03 01:34:05Z garrigue $ *)
 
 open Lexer299
 
index a2232dc15dbf9af29fc63933127093ff7305df0e..f043e1d548165da06019f5062d94ce93e6269c78 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ocamlcp.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Printf
 
@@ -81,6 +81,7 @@ module Options = Main_args.Make_bytecomp_options (struct
   let _use_runtime s = option_with_arg "-use-runtime" s
   let _v = option "-v"
   let _version = option "-version"
+  let _vnum = option "-vnum"
   let _verbose = option "-verbose"
   let _w = option_with_arg "-w"
   let _warn_error = option_with_arg "-warn-error"
index e18d6b0a7ddb010f862e94ecf3101614c631a6aa..80081feafd6b7a8554e8dedb0f0d37e7a1b77e8c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ocamldep.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Format
 open Location
@@ -279,6 +279,11 @@ let print_version () =
   exit 0;
 ;;
 
+let print_version_num () =
+  printf "%s@." Sys.ocaml_version;
+  exit 0;
+;;
+
 let _ =
   Clflags.classic := false;
   add_to_load_path Filename.current_dir_name;
@@ -299,5 +304,7 @@ let _ =
        "   (Windows) Use forward slash / instead of backslash \\ in file paths";
      "-version", Arg.Unit print_version,
       " Print version and exit";
+     "-vnum", Arg.Unit print_version_num,
+      " Print version number and exit";
     ] file_dependencies usage;
   exit (if !error_occurred then 2 else 0)
index 80c1d9f4a55cab747f6c522108cd03a61fa480ef..6b78a6895f92099c81504d04ad1af22c6c3a98fd 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ocamlmklib.mlp 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Printf
 open Myocamlbuild_config
@@ -52,6 +52,11 @@ let print_version () =
   exit 0;
 ;;
 
+let print_version_num () =
+  printf "%s\n" Sys.ocaml_version;
+  exit 0;
+;;
+
 let parse_arguments argv =
   let i = ref 1 in
   let next_arg () =
@@ -116,6 +121,8 @@ let parse_arguments argv =
       verbose := true
     else if s = "-version" then
       print_version ()
+    else if s = "-vnum" then
+      print_version_num ()
     else if starts_with s "-F" then
       c_opts := s :: !c_opts
     else if s = "-framework" then
@@ -160,6 +167,7 @@ Options are:\n\
   -verbose       Print commands before executing them\n\
   -v             same as -verbose\n\
   -version       Print version and exit\n\
+  -vnum          Print version number and exit\n\
   -Wl,-rpath,<dir>     Same as -dllpath <dir>\n\
   -Wl,-rpath -Wl,<dir> Same as -dllpath <dir>\n\
   -Wl,-R<dir>          Same as -dllpath <dir>\n\
index 3d353a8f59f69dae4830af12c19cdff968bf6eba..8104607d025d85760d0e6bb8438eaeb9d73a57f1 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ocamlmktop.ml 5454 2003-03-24 15:27:01Z xleroy $ *)
 
 let _ =
   let args = Ccomp.quote_files (List.tl (Array.to_list Sys.argv)) in
index 477f7387ce35f90809f2aac8ce247be1664fe688..5f82e2f1250f05e7d8db4d8d269b32c3db9ec1f4 100644 (file)
@@ -11,6 +11,6 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: ocamlmktop.tpl 10443 2010-05-20 09:44:25Z doligez $
 
 exec %%BINDIR%%/ocamlc -linkall toplevellib.cma "$@" topstart.cmo
index 55f114c5eae572ebcc94554143d09d86c7f07686..c0815707597088daa287b33d53cf315a28b6d8b9 100644 (file)
@@ -11,7 +11,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ocamlprof.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Printf
 
@@ -459,6 +459,11 @@ let print_version () =
   exit 0;
 ;;
 
+let print_version_num () =
+  printf "%s@." Sys.ocaml_version;
+  exit 0;
+;;
+
 let main () =
   try
     Warnings.parse_options false "a";
@@ -475,6 +480,8 @@ let main () =
        "-m", Arg.String (fun s -> modes := s), "<flags>    (undocumented)";
        "-version", Arg.Unit print_version,
                    "     Print version and exit";
+       "-vnum", Arg.Unit print_version_num,
+                "        Print version number and exit";
       ] process_anon_file usage;
     exit 0
   with x ->
index dcace11ba706386e699a20f07281186b3e7bc5fc..74b6aa361a0a94be829f5376c451adb790abab2c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: primreq.ml 7469 2006-07-05 12:09:18Z pouillar $ *)
 
 (* Determine the set of C primitives required by the given .cmo and .cma
    files *)
index 9c6d9dd02b3f1d3f643c842a45e6abcc24ea6e86..dd4314342b4a08eea8e4cfed17225638251fc7fa 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: profiling.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Run-time library for profiled programs *)
 
index ca8486f4361ae6b6818e1959428566f86d5ee6ab..01dc12150dc4059813188bbfdeedf56f9978e2aa 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: profiling.mli 6824 2005-03-24 17:20:54Z doligez $ *)
 
 (* Run-time library for profiled programs *)
 
index dc43e97b702ed0512836ef70b42ca027b85d3252..5ab6f0134795ce9bffc9d8c5120194cd40c5675c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: scrapelabels.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open StdLabels
 open Lexer301
index 5debb412439e18a80bdd21b723c546c499f0e947..8180090701ed57bc60b5a7d96648520a2c357323 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: expunge.ml 6074 2004-01-16 15:24:03Z doligez $ *)
 
 (* "Expunge" a toplevel by removing compiler modules from the global List.map.
    Usage: expunge <source file> <dest file> <names of modules to keep> *)
index 327700400668505e707239dcfb7c1c95f512f2f1..bc67afae760aa9abc3e3e5777d8d7279a4ffa720 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: genprintval.ml 9397 2009-10-26 10:53:16Z frisch $ *)
 
 (* To print values *)
 
index 898588b2ddbbcf3b90b1c663293b576d37171e5f..edb8a4a3e6c5fd0b28447888afbba4e4103acc64 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: genprintval.mli 4694 2002-04-18 07:27:47Z garrigue $ *)
 
 (* Printing of values *)
 
index b586bae1c8c771f7109fcb0e754184da59d7bf2d..30c29439480b1baf3804e01b24522bd11cbafd85 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opttopdirs.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Toplevel directives *)
 
index 800c6cf7bdadf19ddde78235d07c4b4643e93aed..77330bda7e64df01dc50b6a347ee175fd93e4f7c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opttopdirs.mli 8477 2007-11-06 15:16:56Z frisch $ *)
 
 (* The toplevel directives. *)
 
index ee6b5a0eab2b90372cf1624d4721b2cfeea26f6b..71ecf68e8c83ba66ec95ab4c2ff50fcac73cda5a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opttoploop.ml 10260 2010-04-13 10:44:25Z doligez $ *)
 
 (* The interactive toplevel loop *)
 
index 78e45f0bab667f0a80d97c3f0e79e2470dc0ef42..86363ba71ca5e56f41826e1b84e46c07611714d5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opttoploop.mli 8705 2007-12-04 13:38:58Z doligez $ *)
 
 open Format
 
index 388e725786c3a5a838d14e990f7be8358a5a6f78..383e0ffae90203984909e4542f5e8147e67c84bb 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opttopmain.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Clflags
 
@@ -53,6 +53,11 @@ let print_version () =
   exit 0;
 ;;
 
+let print_version_num () =
+  Printf.printf "%s\n" Sys.ocaml_version;
+  exit 0;
+;;
+
 module Options = Main_args.Make_opttop_options (struct
   let set r () = r := true
   let clear r () = r := false
@@ -75,6 +80,7 @@ module Options = Main_args.Make_opttop_options (struct
   let _S = set keep_asm_file
   let _unsafe = set fast
   let _version () = print_version ()
+  let _vnum () = print_version_num ()
   let _w s = Warnings.parse_options false s
   let _warn_error s = Warnings.parse_options true s
   let _warn_help = Warnings.help_warnings
index 197f88bbc6721dee71ece2438258c1d50fd0a2d8..119cb000a0287546f4720c12401fc2c23c9d9004 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opttopmain.mli 8477 2007-11-06 15:16:56Z frisch $ *)
 
 (* Start the [ocaml] toplevel loop *)
 
index 3e3fe58baf4428d47dfbe6c7eb87fc0c895a92e8..c13cfcbbfd92dc2da33ce6fa4fa107f0e2fe1045 100644 (file)
@@ -10,6 +10,6 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: opttopstart.ml 8477 2007-11-06 15:16:56Z frisch $ *)
 
 let _ = Opttopmain.main()
index 6516a387703c433316ec5dcc73dbad00e39b409f..b3dae05225cfd887d11f7bfe0fe6d512fe0d43ae 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: topdirs.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Toplevel directives *)
 
index 36af2211baa3b7d5d9cfadd34abf23e9d1fc2220..1aa708597ea7f2d39291e79a0f327de8f6bb34a5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: topdirs.mli 4694 2002-04-18 07:27:47Z garrigue $ *)
 
 (* The toplevel directives. *)
 
index 250a27b52c306d755374f81585cd0510499380f9..1c454b4547a549f994c840f8837d1efc22d5db18 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: toploop.ml 9166 2009-01-25 22:46:15Z weis $ *)
 
 (* The interactive toplevel loop *)
 
index 35eb5dbf5bfcca6623cf108b069cec97e2b6e038..be9c27b81c779fb08f15905cfaa6b244913c2c34 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: toploop.mli 8705 2007-12-04 13:38:58Z doligez $ *)
 
 open Format
 
index 803624c5e26e712ae1a8f61b08fcfaf857220497..6ef5812b6ffa2dd6aac95c5224b75275a0284b19 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: topmain.ml 10444 2010-05-20 14:06:29Z doligez $ *)
 
 open Clflags
 
@@ -50,6 +50,11 @@ let print_version () =
   exit 0;
 ;;
 
+let print_version_num () =
+  Printf.printf "%s\n" Sys.ocaml_version;
+  exit 0;
+;;
+
 module Options = Main_args.Make_bytetop_options (struct
   let set r () = r := true
   let clear r () = r := false
@@ -69,6 +74,7 @@ module Options = Main_args.Make_bytetop_options (struct
   let _strict_sequence = set strict_sequence
   let _unsafe = set fast
   let _version () = print_version ()
+  let _vnum () = print_version_num ()
   let _w s = Warnings.parse_options false s
   let _warn_error s = Warnings.parse_options true s
   let _warn_help = Warnings.help_warnings
index 197f88bbc6721dee71ece2438258c1d50fd0a2d8..c2a7c896b1fc03afe033bd23ce66677cf8baa8b3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: topmain.mli 4731 2002-04-24 08:02:51Z xleroy $ *)
 
 (* Start the [ocaml] toplevel loop *)
 
index 570e2f203a620f120f6f9c1139b14b6839904c61..7d853f51b88ea44fe8bd8c1539534a771f213d6e 100644 (file)
@@ -10,6 +10,6 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: topstart.ml 4731 2002-04-24 08:02:51Z xleroy $ *)
 
 let _ = Topmain.main()
index fad92d98a3599f009558e1c3ce2fe2e7fb6c452f..a306d9b42df0acf0ca6f9504c9225b74392c4173 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: trace.ml 3490 2001-04-19 08:34:21Z garrigue $ *)
 
 (* The "trace" facility *)
 
index d708361c7cbb8d18f97d3878c97356dcd00031a2..3c08f146a0bda667a6d035c5633ffffc714a89f1 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: trace.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* The "trace" facility *)
 
index 92b2f6ec694a275f5b0cbaf768b998d01407e905..95e724377f7a9f481d9207fd4d7d430343bd6ea2 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: annot.mli 8958 2008-07-29 15:42:44Z doligez $ *)
 
 (* Data types for annotations (Stypes.ml) *)
 
index e57e760f2e21ec2018bd091f54e3cbf12c72d76b..55045e7e02bfa08378eeb77f78f8e0801fd9ca09 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: btype.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Basic operations on core types *)
 
index 4ea5e3b40bbf86decf9c4e30d364af1efb527807..dad6c4a0f65c9cdd5b507cb7c82fb6c813d11c25 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: btype.mli 8922 2008-07-19 02:13:09Z garrigue $ *)
 
 (* Basic operations on core types *)
 
index fb4cc62b430eb38dc3f37155b59c3c0c7edbb675..8db0f6cfd2aadb450592151a20ad3592eacb716f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ctype.ml 10544 2010-06-08 14:09:30Z garrigue $ *)
 
 (* Operations on core types *)
 
@@ -1057,7 +1057,7 @@ let apply env params body args =
    If the environnement has changed, memorized expansions might not
    be correct anymore, and so we flush the cache. This is safe but
    quite pessimistic: it would be enough to flush the cache when a
-   type or module definition is overriden in the environnement.
+   type or module definition is overridden in the environnement.
 *)
 let previous_env = ref Env.empty
 let string_of_kind = function Public -> "public" | Private -> "private"
@@ -1821,7 +1821,7 @@ and unify_row env row1 row2 =
     set_more row1 r2;
     List.iter
       (fun (l,f1,f2) ->
-        try unify_row_field env row1.row_fixed row2.row_fixed l f1 f2
+        try unify_row_field env row1.row_fixed row2.row_fixed more l f1 f2
         with Unify trace ->
           raise (Unify ((mkvariant [l,f1] true,
                          mkvariant [l,f2] true) :: trace)))
@@ -1830,7 +1830,7 @@ and unify_row env row1 row2 =
     log_type rm1; rm1.desc <- md1; log_type rm2; rm2.desc <- md2; raise exn
   end
 
-and unify_row_field env fixed1 fixed2 l f1 f2 =
+and unify_row_field env fixed1 fixed2 more l f1 f2 =
   let f1 = row_field_repr f1 and f2 = row_field_repr f2 in
   if f1 == f2 then () else
   match f1, f2 with
@@ -1847,13 +1847,15 @@ and unify_row_field env fixed1 fixed2 l f1 f2 =
             List.iter (unify env t1) tl;
             !e1 <> None || !e2 <> None
         end in
-      if redo then unify_row_field env fixed1 fixed2 l f1 f2 else
+      if redo then unify_row_field env fixed1 fixed2 more l f1 f2 else
       let tl1 = List.map repr tl1 and tl2 = List.map repr tl2 in
       let rec remq tl = function [] -> []
         | ty :: tl' ->
             if List.memq ty tl then remq tl tl' else ty :: remq tl tl'
       in
       let tl2' = remq tl2 tl1 and tl1' = remq tl1 tl2 in
+      (* Is this handling of levels really principal? *)
+      List.iter (update_level env (repr more).level) (tl1' @ tl2');
       let e = ref None in
       let f1' = Reither(c1 || c2, tl1', m1 || m2, e)
       and f2' = Reither(c1 || c2, tl2', m1 || m2, e) in
@@ -2289,6 +2291,7 @@ let rec eqtype rename type_pairs subst env t1 t2 =
           normalize_subst subst;
           if List.assq t1 !subst != t2 then raise (Unify [])
         with Not_found ->
+          (*if List.exists (fun (_, t) -> t == t2) !subst then raise (Unify []);*)
           subst := (t1, t2) :: !subst
         end
     | (Tconstr (p1, [], _), Tconstr (p2, [], _)) when Path.same p1 p2 ->
@@ -2309,6 +2312,7 @@ let rec eqtype rename type_pairs subst env t1 t2 =
                 normalize_subst subst;
                 if List.assq t1' !subst != t2' then raise (Unify [])
               with Not_found ->
+                (*if List.exists (fun (_, t) -> t == t2') !subst then raise (Unify []);*)
                 subst := (t1', t2') :: !subst
               end
           | (Tarrow (l1, t1, u1, _), Tarrow (l2, t2, u2, _)) when l1 = l2
@@ -2486,7 +2490,7 @@ let rec moregen_clty trace type_pairs env cty1 cty2 =
     Failure error when trace ->
       raise (Failure (CM_Class_type_mismatch (cty1, cty2)::error))
 
-let match_class_types env pat_sch subj_sch =
+let match_class_types ?(trace=true) env pat_sch subj_sch =
   let type_pairs = TypePairs.create 53 in
   let old_level = !current_level in
   current_level := generic_level - 1;
@@ -2570,7 +2574,7 @@ let match_class_types env pat_sch subj_sch =
     match error with
       [] ->
         begin try
-          moregen_clty true type_pairs env patt subj;
+          moregen_clty trace type_pairs env patt subj;
           []
         with
           Failure r -> r
@@ -2612,7 +2616,7 @@ let rec equal_clty trace type_pairs subst env cty1 cty2 =
         Vars.iter
           (fun lab (_, _, ty) ->
              let (_, _, ty') = Vars.find lab sign1.cty_vars in
-             try eqtype true type_pairs subst env ty ty' with Unify trace ->
+             try eqtype true type_pairs subst env ty' ty with Unify trace ->
                raise (Failure [CM_Val_type_mismatch
                                   (lab, expand_trace env trace)]))
           sign2.cty_vars
@@ -2624,8 +2628,6 @@ let rec equal_clty trace type_pairs subst env cty1 cty2 =
     Failure error when trace ->
       raise (Failure (CM_Class_type_mismatch (cty1, cty2)::error))
 
-(* XXX On pourrait autoriser l'instantiation du type des parametres... *)
-(* XXX Correct ? (variables de type dans parametres et corps de classe *)
 let match_class_declarations env patt_params patt_type subj_params subj_type =
   let type_pairs = TypePairs.create 53 in
   let subst = ref [] in
@@ -2712,8 +2714,14 @@ let match_class_declarations env patt_params patt_type subj_params subj_type =
             raise (Failure [CM_Type_parameter_mismatch
                                (expand_trace env trace)]))
           patt_params subj_params;
-        equal_clty false type_pairs subst env patt_type subj_type;
-        []
+        (* old code: equal_clty false type_pairs subst env patt_type subj_type; *)
+        equal_clty false type_pairs subst env
+          (Tcty_signature sign1) (Tcty_signature sign2);
+        (* Use moregeneral for class parameters, need to recheck everything to
+           keeps relationships (PR#4824) *)
+        let clty_params = List.fold_right (fun ty cty -> Tcty_fun ("*",ty,cty)) in
+        match_class_types ~trace:false env
+          (clty_params patt_params patt_type) (clty_params subj_params subj_type)
       with
         Failure r -> r
       end
index 32b1b1666921a6a528539909f5da6a3e05910d86..05d959d1195fd4abc99379e5ead2c1335cf5e2fd 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ctype.mli 10541 2010-06-08 08:43:38Z garrigue $ *)
 
 (* Operations on core types *)
 
@@ -183,7 +183,7 @@ type class_match_failure =
   | CM_Private_method of string
   | CM_Virtual_method of string
 val match_class_types:
-        Env.t -> class_type -> class_type -> class_match_failure list
+        ?trace:bool -> Env.t -> class_type -> class_type -> class_match_failure list
         (* Check if the first class type is more general than the second. *)
 val equal: Env.t -> bool -> type_expr list -> type_expr list -> bool
         (* [equal env [x1...xn] tau [y1...yn] sigma]
index 80b94132d96c2f5e261a47be84da59d84fa74bac..bc2617ac5a3cf50ac60fbd9134926eef0aaef004 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: datarepr.ml 9331 2009-09-12 12:41:07Z xleroy $ *)
 
 (* Compute constructor and label descriptions from type declarations,
    determining their representation. *)
index 283dbd294a1e1fc3a69e7f4e8ecc03305709dcf3..606b659c09ee11b3e1e6ef2731cc63c58e41b4d8 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: datarepr.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Compute constructor and label descriptions from type declarations,
    determining their representation. *)
index 044247990637c559301f9400cb0eb7572abe66ab..4a52484a7177e16e6ab692affba87d03f843ad51 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: env.ml 10328 2010-04-30 01:56:21Z garrigue $ *)
 
 (* Environment handling *)
 
index 8f00972a62ef4f83739dfbc1e66e424cc2d61860..5ee7af39d8e20d4a4ff092cbe06026dd65767983 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: env.mli 9074 2008-10-06 13:53:54Z doligez $ *)
 
 (* Environment handling *)
 
index c5bc09f41801f3d632de91876e9e1aedf53002cd..504b0fb0197c03ae4e5da2bbe090ba98bf8a426e 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ident.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 open Format
 
index 03e2eee48d99d9ff9b9a656b65ef016eb427cbd2..f5debb95fa900d4f63b846504af795f11eda5063 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ident.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Identifiers (unique names) *)
 
index ca860ffc442de58d11545732b9b2e93359754ca9..772047a1ace98799aeedea17aa24b544f7d4c7d0 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: includeclass.ml 10541 2010-06-08 08:43:38Z garrigue $ *)
 
 (* Inclusion checks for the class language *)
 
@@ -36,6 +36,12 @@ let class_declarations env cty1 cty2 =
 open Format
 open Ctype
 
+(*
+let rec hide_params = function
+    Tcty_fun ("*", _, cty) -> hide_params cty
+  | cty -> cty
+*)
+
 let include_err ppf =
   function
   | CM_Virtual_class ->
index 5596056d0fd3e3fd98982cae4ab772574bb225fa..8f9cdca1670bbf814f7ad6bf105f023fdeb7612a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: includeclass.mli 2908 2000-03-06 22:12:09Z weis $ *)
 
 (* Inclusion checks for the class language *)
 
index b8911f2e5a4815e1fb31ab06882b7f7f2a018187..f6766881d666615946b5f9347300148e5722d6da 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: includecore.ml 10458 2010-05-24 06:52:16Z garrigue $ *)
 
 (* Inclusion checks for the core language *)
 
@@ -108,44 +108,119 @@ let type_manifest env ty1 params1 ty2 params2 priv2 =
 
 (* Inclusion between type declarations *)
 
+type type_mismatch =
+    Arity
+  | Privacy
+  | Kind
+  | Constraint
+  | Manifest
+  | Variance
+  | Field_type of string
+  | Field_mutable of string
+  | Field_arity of string
+  | Field_names of int * string * string
+  | Field_missing of bool * string
+  | Record_representation of bool
+
+let nth n =
+  if n = 1 then "first" else
+  if n = 2 then "2nd" else
+  if n = 3 then "3rd" else
+  string_of_int n ^ "th"
+
+let report_type_mismatch0 first second decl ppf err =
+  let pr fmt = Format.fprintf ppf fmt in
+  match err with
+    Arity -> pr "They have different arities"
+  | Privacy -> pr "A private type would be revealed"
+  | Kind -> pr "Their kinds differ"
+  | Constraint -> pr "Their constraints differ"
+  | Manifest -> ()
+  | Variance -> pr "Their variances do not agree"
+  | Field_type s ->
+      pr "The types for field %s are not equal" s
+  | Field_mutable s ->
+      pr "The mutability of field %s is different" s
+  | Field_arity s ->
+      pr "The arities for field %s differ" s
+  | Field_names (n, name1, name2) ->
+      pr "Their %s fields have different names, %s and %s"
+        (nth n) name1 name2
+  | Field_missing (b, s) ->
+      pr "The field %s is only present in %s %s"
+        s (if b then second else first) decl
+  | Record_representation b ->
+      pr "Their internal representations differ:@ %s %s %s"
+        (if b then second else first) decl
+        "uses unboxed float representation"
+
+let report_type_mismatch first second decl ppf =
+  List.iter
+    (fun err ->
+      if err = Manifest then () else
+      Format.fprintf ppf "@ %a." (report_type_mismatch0 first second decl) err)
+
+let rec compare_variants env decl1 decl2 n cstrs1 cstrs2 =
+  match cstrs1, cstrs2 with
+    [], []           -> []
+  | [], (cstr2,_)::_ -> [Field_missing (true, cstr2)]
+  | (cstr1,_)::_, [] -> [Field_missing (false, cstr1)]
+  | (cstr1, arg1)::rem1, (cstr2, arg2)::rem2 ->
+      if cstr1 <> cstr2 then [Field_names (n, cstr1, cstr2)] else
+      if List.length arg1 <> List.length arg2 then [Field_arity cstr1] else
+      if Misc.for_all2
+          (fun ty1 ty2 ->
+            Ctype.equal env true (ty1::decl1.type_params)
+                                 (ty2::decl2.type_params))
+          arg1 arg2
+      then compare_variants env decl1 decl2 (n+1) rem1 rem2
+      else [Field_type cstr1]
+
+let rec compare_records env decl1 decl2 n labels1 labels2 =
+  match labels1, labels2 with
+    [], []           -> []
+  | [], (lab2,_,_)::_ -> [Field_missing (true, lab2)]
+  | (lab1,_,_)::_, [] -> [Field_missing (false, lab1)]
+  | (lab1, mut1, arg1)::rem1, (lab2, mut2, arg2)::rem2 ->
+      if lab1 <> lab2 then [Field_names (n, lab1, lab2)] else
+      if mut1 <> mut2 then [Field_mutable lab1] else
+      if Ctype.equal env true (arg1::decl1.type_params)
+                              (arg2::decl2.type_params)
+      then compare_records env decl1 decl2 (n+1) rem1 rem2
+      else [Field_type lab1]
+
 let type_declarations env id decl1 decl2 =
-  decl1.type_arity = decl2.type_arity &&
-  private_flags decl1 decl2 &&
-  begin match (decl1.type_kind, decl2.type_kind) with
-      (_, Type_abstract) -> true
+  if decl1.type_arity <> decl2.type_arity then [Arity] else
+  if not (private_flags decl1 decl2) then [Privacy] else
+  let err = match (decl1.type_kind, decl2.type_kind) with
+      (_, Type_abstract) -> []
     | (Type_variant cstrs1, Type_variant cstrs2) ->
-        Misc.for_all2
-          (fun (cstr1, arg1) (cstr2, arg2) ->
-            cstr1 = cstr2 &&
-            Misc.for_all2
-              (fun ty1 ty2 ->
-                Ctype.equal env true (ty1::decl1.type_params)
-                                     (ty2::decl2.type_params))
-              arg1 arg2)
-          cstrs1 cstrs2
+        compare_variants env decl1 decl2 1 cstrs1 cstrs2
     | (Type_record(labels1,rep1), Type_record(labels2,rep2)) ->
-        rep1 = rep2 &&
-        Misc.for_all2
-          (fun (lbl1, mut1, ty1) (lbl2, mut2, ty2) ->
-            lbl1 = lbl2 && mut1 = mut2 &&
-            Ctype.equal env true (ty1::decl1.type_params)
-                                 (ty2::decl2.type_params))
-          labels1 labels2
-    | (_, _) -> false
-  end &&
-  begin match (decl1.type_manifest, decl2.type_manifest) with
+        let err = compare_records env decl1 decl2 1 labels1 labels2 in
+        if err <> [] || rep1 = rep2 then err else
+        [Record_representation (rep2 = Record_float)]
+    | (_, _) -> [Kind]
+  in
+  if err <> [] then err else
+  let err = match (decl1.type_manifest, decl2.type_manifest) with
       (_, None) ->
-        Ctype.equal env true decl1.type_params decl2.type_params
+        if Ctype.equal env true decl1.type_params decl2.type_params
+        then [] else [Constraint]
     | (Some ty1, Some ty2) ->
-        type_manifest env ty1 decl1.type_params ty2 decl2.type_params
-          decl2.type_private
+        if type_manifest env ty1 decl1.type_params ty2 decl2.type_params
+            decl2.type_private
+        then [] else [Manifest]
     | (None, Some ty2) ->
         let ty1 =
           Btype.newgenty (Tconstr(Pident id, decl2.type_params, ref Mnil))
         in
-        Ctype.equal env true decl1.type_params decl2.type_params &&
-        Ctype.equal env false [ty1] [ty2]
-  end &&
+        if Ctype.equal env true decl1.type_params decl2.type_params then
+          if Ctype.equal env false [ty1] [ty2] then []
+          else [Manifest]
+        else [Constraint]
+  in
+  if err <> [] then err else
   if match decl2.type_kind with
   | Type_record (_,_) | Type_variant _ -> decl2.type_private = Private
   | Type_abstract ->
@@ -153,10 +228,11 @@ let type_declarations env id decl1 decl2 =
       | None -> true
       | Some ty -> Btype.has_constr_row (Ctype.expand_head env ty)
   then
-    List.for_all2
-      (fun (co1,cn1,ct1) (co2,cn2,ct2) -> (not co1 || co2) && (not cn1 || cn2))
-      decl1.type_variance decl2.type_variance
-  else true
+    if List.for_all2
+        (fun (co1,cn1,ct1) (co2,cn2,ct2) -> (not co1 || co2)&&(not cn1 || cn2))
+        decl1.type_variance decl2.type_variance
+    then [] else [Variance]
+  else []
 
 (* Inclusion between exception declarations *)
 
index c68ad237df118eba75f86abf593e2d38af6ee9cf..e3554742b868da5daa18555495301546081990ba 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: includecore.mli 10455 2010-05-21 15:13:47Z garrigue $ *)
 
 (* Inclusion checks for the core language *)
 
@@ -19,13 +19,31 @@ open Typedtree
 
 exception Dont_match
 
+type type_mismatch =
+    Arity
+  | Privacy
+  | Kind
+  | Constraint
+  | Manifest
+  | Variance
+  | Field_type of string
+  | Field_mutable of string
+  | Field_arity of string
+  | Field_names of int * string * string
+  | Field_missing of bool * string
+  | Record_representation of bool
+
 val value_descriptions:
-        Env.t -> value_description -> value_description -> module_coercion
+    Env.t -> value_description -> value_description -> module_coercion
 val type_declarations:
-        Env.t -> Ident.t -> type_declaration -> type_declaration -> bool
+    Env.t -> Ident.t ->
+    type_declaration -> type_declaration -> type_mismatch list
 val exception_declarations:
-        Env.t -> exception_declaration -> exception_declaration -> bool
+    Env.t -> exception_declaration -> exception_declaration -> bool
 (*
 val class_types:
         Env.t -> class_type -> class_type -> bool
 *)
+
+val report_type_mismatch:
+    string -> string -> string -> Format.formatter -> type_mismatch list -> unit
index bda604a20fb2980f53d072a1f88118b31f25532d..887e9557cd8771246b3faaf36bb22469cd48f27c 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: includemod.ml 10458 2010-05-24 06:52:16Z garrigue $ *)
 
 (* Inclusion checks for the module language *)
 
@@ -22,7 +22,8 @@ open Typedtree
 type error =
     Missing_field of Ident.t
   | Value_descriptions of Ident.t * value_description * value_description
-  | Type_declarations of Ident.t * type_declaration * type_declaration
+  | Type_declarations of Ident.t * type_declaration
+        * type_declaration * Includecore.type_mismatch list
   | Exception_declarations of
       Ident.t * exception_declaration * exception_declaration
   | Module_types of module_type * module_type
@@ -56,9 +57,8 @@ let value_descriptions env subst id vd1 vd2 =
 
 let type_declarations env subst id decl1 decl2 =
   let decl2 = Subst.type_declaration subst decl2 in
-  if Includecore.type_declarations env id decl1 decl2
-  then ()
-  else raise(Error[Type_declarations(id, decl1, decl2)])
+  let err = Includecore.type_declarations env id decl1 decl2 in
+  if err <> [] then raise(Error[Type_declarations(id, decl1, decl2, err)])
 
 (* Inclusion between exception declarations *)
 
@@ -336,12 +336,14 @@ let include_err ppf = function
        "@[<hv 2>Values do not match:@ \
         %a@;<1 -2>is not included in@ %a@]"
        (value_description id) d1 (value_description id) d2
-  | Type_declarations(id, d1, d2) ->
-      fprintf ppf
-       "@[<hv 2>Type declarations do not match:@ \
-        %a@;<1 -2>is not included in@ %a@]"
-       (type_declaration id) d1
-       (type_declaration id) d2
+  | Type_declarations(id, d1, d2, errs) ->
+      fprintf ppf "@[@[<hv>%s:@;<1 2>%a@ %s@;<1 2>%a@]%a@]"
+        "Type declarations do not match"
+        (type_declaration id) d1
+        "is not included in"
+        (type_declaration id) d2
+        (Includecore.report_type_mismatch
+           "the first" "the second" "declaration") errs
   | Exception_declarations(id, d1, d2) ->
       fprintf ppf
        "@[<hv 2>Exception declarations do not match:@ \
index b0a2acd99fbfe647f394a0593d7225f3a4ae7ec4..f09035ca0831575c82b1ab016ef06affa1988c56 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: includemod.mli 10447 2010-05-21 03:36:52Z garrigue $ *)
 
 (* Inclusion checks for the module language *)
 
@@ -27,7 +27,8 @@ val type_declarations:
 type error =
     Missing_field of Ident.t
   | Value_descriptions of Ident.t * value_description * value_description
-  | Type_declarations of Ident.t * type_declaration * type_declaration
+  | Type_declarations of Ident.t * type_declaration
+        * type_declaration * Includecore.type_mismatch list
   | Exception_declarations of
       Ident.t * exception_declaration * exception_declaration
   | Module_types of module_type * module_type
index dddc65a0e9f5bdd00d8d00eeeb978c4cc150d521..1dc3037acf28918ab833b276bd0f3b85fba02911 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: mtype.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Operations on module types *)
 
index b15b09ec9c9010fcf4df1647c796b6b26b0ab2b8..855b35dfcda0ab2bb4c724c76459b6c2b8f7e604 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: mtype.mli 6196 2004-04-09 13:32:28Z xleroy $ *)
 
 (* Operations on module types *)
 
index 2344436b91c2d0baf834d8a01e0d24fdac68cfc9..763bf2b876c1968b531b8767bd630c4bf3acec11 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: oprint.ml 10486 2010-05-31 13:18:11Z xclerc $ *)
 
 open Format
 open Outcometree
@@ -28,15 +28,19 @@ let rec print_ident ppf =
   | Oide_apply (id1, id2) ->
       fprintf ppf "%a(%a)" print_ident id1 print_ident id2
 
+let parenthesized_ident name =
+  (List.mem name ["or"; "mod"; "land"; "lor"; "lxor"; "lsl"; "lsr"; "asr"])
+  ||
+  (match name.[0] with
+      'a'..'z' | '\223'..'\246' | '\248'..'\255' | '_' ->
+        false
+    | _ -> true)
+
 let value_ident ppf name =
-  if List.mem name
-       ["or"; "mod"; "land"; "lor"; "lxor"; "lsl"; "lsr"; "asr"] then
+  if parenthesized_ident name then
     fprintf ppf "( %s )" name
   else
-    match name.[0] with
-      'a'..'z' | '\223'..'\246' | '\248'..'\255' | '_' ->
-        fprintf ppf "%s" name
-    | _ -> fprintf ppf "( %s )" name
+    fprintf ppf "%s" name
 
 (* Values *)
 
index 902d3cf26b29d7522ec1c60e8665e6c349c4de3e..8ffd7141d0ec18c6e12283a9138f27cee97f96ec 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: oprint.mli 10486 2010-05-31 13:18:11Z xclerc $ *)
 
 open Format
 open Outcometree
@@ -22,3 +22,5 @@ val out_module_type : (formatter -> out_module_type -> unit) ref
 val out_sig_item : (formatter -> out_sig_item -> unit) ref
 val out_signature : (formatter -> out_sig_item list -> unit) ref
 val out_phrase : (formatter -> out_phrase -> unit) ref
+
+val parenthesized_ident : string -> bool
index 80c28ea08516be3ad822922bda2eb53c66039c58..30fc235fb537988d30d978635ce76310054a8ec8 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: outcometree.mli 9397 2009-10-26 10:53:16Z frisch $ *)
 
 (* Module [Outcometree]: results displayed by the toplevel *)
 
index d73f79af6a7637bf98b5e2053aea26bfb3b1ee69..e614962b374614afdc0a5bcd00545ccc7f5ff260 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parmatch.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Detection of partial matches and unused match cases. *)
 
index 7ef6a830877ed154bced868b09297ef4c0ef582c..3080749fe30b3f85aa6528fc4bad820f05b4a1a4 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: parmatch.mli 8906 2008-07-09 13:03:38Z mauny $ *)
 
 (* Detection of partial matches and unused match cases. *)
 open Types
index 009550261c25b370f65eb571dc892a427dc55852..53ab8f0a642072cf41a846ecfb2d02882bf7b214 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: path.ml 9547 2010-01-22 12:48:24Z doligez $ *)
 
 type t =
     Pident of Ident.t
index 96f3e98369b8176d81d79fb1a4e8aa5582495c50..e4d06324c9ae99c0af1ec24e5922cb3b21adec2f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: path.mli 5640 2003-07-01 13:05:43Z xleroy $ *)
 
 (* Access paths *)
 
index 728eb5729528551b82b950322e5e18c0a9960e33..e74468b98d1a7d7f093dbe82090593727a9d8c59 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: predef.ml 10288 2010-04-21 08:13:10Z xleroy $ *)
 
 (* Predefined type constructors (with special typing rules in typecore) *)
 
index b7bbb6f4b2c58b5fdba8e1d27248c1121067102f..3cf8b25d8d946eff4a1b9924d61359b365dad1eb 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: predef.mli 7702 2006-10-24 20:54:58Z weis $ *)
 
 (* Predefined type constructors (with special typing rules in typecore) *)
 
index 3d7ab5f7cb3b9064450b9e5f90299cd09b67b20c..c7ff952866c028ef189e1ae5a78180795c09a11b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: primitive.ml 8930 2008-07-24 05:35:22Z frisch $ *)
 
 (* Description of primitive functions *)
 
index 8446037f400ee712e283f581a052a2cac1986226..700502292293118fb181568349c6c262938dbd4b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: primitive.mli 8930 2008-07-24 05:35:22Z frisch $ *)
 
 (* Description of primitive functions *)
 
index 03c5e9110cc0d4a038a33fbe359b7c39d0dfa246..8d542df71a7d908f9be04c047f299816212ec2d8 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printtyp.ml 10333 2010-04-30 07:11:27Z garrigue $ *)
 
 (* Printing functions *)
 
index 5e3402ff8f174495cd2afc4a2a1ab1a60e896583..6f56d164efe55fd7d96a653dfa5c1d87309ed0f6 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: printtyp.mli 7382 2006-04-16 23:28:22Z doligez $ *)
 
 (* Printing functions *)
 
index 4d1166fe5bbddf8d848a44ff72bd9501d9d11b29..64028e101bc67e1254808c0274287dd0676dfe69 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stypes.ml 8958 2008-07-29 15:42:44Z doligez $ *)
 
 (* Recording and dumping (partial) type information *)
 
index 32f92c1d712732fe1c9b8247a777431c80d2ed51..06aea2c12966d77773049ef70e43a9d6a39e509f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: stypes.mli 8958 2008-07-29 15:42:44Z doligez $ *)
 
 (* Recording and dumping (partial) type information *)
 
index 6aa27660611882d7644a3413ecc5c3bc531dcbe6..6592c72e1ebe15954dbb886676965458a94f08cc 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: subst.ml 10285 2010-04-20 14:11:28Z xleroy $ *)
 
 (* Substitutions *)
 
index c861a57be3b9261970dadbd2ca3740262e31c2d8..1a501139be72ddcb09f086dd0cea20eccef96e9b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: subst.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Substitutions *)
 
index 142f22cb450e9f547f9e762d46747a2fd8acebef..334d14920b646349df84d19c0ebd50fc106a8f79 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typeclass.ml 10422 2010-05-18 17:25:02Z frisch $ *)
 
 open Misc
 open Parsetree
@@ -30,9 +30,7 @@ type error =
   | Apply_wrong_label of label
   | Pattern_type_clash of type_expr
   | Repeated_parameter
-  | Unbound_class of Longident.t
   | Unbound_class_2 of Longident.t
-  | Unbound_class_type of Longident.t
   | Unbound_class_type_2 of Longident.t
   | Abbrev_type_clash of type_expr * type_expr * type_expr
   | Constructor_type_mismatch of string * (type_expr * type_expr) list
@@ -390,10 +388,7 @@ and class_signature env sty sign =
 and class_type env scty =
   match scty.pcty_desc with
     Pcty_constr (lid, styl) ->
-      let (path, decl) =
-        try Env.lookup_cltype lid env with Not_found ->
-          raise(Error(scty.pcty_loc, Unbound_class_type lid))
-      in
+      let (path, decl) = Typetexp.find_cltype env scty.pcty_loc lid in
       if Path.same decl.clty_path unbound_class then
         raise(Error(scty.pcty_loc, Unbound_class_type_2 lid));
       let (params, clty) =
@@ -729,10 +724,7 @@ and class_structure cl_num final val_env met_env loc (spat, str) =
 and class_expr cl_num val_env met_env scl =
   match scl.pcl_desc with
     Pcl_constr (lid, styl) ->
-      let (path, decl) =
-        try Env.lookup_class lid val_env with Not_found ->
-          raise(Error(scl.pcl_loc, Unbound_class lid))
-      in
+      let (path, decl) = Typetexp.find_class val_env scl.pcl_loc lid in
       if Path.same decl.cty_path unbound_class then
         raise(Error(scl.pcl_loc, Unbound_class_2 lid));
       let tyl = List.map
@@ -1491,15 +1483,9 @@ let report_error ppf = function
       fprintf ppf "@[%s@ %a@]"
         "This pattern cannot match self: it only matches values of type"
         Printtyp.type_expr ty
-  | Unbound_class cl ->
-      fprintf ppf "@[Unbound class@ %a@]"
-      Printtyp.longident cl
   | Unbound_class_2 cl ->
       fprintf ppf "@[The class@ %a@ is not yet completely defined@]"
       Printtyp.longident cl
-  | Unbound_class_type cl ->
-      fprintf ppf "@[Unbound class type@ %a@]"
-      Printtyp.longident cl
   | Unbound_class_type_2 cl ->
       fprintf ppf "@[The class type@ %a@ is not yet completely defined@]"
       Printtyp.longident cl
index 17ec69854fe246caa53dcddc11abec853e048842..3b64577296d4f55f0feae0ffabbb49f292a51bcc 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typeclass.mli 10422 2010-05-18 17:25:02Z frisch $ *)
 
 open Asttypes
 open Types
@@ -55,9 +55,7 @@ type error =
   | Apply_wrong_label of label
   | Pattern_type_clash of type_expr
   | Repeated_parameter
-  | Unbound_class of Longident.t
   | Unbound_class_2 of Longident.t
-  | Unbound_class_type of Longident.t
   | Unbound_class_type_2 of Longident.t
   | Abbrev_type_clash of type_expr * type_expr * type_expr
   | Constructor_type_mismatch of string * (type_expr * type_expr) list
index 0f55bbab66e48d22ac9b58615e554f0a4cb7dc21..3e06110f16252aa2545c239e992f46be81e07daa 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typecore.ml 10540 2010-06-08 03:20:26Z garrigue $ *)
 
 (* Typechecking for the core language *)
 
@@ -23,12 +23,7 @@ open Btype
 open Ctype
 
 type error =
-    Unbound_value of Longident.t
-  | Unbound_constructor of Longident.t
-  | Unbound_label of Longident.t
-  | Unbound_module of Longident.t
-  | Unbound_functor of Longident.t
-  | Polymorphic_label of Longident.t
+    Polymorphic_label of Longident.t
   | Constructor_arity_mismatch of Longident.t * int * int
   | Label_mismatch of Longident.t * (type_expr * type_expr) list
   | Pattern_type_clash of (type_expr * type_expr) list
@@ -44,7 +39,6 @@ type error =
   | Bad_conversion of string * int * char
   | Undefined_method of type_expr * string
   | Undefined_inherited_method of string
-  | Unbound_class of Longident.t
   | Virtual_class of Longident.t
   | Private_type of type_expr
   | Private_label of Longident.t * type_expr
@@ -305,74 +299,8 @@ let rec build_as_type env p =
   | Tpat_any | Tpat_var _ | Tpat_constant _
   | Tpat_array _ | Tpat_lazy _ -> p.pat_type
 
-(* Narrowing unbound identifier errors. *)
-let rec narrow_unbound_lid_error env lid make_error =
-  let module_is_bound mlid =
-    ignore (Env.lookup_module mlid env) in
-  match lid with
-  | Longident.Lident _ -> make_error lid
-  | Longident.Ldot (mlid, _) ->
-    begin
-      try
-        module_is_bound mlid;
-        make_error lid with
-      | Not_found -> Unbound_module mlid
-    end
-  | Longident.Lapply (flid, mlid) ->
-    begin
-      try
-        module_is_bound flid;
-        begin
-          try
-            module_is_bound mlid;
-            make_error lid with
-          | Not_found -> Unbound_module mlid
-        end with
-      | Not_found -> Unbound_functor flid
-    end
-;;
-
-let unbound_lid_error env loc lid make_error =
-  let err = narrow_unbound_lid_error env lid make_error in
-  raise (Error (loc, err))
-;;
-
-let find_type env loc lid =
-  try Env.lookup_type lid env
-  with Not_found ->
-    unbound_lid_error env loc lid
-      (fun lid ->
-       raise (Typetexp.Error (loc, Typetexp.Unbound_type_constructor lid)))
-;;
-
-let find_constructor env loc lid =
-  try
-    match lid with
-    | Longident.Ldot (Longident.Lident "*predef*", s) ->
-        Env.lookup_constructor (Longident.Lident s) Env.initial
-    | _ -> Env.lookup_constructor lid env
-  with Not_found ->
-    unbound_lid_error env loc lid
-      (fun lid -> Unbound_constructor lid)
-;;
-
-let find_label env loc lid =
-  try
-    Env.lookup_label lid env
-  with Not_found ->
-    unbound_lid_error env loc lid
-      (fun lid -> Unbound_label lid)
-;;
-
-let find_class env loc lid =
-  try Env.lookup_class lid env with
-  | Not_found ->
-      unbound_lid_error env loc lid
-        (fun lid -> Unbound_class lid)
-;;
-
 let build_or_pat env loc lid =
-  let path, decl = find_type env loc lid
+  let path, decl = Typetexp.find_type env loc lid
   in
   let tyl = List.map (fun _ -> newvar()) decl.type_params in
   let row0 =
@@ -524,7 +452,7 @@ let rec type_pat env sp =
         pat_type = newty (Ttuple(List.map (fun p -> p.pat_type) pl));
         pat_env = env }
   | Ppat_construct(lid, sarg, explicit_arity) ->
-      let constr = find_constructor env loc lid in
+      let constr = Typetexp.find_constructor env loc lid in
       let sargs =
         match sarg with
           None -> []
@@ -565,7 +493,7 @@ let rec type_pat env sp =
   | Ppat_record(lid_sp_list, closed) ->
       let ty = newvar() in
       let type_label_pat (lid, sarg) =
-        let label = find_label env loc lid in
+        let label = Typetexp.find_label env loc lid in
         begin_def ();
         let (vars, ty_arg, ty_res) = instance_label false label in
         if vars = [] then end_def ();
@@ -1074,14 +1002,22 @@ let rec type_exp env sexp =
   let loc = sexp.pexp_loc in
   match sexp.pexp_desc with
   | Pexp_ident lid ->
-      begin try
+      begin
         if !Clflags.annotations then begin
           try let (path, annot) = Env.lookup_annot lid env in
+              let rec name_of_path = function
+                | Path.Pident id -> Ident.name id
+                | Path.Pdot(p, s, pos) ->
+                    if Oprint.parenthesized_ident s then
+                      name_of_path p ^ ".( " ^ s ^ " )"
+                    else
+                      name_of_path p ^ "." ^ s
+                | Path.Papply(p1, p2) -> name_of_path p1 ^ "(" ^ name_of_path p2 ^ ")" in
               Stypes.record
-                (Stypes.An_ident (loc, Path.name path, annot))
+                (Stypes.An_ident (loc, name_of_path path, annot))
           with _ -> ()
         end;
-        let (path, desc) = Env.lookup_value lid env in
+        let (path, desc) = Typetexp.find_value env loc lid in
         re {
           exp_desc =
             begin match desc.val_kind with
@@ -1103,9 +1039,6 @@ let rec type_exp env sexp =
           exp_loc = loc;
           exp_type = instance desc.val_type;
           exp_env = env }
-      with Not_found ->
-        unbound_lid_error env loc lid
-          (fun lid -> Unbound_value lid)
       end
   | Pexp_constant cst ->
       re {
@@ -1202,31 +1135,9 @@ let rec type_exp env sexp =
                                   row_name = None});
         exp_env = env }
   | Pexp_record(lid_sexp_list, opt_sexp) ->
-      let ty = newvar() in
-      let num_fields = ref 0 in
-      let type_label_exp (lid, sarg) =
-        let label = find_label env loc lid in
-        begin_def ();
-        if !Clflags.principal then begin_def ();
-        let (vars, ty_arg, ty_res) = instance_label true label in
-        if !Clflags.principal then begin
-          end_def ();
-          generalize_structure ty_arg;
-          generalize_structure ty_res
-        end;
-        begin try
-          unify env (instance ty_res) ty
-        with Unify trace ->
-          raise(Error(loc, Label_mismatch(lid, trace)))
-        end;
-        let arg = type_argument env sarg ty_arg in
-        end_def ();
-        check_univars env (vars <> []) "field value" arg label.lbl_arg vars;
-        num_fields := Array.length label.lbl_all;
-        if label.lbl_private = Private then
-          raise(Error(loc, Private_type ty));
-        (label, {arg with exp_type = instance arg.exp_type}) in
-      let lbl_exp_list = type_label_a_list type_label_exp lid_sexp_list in
+      let ty = newvar () in
+      let lbl_exp_list =
+        type_label_a_list (type_label_exp true env loc ty) lid_sexp_list in
       let rec check_duplicates seen_pos lid_sexp lbl_exp =
         match (lid_sexp, lbl_exp) with
           ((lid, _) :: rem1, (lbl, _) :: rem2) ->
@@ -1254,7 +1165,10 @@ let rec type_exp env sexp =
             Some(type_expect env sexp ty_exp)
         | _ -> assert false
       in
-      if opt_sexp = None && List.length lid_sexp_list <> !num_fields then begin
+      let num_fields =
+        match lbl_exp_list with [] -> assert false
+        | (lbl,_)::_ -> Array.length lbl.lbl_all in
+      if opt_sexp = None && List.length lid_sexp_list <> num_fields then begin
         let present_indices =
           List.map (fun (lbl, _) -> lbl.lbl_pos) lbl_exp_list in
         let label_names = extract_label_names sexp env ty in
@@ -1267,7 +1181,7 @@ let rec type_exp env sexp =
         let missing = missing_labels 0 label_names in
         raise(Error(loc, Label_missing missing))
       end
-      else if opt_sexp <> None && List.length lid_sexp_list = !num_fields then
+      else if opt_sexp <> None && List.length lid_sexp_list = num_fields then
         Location.prerr_warning loc Warnings.Useless_record_with;
       re {
         exp_desc = Texp_record(lbl_exp_list, opt_exp);
@@ -1276,7 +1190,7 @@ let rec type_exp env sexp =
         exp_env = env }
   | Pexp_field(sarg, lid) ->
       let arg = type_exp env sarg in
-      let label = find_label env loc lid in
+      let label = Typetexp.find_label env loc lid in
       let (_, ty_arg, ty_res) = instance_label false label in
       unify_exp env arg ty_res;
       re {
@@ -1286,17 +1200,10 @@ let rec type_exp env sexp =
         exp_env = env }
   | Pexp_setfield(srecord, lid, snewval) ->
       let record = type_exp env srecord in
-      let label = find_label env loc lid in
+      let (label, newval) =
+        type_label_exp false env loc record.exp_type (lid, snewval) in
       if label.lbl_mut = Immutable then
         raise(Error(loc, Label_not_mutable lid));
-      begin_def ();
-      let (vars, ty_arg, ty_res) = instance_label true label in
-      unify_exp env record ty_res;
-      let newval = type_expect env snewval ty_arg in
-      end_def ();
-      check_univars env (vars <> []) "field value" newval label.lbl_arg vars;
-      if label.lbl_private = Private then
-        raise(Error(loc, Private_label(lid, ty_res)));
       re {
         exp_desc = Texp_setfield(record, label, newval);
         exp_loc = loc;
@@ -1533,7 +1440,7 @@ let rec type_exp env sexp =
         raise(Error(e.pexp_loc, Undefined_method (obj.exp_type, met)))
       end
   | Pexp_new cl ->
-      let (cl_path, cl_decl) = find_class env loc cl in
+      let (cl_path, cl_decl) = Typetexp.find_class env loc cl in
         begin match cl_decl.cty_new with
           None ->
             raise(Error(loc, Virtual_class cl))
@@ -1710,6 +1617,45 @@ let rec type_exp env sexp =
   | Pexp_open (lid, e) ->
       type_exp (!type_open env sexp.pexp_loc lid) e
 
+and type_label_exp create env loc ty (lid, sarg) =
+  let label = Typetexp.find_label env sarg.pexp_loc lid in
+  begin_def ();
+  if !Clflags.principal then begin_def ();
+  let (vars, ty_arg, ty_res) = instance_label true label in
+  if !Clflags.principal then begin
+    end_def ();
+    generalize_structure ty_arg;
+    generalize_structure ty_res
+  end;
+  begin try
+    unify env (instance ty_res) ty
+  with Unify trace ->
+    raise(Error(loc , Label_mismatch(lid, trace)))
+  end;
+  if label.lbl_private = Private then
+    raise(Error(loc, if create then Private_type ty else Private_label (lid, ty)));
+  let arg =
+    let snap = if vars = [] then None else Some (Btype.snapshot ()) in
+    let arg = type_argument env sarg ty_arg in
+    end_def ();
+    try
+      check_univars env (vars <> []) "field value" arg label.lbl_arg vars;
+      arg
+    with exn when not (is_nonexpansive arg) -> try
+      (* Try to retype without propagating ty_arg, cf PR#4862 *)
+      may Btype.backtrack snap;
+      begin_def ();
+      let arg = type_exp env sarg in
+      end_def ();
+      generalize_expansive env arg.exp_type;
+      unify_exp env arg ty_arg;
+      check_univars env false "field value" arg label.lbl_arg vars;
+      arg
+    with Error (_, Less_general _) as e -> raise e
+    | _ -> raise exn    (* In case of failure return the first error *)
+  in
+  (label, {arg with exp_type = instance arg.exp_type})
+
 and type_argument env sarg ty_expected' =
   (* ty_expected' may be generic *)
   let no_labels ty =
@@ -1952,7 +1898,7 @@ and type_application env funct sargs =
         type_args [] [] ty ty sargs []
 
 and type_construct env loc lid sarg explicit_arity ty_expected =
-  let constr = find_constructor env loc lid in
+  let constr = Typetexp.find_constructor env loc lid in
   let sargs =
     match sarg with
       None -> []
@@ -2309,16 +2255,6 @@ open Format
 open Printtyp
 
 let report_error ppf = function
-  | Unbound_value lid ->
-      fprintf ppf "Unbound value %a" longident lid
-  | Unbound_module lid ->
-      fprintf ppf "Unbound module %a" longident lid
-  | Unbound_functor lid ->
-      fprintf ppf "Unbound functor %a" longident lid
-  | Unbound_constructor lid ->
-      fprintf ppf "Unbound constructor %a" longident lid
-  | Unbound_label lid ->
-      fprintf ppf "Unbound record field label %a" longident lid
   | Polymorphic_label lid ->
       fprintf ppf "@[The record field label %a is polymorphic.@ %s@]"
         longident lid "You cannot instantiate it in a pattern."
@@ -2393,8 +2329,6 @@ let report_error ppf = function
          It has no method %s@]" type_expr ty me
   | Undefined_inherited_method me ->
       fprintf ppf "This expression has no method %s" me
-  | Unbound_class cl ->
-      fprintf ppf "Unbound class %a" longident cl
   | Virtual_class cl ->
       fprintf ppf "Cannot instantiate the virtual class %a"
         longident cl
index 11132827fa4f010267296ab8a516af7e46849b68..07d7940220a7232b209b7dbf9a602452ce9afed7 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typecore.mli 10417 2010-05-18 16:46:46Z frisch $ *)
 
 (* Type inference for the core language *)
 
@@ -63,12 +63,7 @@ val force_delayed_checks: unit -> unit
 val self_coercion : (Path.t * Location.t list ref) list ref
 
 type error =
-    Unbound_value of Longident.t
-  | Unbound_constructor of Longident.t
-  | Unbound_label of Longident.t
-  | Unbound_module of Longident.t
-  | Unbound_functor of Longident.t
-  | Polymorphic_label of Longident.t
+    Polymorphic_label of Longident.t
   | Constructor_arity_mismatch of Longident.t * int * int
   | Label_mismatch of Longident.t * (type_expr * type_expr) list
   | Pattern_type_clash of (type_expr * type_expr) list
@@ -84,7 +79,6 @@ type error =
   | Bad_conversion of string * int * char
   | Undefined_method of type_expr * string
   | Undefined_inherited_method of string
-  | Unbound_class of Longident.t
   | Virtual_class of Longident.t
   | Private_type of type_expr
   | Private_label of Longident.t * type_expr
index 1d0eaad1de82ca5a4d70ce71f233f7c79e36ca1b..3322b1bcd555bd03afba7ed66fdb588b15181304 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typedecl.ml 10458 2010-05-24 06:52:16Z garrigue $ *)
 
 (**** Typing of type definitions ****)
 
@@ -28,7 +28,7 @@ type error =
   | Too_many_constructors
   | Duplicate_label of string
   | Recursive_abbrev of string
-  | Definition_mismatch of type_expr
+  | Definition_mismatch of type_expr * Includecore.type_mismatch list
   | Constraint_failed of type_expr * type_expr
   | Unconsistent_constraint of (type_expr * type_expr) list
   | Type_clash of (type_expr * type_expr) list
@@ -316,18 +316,23 @@ let check_abbrev env (_, sdecl) (id, decl) =
         Tconstr(path, args, _) ->
           begin try
             let decl' = Env.find_type path env in
-            if List.length args = List.length decl.type_params
-            && Ctype.equal env false args decl.type_params
-            && Includecore.type_declarations env id
-                decl'
-                (Subst.type_declaration (Subst.add_type id path Subst.identity)
-                                        decl)
-            then ()
-            else raise(Error(sdecl.ptype_loc, Definition_mismatch ty))
+            let err =
+              if List.length args <> List.length decl.type_params
+              then [Includecore.Arity]
+              else if not (Ctype.equal env false args decl.type_params)
+              then [Includecore.Constraint]
+              else
+                Includecore.type_declarations env id
+                  decl'
+                  (Subst.type_declaration
+                     (Subst.add_type id path Subst.identity) decl)
+            in
+            if err <> [] then
+              raise(Error(sdecl.ptype_loc, Definition_mismatch (ty, err)))
           with Not_found ->
             raise(Error(sdecl.ptype_loc, Unavailable_type_constructor path))
           end
-      | _ -> raise(Error(sdecl.ptype_loc, Definition_mismatch ty))
+      | _ -> raise(Error(sdecl.ptype_loc, Definition_mismatch (ty, [])))
       end
   | _ -> ()
 
@@ -888,18 +893,20 @@ let report_error ppf = function
   | Duplicate_constructor s ->
       fprintf ppf "Two constructors are named %s" s
   | Too_many_constructors ->
-      fprintf ppf "Too many non-constant constructors -- \
-                   maximum is %i non-constant constructors"
-        (Config.max_tag + 1)
+      fprintf ppf
+        "@[Too many non-constant constructors@ -- maximum is %i %s@]"
+        (Config.max_tag + 1) "non-constant constructors"
   | Duplicate_label s ->
       fprintf ppf "Two labels are named %s" s
   | Recursive_abbrev s ->
       fprintf ppf "The type abbreviation %s is cyclic" s
-  | Definition_mismatch ty ->
+  | Definition_mismatch (ty, errs) ->
       Printtyp.reset_and_mark_loops ty;
-      fprintf ppf
-        "The variant or record definition does not match that of type@ %a"
+      fprintf ppf "@[<v>@[<hov>%s@ %s@;<1 2>%a@]%a@]"
+        "This variant or record definition" "does not match that of type"
         Printtyp.type_expr ty
+        (Includecore.report_type_mismatch "the original" "this" "definition")
+        errs
   | Constraint_failed (ty, ty') ->
       fprintf ppf "Constraints are not satisfied in this type.@.";
       Printtyp.reset_and_mark_loops ty;
index c44f467d7a95d74e01c98812f609ca937331268f..5cc7187d4013b4cf24217f4428cc75a29a770f50 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typedecl.mli 10447 2010-05-21 03:36:52Z garrigue $ *)
 
 (* Typing of type definitions and primitive definitions *)
 
@@ -57,7 +57,7 @@ type error =
   | Too_many_constructors
   | Duplicate_label of string
   | Recursive_abbrev of string
-  | Definition_mismatch of type_expr
+  | Definition_mismatch of type_expr * Includecore.type_mismatch list
   | Constraint_failed of type_expr * type_expr
   | Unconsistent_constraint of (type_expr * type_expr) list
   | Type_clash of (type_expr * type_expr) list
index e2b7e285e9dbd54d607846c1855fd3bb9530fa48..7a83603e00e305f42fb0d0175642fc35da21283d 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typedtree.ml 9397 2009-10-26 10:53:16Z frisch $ *)
 
 (* Abstract syntax tree after typing *)
 
index eb64937cfefc60c93bb3d1390f393f7d35571cf8..d29bfb839a82ccc1f5285324821ba553effa9fdf 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typedtree.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Abstract syntax tree after typing *)
 
index dbe61f42ead6935ba68870506573ca831009d91b..3e69aad8621450f4f6bb5eb0f52cf03771ad72c5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typemod.ml 10532 2010-06-07 08:24:02Z garrigue $ *)
 
 (* Type-checking of the module language *)
 
@@ -24,9 +24,7 @@ open Typedtree
 open Format
 
 type error =
-    Unbound_module of Longident.t
-  | Unbound_modtype of Longident.t
-  | Cannot_apply of module_type
+    Cannot_apply of module_type
   | Not_included of Includemod.error list
   | Cannot_eliminate_dependency of module_type
   | Signature_expected
@@ -56,18 +54,10 @@ let extract_sig_open env loc mty =
     Tmty_signature sg -> sg
   | _ -> raise(Error(loc, Structure_expected mty))
 
-(* Lookup the type of a module path *)
-
-let type_module_path env loc lid =
-  try
-    Env.lookup_module lid env
-  with Not_found ->
-    raise(Error(loc, Unbound_module lid))
-
 (* Compute the environment after opening a module *)
 
 let type_open env loc lid =
-  let (path, mty) = type_module_path env loc lid in
+  let (path, mty) = Typetexp.find_module env loc lid in
   let sg = extract_sig_open env loc mty in
   Env.open_signature path sg env
 
@@ -147,13 +137,13 @@ let merge_constraint initial_env loc sg lid constr =
         rem
     | (Tsig_module(id, mty, rs) :: rem, [s], Pwith_module lid)
       when Ident.name id = s ->
-        let (path, mty') = type_module_path initial_env loc lid in
+        let (path, mty') = Typetexp.find_module initial_env loc lid in
         let newmty = Mtype.strengthen env mty' path in
         ignore(Includemod.modtypes env newmty mty);
         Tsig_module(id, newmty, rs) :: rem
     | (Tsig_module(id, mty, rs) :: rem, [s], Pwith_modsubst lid)
       when Ident.name id = s ->
-        let (path, mty') = type_module_path initial_env loc lid in
+        let (path, mty') = Typetexp.find_module initial_env loc lid in
         let newmty = Mtype.strengthen env mty' path in
         ignore(Includemod.modtypes env newmty mty);
         real_id := Some id;
@@ -191,7 +181,7 @@ let merge_constraint initial_env loc sg lid constr =
     | [s], Pwith_modsubst lid ->
         let id =
           match !real_id with None -> assert false | Some id -> id in
-        let (path, _) = type_module_path initial_env loc lid in
+        let (path, _) = Typetexp.find_module initial_env loc lid in
         let sub = Subst.add_module id path Subst.identity in
         Subst.signature sub sg
     | _ ->
@@ -222,12 +212,8 @@ let rec map_rec' fn decls rem =
 let rec approx_modtype env smty =
   match smty.pmty_desc with
     Pmty_ident lid ->
-      begin try
-        let (path, info) = Env.lookup_modtype lid env in
-        Tmty_ident path
-      with Not_found ->
-        raise(Error(smty.pmty_loc, Unbound_modtype lid))
-      end
+      let (path, info) = Typetexp.find_modtype env smty.pmty_loc lid in
+      Tmty_ident path
   | Pmty_signature ssg ->
       Tmty_signature(approx_sig env ssg)
   | Pmty_functor(param, sarg, sres) ->
@@ -341,11 +327,8 @@ let rec get_values = function
 (* Check and translate a module type expression *)
 
 let transl_modtype_longident loc env lid =
-  try
-    let (path, info) = Env.lookup_modtype lid env in
-    path
-  with Not_found ->
-    raise(Error(loc, Unbound_modtype lid))
+  let (path, info) = Typetexp.find_modtype env loc lid in
+  path
 
 let rec transl_modtype env smty =
   match smty.pmty_desc with
@@ -650,16 +633,17 @@ let check_recmodule_inclusion env bindings =
 
 (* Type a module value expression *)
 
-let rec type_module funct_body anchor env smod =
+let rec type_module sttn funct_body anchor env smod =
   match smod.pmod_desc with
     Pmod_ident lid ->
-      let (path, mty) = type_module_path env smod.pmod_loc lid in
+      let (path, mty) = Typetexp.find_module env smod.pmod_loc lid in
       rm { mod_desc = Tmod_ident path;
-           mod_type = Mtype.strengthen env mty path;
+           mod_type = if sttn then Mtype.strengthen env mty path else mty;
            mod_env = env;
            mod_loc = smod.pmod_loc }
   | Pmod_structure sstr ->
-      let (str, sg, finalenv) = type_structure funct_body anchor env sstr smod.pmod_loc in
+      let (str, sg, finalenv) =
+        type_structure funct_body anchor env sstr smod.pmod_loc in
       rm { mod_desc = Tmod_structure str;
            mod_type = Tmty_signature sg;
            mod_env = env;
@@ -667,14 +651,16 @@ let rec type_module funct_body anchor env smod =
   | Pmod_functor(name, smty, sbody) ->
       let mty = transl_modtype env smty in
       let (id, newenv) = Env.enter_module name mty env in
-      let body = type_module true None newenv sbody in
+      let body = type_module sttn true None newenv sbody in
       rm { mod_desc = Tmod_functor(id, mty, body);
            mod_type = Tmty_functor(id, mty, body.mod_type);
            mod_env = env;
            mod_loc = smod.pmod_loc }
   | Pmod_apply(sfunct, sarg) ->
-      let funct = type_module funct_body None env sfunct in
-      let arg = type_module funct_body None env sarg in
+      let arg = type_module true funct_body None env sarg in
+      let path = try Some (path_of_module arg) with Not_a_path -> None in
+      let funct =
+        type_module (sttn && path <> None) funct_body None env sfunct in
       begin match Mtype.scrape env funct.mod_type with
         Tmty_functor(param, mty_param, mty_res) as mty_functor ->
           let coercion =
@@ -683,17 +669,18 @@ let rec type_module funct_body anchor env smod =
             with Includemod.Error msg ->
               raise(Error(sarg.pmod_loc, Not_included msg)) in
           let mty_appl =
-            try
-              let path = path_of_module arg in
-              Subst.modtype (Subst.add_module param path Subst.identity)
-                            mty_res
-            with Not_a_path ->
-              try
-                Mtype.nondep_supertype
-                  (Env.add_module param arg.mod_type env) param mty_res
-              with Not_found ->
-                raise(Error(smod.pmod_loc,
-                            Cannot_eliminate_dependency mty_functor)) in
+            match path with
+              Some path ->
+                Subst.modtype (Subst.add_module param path Subst.identity)
+                              mty_res
+            | None ->
+                try
+                  Mtype.nondep_supertype
+                    (Env.add_module param arg.mod_type env) param mty_res
+                with Not_found ->
+                  raise(Error(smod.pmod_loc,
+                              Cannot_eliminate_dependency mty_functor))
+          in
           rm { mod_desc = Tmod_apply(funct, arg, coercion);
                mod_type = mty_appl;
                mod_env = env;
@@ -702,7 +689,7 @@ let rec type_module funct_body anchor env smod =
           raise(Error(sfunct.pmod_loc, Cannot_apply funct.mod_type))
       end
   | Pmod_constraint(sarg, smty) ->
-      let arg = type_module funct_body anchor env sarg in
+      let arg = type_module true funct_body anchor env sarg in
       let mty = transl_modtype env smty in
       let coercion =
         try
@@ -715,10 +702,12 @@ let rec type_module funct_body anchor env smod =
            mod_loc = smod.pmod_loc }
 
   | Pmod_unpack (sexp, (p, l)) ->
-      if funct_body then raise (Error (smod.pmod_loc, Not_allowed_in_functor_body));
+      if funct_body then
+        raise (Error (smod.pmod_loc, Not_allowed_in_functor_body));
       let l, mty = Typetexp.create_package_mty smod.pmod_loc env (p, l) in
       let mty = transl_modtype env mty in
-      let exp = Typecore.type_expect env sexp (Typecore.create_package_type smod.pmod_loc env (p, l)) in
+      let exp = Typecore.type_expect env sexp
+          (Typecore.create_package_type smod.pmod_loc env (p, l)) in
       rm { mod_desc = Tmod_unpack(exp, mty);
            mod_type = mty;
            mod_env = env;
@@ -792,7 +781,9 @@ and type_structure funct_body anchor env sstr scope =
          final_env)
     | {pstr_desc = Pstr_module(name, smodl); pstr_loc = loc} :: srem ->
         check "module" loc module_names name;
-        let modl = type_module funct_body (anchor_submodule name anchor) env smodl in
+        let modl =
+          type_module true funct_body (anchor_submodule name anchor) env
+            smodl in
         let mty = enrich_module_type anchor name modl.mod_type env in
         let (id, newenv) = Env.enter_module name mty env in
         let (str_rem, sig_rem, final_env) = type_struct newenv srem in
@@ -810,9 +801,11 @@ and type_structure funct_body anchor env sstr scope =
           List.map2
             (fun (id, mty) (name, smty, smodl) ->
               let modl =
-                type_module funct_body (anchor_recmodule id anchor) newenv smodl in
+                type_module true funct_body (anchor_recmodule id anchor) newenv
+                  smodl in
               let mty' =
-                enrich_module_type anchor (Ident.name id) modl.mod_type newenv in
+                enrich_module_type anchor (Ident.name id) modl.mod_type newenv
+              in
               (id, mty, modl, mty'))
            decls sbind in
         let bindings2 =
@@ -880,7 +873,7 @@ and type_structure funct_body anchor env sstr scope =
               classes [sig_rem]),
          final_env)
     | {pstr_desc = Pstr_include smodl; pstr_loc = loc} :: srem ->
-        let modl = type_module funct_body None env smodl in
+        let modl = type_module true funct_body None env smodl in
         (* Rename all identifiers bound by this signature to avoid clashes *)
         let sg = Subst.signature Subst.identity
                    (extract_sig_open env smodl.pmod_loc modl.mod_type) in
@@ -896,7 +889,7 @@ and type_structure funct_body anchor env sstr scope =
   then List.iter (function {pstr_loc = l} -> Stypes.record_phrase l) sstr;
   type_struct env sstr
 
-let type_module = type_module false None
+let type_module = type_module true false None
 let type_structure = type_structure false None
 
 (* Normalize types in a signature *)
@@ -951,7 +944,7 @@ let type_module_type_of env smod =
   let mty =
     match smod.pmod_desc with
     | Pmod_ident lid -> (* turn off strengthening in this case *)
-        let (path, mty) = type_module_path env smod.pmod_loc lid in mty
+        let (path, mty) = Typetexp.find_module env smod.pmod_loc lid in mty
     | _ -> (type_module env smod).mod_type in
   (* PR#5037: clean up inferred signature to remove duplicate specs *)
   let mty = simplify_modtype mty in
@@ -1056,9 +1049,7 @@ let package_units objfiles cmifile modulename =
 open Printtyp
 
 let report_error ppf = function
-  | Unbound_module lid -> fprintf ppf "Unbound module %a" longident lid
-  | Unbound_modtype lid -> fprintf ppf "Unbound module type %a" longident lid
-  | Cannot_apply mty ->
+    Cannot_apply mty ->
       fprintf ppf
         "@[This module is not a functor; it has type@ %a@]" modtype mty
   | Not_included errs ->
index 2dcbd2d608cb4d92a7c0b27fadb22a4c501de020..4148c716c2d0010058ea4e3bf12965f3971d3748 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typemod.mli 10419 2010-05-18 17:18:24Z frisch $ *)
 
 (* Type-checking of the module language *)
 
@@ -36,9 +36,7 @@ val package_units:
         string list -> string -> string -> Typedtree.module_coercion
 
 type error =
-    Unbound_module of Longident.t
-  | Unbound_modtype of Longident.t
-  | Cannot_apply of module_type
+    Cannot_apply of module_type
   | Not_included of Includemod.error list
   | Cannot_eliminate_dependency of module_type
   | Signature_expected
index 5996719d4d2ff9c32c8a51a86976804af4a7b82a..21f65420b755321c9cb9b853f6adf36f520afcf5 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: types.ml 9397 2009-10-26 10:53:16Z frisch $ *)
 
 (* Representation of types and declarations *)
 
index a4c640845703d3cc48fa0daa70d9b6f82d7fb5c6..1ca1a1b3d99b2218794ac8d0c961d659a4dbeb1a 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: types.mli 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 (* Representation of types and declarations *)
 
index e4c782d7350f77fd2f0204e28cbc3a24b2186138..838719b7c493e6327cb067ccafdb8f18c7b5abe1 100644 (file)
@@ -28,7 +28,6 @@ type error =
   | Type_arity_mismatch of Longident.t * int * int
   | Bound_type_variable of string
   | Recursive_type
-  | Unbound_class of Longident.t
   | Unbound_row_variable of Longident.t
   | Type_mismatch of (type_expr * type_expr) list
   | Alias_type_mismatch of (type_expr * type_expr) list
@@ -41,11 +40,62 @@ type error =
   | Cannot_quantify of string * type_expr
   | Multiple_constraints_on_type of string
   | Repeated_method_label of string
+  | Unbound_value of Longident.t
+  | Unbound_constructor of Longident.t
+  | Unbound_label of Longident.t
+  | Unbound_module of Longident.t
+  | Unbound_class of Longident.t
+  | Unbound_modtype of Longident.t
+  | Unbound_cltype of Longident.t
+  | Ill_typed_functor_application of Longident.t
 
 exception Error of Location.t * error
 
 type variable_context = int * (string, type_expr) Tbl.t
 
+(* Narrowing unbound identifier errors. *)
+
+let rec narrow_unbound_lid_error env loc lid make_error =
+  let check_module mlid =
+    try ignore (Env.lookup_module mlid env)
+    with Not_found -> narrow_unbound_lid_error env loc mlid (fun lid -> Unbound_module lid); assert false
+  in
+  begin match lid with
+  | Longident.Lident _ -> ()
+  | Longident.Ldot (mlid, _) -> check_module mlid
+  | Longident.Lapply (flid, mlid) ->
+      check_module flid;
+      check_module mlid;
+      raise (Error (loc, Ill_typed_functor_application lid))
+  end;
+  raise (Error (loc, make_error lid))
+
+let find_component lookup make_error env loc lid =
+  try
+    match lid with
+    | Longident.Ldot (Longident.Lident "*predef*", s) -> lookup (Longident.Lident s) Env.initial
+    | _ -> lookup lid env
+  with Not_found ->
+    (narrow_unbound_lid_error env loc lid make_error
+     : unit (* to avoid a warning *));
+    assert false
+
+let find_type = find_component Env.lookup_type (fun lid -> Unbound_type_constructor lid)
+
+let find_constructor = find_component Env.lookup_constructor (fun lid -> Unbound_constructor lid)
+
+let find_label = find_component Env.lookup_label (fun lid -> Unbound_label lid)
+
+let find_class = find_component Env.lookup_class (fun lid -> Unbound_class lid)
+
+let find_value = find_component Env.lookup_value (fun lid -> Unbound_value lid)
+
+let find_module = find_component Env.lookup_module (fun lid -> Unbound_module lid)
+
+let find_modtype = find_component Env.lookup_modtype (fun lid -> Unbound_modtype lid)
+
+let find_cltype = find_component Env.lookup_cltype (fun lid -> Unbound_cltype lid)
+
 (* Support for first-class modules. *)
 
 let transl_modtype_longident = ref (fun _ -> assert false)
@@ -151,17 +201,7 @@ let rec transl_type env policy styp =
   | Ptyp_tuple stl ->
       newty (Ttuple(List.map (transl_type env policy) stl))
   | Ptyp_constr(lid, stl) ->
-      let (path, decl) =
-        let lid, env =
-          match lid with
-          | Longident.Ldot (Longident.Lident "*predef*", lid) ->
-              Longident.Lident lid, Env.initial
-          | _ -> lid, env
-        in
-        try
-          Env.lookup_type lid env
-        with Not_found ->
-          raise(Error(styp.ptyp_loc, Unbound_type_constructor lid)) in
+      let (path, decl) = find_type env styp.ptyp_loc lid in
       if List.length stl <> decl.type_arity then
         raise(Error(styp.ptyp_loc, Type_arity_mismatch(lid, decl.type_arity,
                                                            List.length stl)));
@@ -533,6 +573,7 @@ let transl_type_scheme env styp =
   generalize typ;
   typ
 
+
 (* Error report *)
 
 open Format
@@ -555,8 +596,6 @@ let report_error ppf = function
       fprintf ppf "Already bound type parameter '%s" name
   | Recursive_type ->
       fprintf ppf "This type is recursive"
-  | Unbound_class lid ->
-      fprintf ppf "Unbound class %a" longident lid
   | Unbound_row_variable lid ->
       fprintf ppf "Unbound row variable in #%a" longident lid
   | Type_mismatch trace ->
@@ -604,3 +643,19 @@ let report_error ppf = function
   | Repeated_method_label s ->
       fprintf ppf "@[This is the second method `%s' of this object type.@ %s@]"
         s "Multiple occurences are not allowed."
+  | Unbound_value lid ->
+      fprintf ppf "Unbound value %a" longident lid
+  | Unbound_module lid ->
+      fprintf ppf "Unbound module %a" longident lid
+  | Unbound_constructor lid ->
+      fprintf ppf "Unbound constructor %a" longident lid
+  | Unbound_label lid ->
+      fprintf ppf "Unbound record field label %a" longident lid
+  | Unbound_class lid ->
+      fprintf ppf "Unbound class %a" longident lid
+  | Unbound_modtype lid ->
+      fprintf ppf "Unbound module type %a" longident lid
+  | Unbound_cltype lid ->
+      fprintf ppf "Unbound class type %a" longident lid
+  | Ill_typed_functor_application lid ->
+      fprintf ppf "Ill-typed functor application %a" longident lid
index 5687b955d80b1fd83d179dd6f87f293c8f15b911..429472edfbe32148ac6f9e1210a4f9f536b98031 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: typetexp.mli 10422 2010-05-18 17:25:02Z frisch $ *)
 
 (* Typechecking of type expressions for the core language *)
 
@@ -43,7 +43,6 @@ type error =
   | Type_arity_mismatch of Longident.t * int * int
   | Bound_type_variable of string
   | Recursive_type
-  | Unbound_class of Longident.t
   | Unbound_row_variable of Longident.t
   | Type_mismatch of (Types.type_expr * Types.type_expr) list
   | Alias_type_mismatch of (Types.type_expr * Types.type_expr) list
@@ -56,6 +55,14 @@ type error =
   | Cannot_quantify of string * Types.type_expr
   | Multiple_constraints_on_type of string
   | Repeated_method_label of string
+  | Unbound_value of Longident.t
+  | Unbound_constructor of Longident.t
+  | Unbound_label of Longident.t
+  | Unbound_module of Longident.t
+  | Unbound_class of Longident.t
+  | Unbound_modtype of Longident.t
+  | Unbound_cltype of Longident.t
+  | Ill_typed_functor_application of Longident.t
 
 exception Error of Location.t * error
 
@@ -65,3 +72,12 @@ val report_error: formatter -> error -> unit
 val transl_modtype_longident: (Location.t -> Env.t -> Longident.t -> Path.t) ref  (* from Typemod *)
 val transl_modtype: (Env.t -> Parsetree.module_type -> Types.module_type) ref (* from Typemod *)
 val create_package_mty: Location.t -> Env.t -> Parsetree.package_type -> (string * Parsetree.core_type) list * Parsetree.module_type
+
+val find_type: Env.t -> Location.t -> Longident.t -> Path.t * Types.type_declaration
+val find_constructor: Env.t -> Location.t -> Longident.t -> Types.constructor_description
+val find_label: Env.t -> Location.t -> Longident.t -> Types.label_description
+val find_value: Env.t -> Location.t -> Longident.t -> Path.t * Types.value_description
+val find_class:  Env.t -> Location.t -> Longident.t -> Path.t * Types.class_declaration
+val find_module: Env.t -> Location.t -> Longident.t -> Path.t * Types.module_type
+val find_modtype: Env.t -> Location.t -> Longident.t -> Path.t * Types.modtype_declaration
+val find_cltype: Env.t -> Location.t -> Longident.t -> Path.t * Types.cltype_declaration
index 4339d9b0d31778f607e55ea2ca80d3328546d272..ce8457607c69c1aef835f272fd7a5005a0031c39 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unused_var.ml 10250 2010-04-08 03:58:41Z garrigue $ *)
 
 open Parsetree
 
index be36fccadd40be06bc58b86679fb55169f1a69c4..6d4086866b43e0831637da8725182fdd7cbf5b15 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: unused_var.mli 7307 2006-01-04 16:55:50Z doligez $ *)
 
 val warn : Format.formatter -> Parsetree.structure -> Parsetree.structure;;
 (* Warn on unused variables; return the second argument. *)
index 94a29217dc7ae2fd9711b1e017b7b2ef0d4e1218..c3d84eccbd1baec28730e53738137933da80c858 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ccomp.ml 10326 2010-04-28 12:09:32Z xleroy $ *)
 
 (* Compiling C files and building C libraries *)
 
index 72ae7131457c353cd4f6131589a2617edeea5983..47f15059c3a523995bbcff589f612ebff6942b39 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: ccomp.mli 8768 2008-01-11 16:13:18Z doligez $ *)
 
 (* Compiling C files and building C libraries *)
 
index 1074d3628c5ae462f5c9cb4d3dd4be7640c93c3b..c013d9d9f358bb800901516a4efd34a8cf5eb5b6 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: clflags.ml 9464 2009-12-09 09:17:12Z weis $ *)
 
 (* Command-line parameters *)
 
index d5357ef396171707672e58895b562e3664f3526f..beee95f1e6b9ea543b103f0ffa4a0784c2e757d9 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: clflags.mli 9464 2009-12-09 09:17:12Z weis $ *)
 
 val objfiles : string list ref
 val ccobjs : string list ref
index c12d834b9e4f467f6d8fe1b00bd9db7a71ce3f30..478d599758b3e4acbe17dc6dcf13e2cf22019eb9 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: config.mlbuild 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (***********************************************************************)
 (**                                                                   **)
@@ -68,6 +68,7 @@ and cmx_magic_number = "Caml1999Y011"
 and cmxa_magic_number = "Caml1999Z010"
 and ast_impl_magic_number = "Caml1999M013"
 and ast_intf_magic_number = "Caml1999N012"
+and cmxs_magic_number = "Caml2007D001"
 
 let load_path = ref ([] : string list)
 
index 91e10a04c2f560b196b800e8e7caaa4156e41fbf..4c66eb0851591287cd455f0ff8b8c6d6f53d4153 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: config.mli 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (* System configuration *)
 
@@ -72,6 +72,8 @@ val ast_intf_magic_number: string
         (* Magic number for file holding an interface syntax tree *)
 val ast_impl_magic_number: string
         (* Magic number for file holding an implementation syntax tree *)
+val cmxs_magic_number: string
+        (* Magic number for dynamically-loadable plugins *)
 
 val max_tag: int
         (* Biggest tag that can be stored in the header of a regular block. *)
index ae117612c0c178f4d0f366e97446a8f7831e8859..9694868658379d27e99788bad23c8f5f1f125d36 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: config.mlp 10424 2010-05-19 11:29:38Z xleroy $ *)
 
 (***********************************************************************)
 (**                                                                   **)
@@ -57,6 +57,7 @@ and cmx_magic_number = "Caml1999Y011"
 and cmxa_magic_number = "Caml1999Z010"
 and ast_impl_magic_number = "Caml1999M013"
 and ast_intf_magic_number = "Caml1999N012"
+and cmxs_magic_number = "Caml2007D001"
 
 let load_path = ref ([] : string list)
 
index d01d7c873565fa102f1bfb4165f7a63f57b00f6a..c9ffaf257c753f75158bb7940670cc4dec6c5b56 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: consistbl.ml 5275 2002-11-18 10:41:26Z xleroy $ *)
 
 (* Consistency tables: for checking consistency of module CRCs *)
 
index edaac12fc5b725596e2a56c79d685ed54b6d0e59..0e58dd57e570f332050cfeaaf11f2e88cdcb58a3 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: consistbl.mli 5275 2002-11-18 10:41:26Z xleroy $ *)
 
 (* Consistency tables: for checking consistency of module CRCs *)
 
index 68ca8e3dac8e5c716ecfa962b226653ec88b3bbf..04a07125c03347bcc6429166e92c2b86af6be342 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: misc.ml 7909 2007-02-23 13:44:51Z ertai $ *)
 
 (* Errors *)
 
index 87f74e2575398c4d640177199a194191d7d16142..9e08d8241a932f8b4c57b183ca609d48cdcb31d7 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: misc.mli 9547 2010-01-22 12:48:24Z doligez $ *)
 
 (* Miscellaneous useful types and functions *)
 
index b06516931db56c46d59c893a4faf891e1ad8fa50..c79a73f66e9eac85091d0421955e5df5f3386e76 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: tbl.ml 10285 2010-04-20 14:11:28Z xleroy $ *)
 
 type ('a, 'b) t =
     Empty
index 44a021a7855f6e62d596936f18ec866c3d13bfbb..fbe9624356971caf10ec083c459024d58e9fe033 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: tbl.mli 10285 2010-04-20 14:11:28Z xleroy $ *)
 
 (* Association tables from any ordered type to any type.
    We use the generic ordering to compare keys. *)
index cc1799108168f08cb4771b6a3ac30d81f37af240..8f1d5af8344186380790b90d0d603d1646d4b006 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: terminfo.ml 6045 2004-01-01 16:42:43Z doligez $ *)
 
 (* Basic interface to the terminfo database *)
 
index ef26b61a51f7ab370c6454051f677a3d94dc7e77..9198c13b77645ec985a072cdb0cb9f1524d551da 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: terminfo.mli 6045 2004-01-01 16:42:43Z doligez $ *)
 
 (* Basic interface to the terminfo database *)
 
index fff95d29cc00a96108afc4cf0d05e1d42e92c430..2ce355d10ce12e0417f36f4a201b24f62e894d31 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: warnings.ml 10450 2010-05-21 12:00:49Z doligez $ *)
 
 (* When you change this, you need to update the documentation:
    - man/ocamlc.m   in ocaml
@@ -210,7 +210,7 @@ let message = function
       "the method " ^ lab ^ " is overridden."
   | Method_override (cname :: slist) ->
       String.concat " "
-        ("the following methods are overriden by the class"
+        ("the following methods are overridden by the class"
          :: cname  :: ":\n " :: slist)
   | Method_override [] -> assert false
   | Partial_match "" -> "this pattern-matching is not exhaustive."
@@ -229,7 +229,7 @@ let message = function
       "The behaviour changed in ocaml 3.10 (previous behaviour was hiding.)"
   | Instance_variable_override (cname :: slist) ->
       String.concat " "
-        ("the following instance variables are overriden by the class"
+        ("the following instance variables are overridden by the class"
          :: cname  :: ":\n " :: slist) ^
       "\nThe behaviour changed in ocaml 3.10 (previous behaviour was hiding.)"
   | Instance_variable_override [] -> assert false
@@ -305,7 +305,7 @@ let descriptions =
     5, "Partially applied function: expression whose result has function\n\
    \    type and is ignored.";
     6, "Label omitted in function application.";
-    7, "Some methods are overriden in the class where they are defined.";
+    7, "Some methods are overridden in the class where they are defined.";
     8, "Partial match: missing cases in pattern-matching.";
     9, "Missing fields in a record pattern.";
    10, "Expression on the left-hand side of a sequence that doesn't have type\n\
index c9e577d9f397d26e71f7a629e45189b8f2362eb1..739b770aff60ee0147e95789fa5f64aafaa28815 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id$ *)
+(* $Id: warnings.mli 10369 2010-05-04 18:44:38Z frisch $ *)
 
 open Format
 
index a73b7315219547bb7777ad7c2a5b0cd3846a167e..518ce9e7378d1053786943ab6e040f8a9d3e7509 100644 (file)
@@ -11,7 +11,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 8521 2007-11-15 13:21:15Z frisch $
 
 include ../config/Makefile
 
index 095cbcc750e491e9015a3c891e754cf3312b11b6..cfa1d1b20798e50426560619c738f3f32b3ff33b 100644 (file)
@@ -10,7 +10,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: inria.h 9153 2008-12-03 18:09:09Z doligez $ */
 
 /*------------------------------------------------------------------------
  Module:        D:\lcc\inria\inria.h
index 3bfaff301fdf1677c23a3543421170b98ce548ed..f36c0752f62d06fe34ce84bcdf4447d072fea96d 100644 (file)
@@ -11,7 +11,7 @@
 /*                                                                     */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: libgraph.h 5029 2002-07-23 14:12:03Z doligez $ */
 
 #include <stdio.h>
 #include <windows.h>
index 9ab0f5f37ecc50970788becf2d4e288e8135da00..ba7af01ed7a5bac02bf73a45998488e8851cead2 100644 (file)
@@ -15,7 +15,7 @@
 /* Began 14 Sept 2003 - watford@uiuc.edu                               */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: menu.c 7411 2006-05-09 16:03:48Z xleroy $ */
 
 #include <stdio.h>
 #include <windows.h>
index 2a2e04a54540179738ce122b8822bad5efbb6905..cd50cb9d16cc2f77feccc7bb4b79d72a0f5d6fdb 100644 (file)
@@ -14,7 +14,7 @@
 /* Began 14 Sept 2003 - watford@uiuc.edu                               */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: ocaml.c 7411 2006-05-09 16:03:48Z xleroy $ */
 
 /*@@ Wedit generated application. Written Sat Jun 02 18:22:38 2001
 @@header: D:\lcc\inria\inriares.h
index f1a3562d9c5c0516e22a5468310446bbb69f1f55..8b0ae8c50e439f9591fee6925438b707a0250271 100644 (file)
@@ -15,7 +15,7 @@
 /* Began 14 Sept 2003 - watford@uiuc.edu                               */
 /***********************************************************************/
 
-/* $Id$ */
+/* $Id: startocaml.c 6824 2005-03-24 17:20:54Z doligez $ */
 
 #include <windows.h>
 #include <stdio.h>
index 322c540fe1454e611107174cbaa1f0210d73ccd4..6a05cd20226dfbd72ab12c09367a6fd8cc30f4a9 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile 10448 2010-05-21 11:28:21Z doligez $
 
 # Makefile for the parser generator.
 
@@ -28,7 +28,7 @@ ocamlyacc$(EXE): $(OBJS)
        $(CC) $(CFLAGS) $(CCLINKFLAGS) -o ocamlyacc $(OBJS)
 
 version.h : ../VERSION
-       echo "#define OCAML_VERSION \"`head -1 ../VERSION`\"" >version.h
+       echo "#define OCAML_VERSION \"`sed -e 1q ../VERSION`\"" >version.h
 
 clean:
        rm -f *.o ocamlyacc$(EXE) *~ version.h
index ec1cbfb44a2d3f20a0bb3e22dab055f292cfd72c..16f5694c06839d9f38c4fe8541a38396a93170f7 100644 (file)
@@ -10,7 +10,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id$
+# $Id: Makefile.nt 10448 2010-05-21 11:28:21Z doligez $
 
 # Makefile for the parser generator.
 
@@ -26,7 +26,7 @@ ocamlyacc.exe: $(OBJS)
        $(MKEXE) -o ocamlyacc.exe $(OBJS) $(EXTRALIBS)
 
 version.h : ../VERSION
-       echo "#define OCAML_VERSION \"`head -1 ../VERSION`\"" >version.h
+       echo "#define OCAML_VERSION \"`sed -e 1q ../VERSION`\"" >version.h
 
 clean:
        rm -f *.$(O) ocamlyacc.exe *~ version.h
index 1b7926a07894392505b1ac69510f3a99de43403e..dfb32be1d8b2c5503ae76e61b51ed162deb088da 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: closure.c 3573 2001-07-12 12:54:24Z doligez $ */
 
 #include "defs.h"
 
index 1be27d1a3f28d78b2280e51dca9435929b5a5be7..f6bc869be2511b7b625588447d4afb4f0c396e13 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: defs.h 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include <assert.h>
 #include <ctype.h>
index ae0b77aca188706499807938ac48f49be28049da..bae9c19409e2207daf7704a648fc04a7fd6245de 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: error.c 6654 2004-11-02 10:48:14Z doligez $ */
 
 /* routines for printing error messages  */
 
index f87afb1dc610f0c98d778e99527b3e5f1db938ca..e4727ef7136e4ec200ae437498f31645db9e1c8a 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: lalr.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include "defs.h"
 
index e05fcb072a76f9cb387668f3c3f39fbc39f92ad6..58bf42ef222d90d338eec5fb4709a188faabc1ff 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: lr0.c 3573 2001-07-12 12:54:24Z doligez $ */
 
 
 #include "defs.h"
index fe7ad8895c89e15ee9cba155d33335a403754273..0aa15cde849a17da826dcbeb7c0a33dce29fe451 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: main.c 10444 2010-05-20 14:06:29Z doligez $ */
 
 #include <signal.h>
 #include <string.h>
@@ -191,6 +191,9 @@ void getargs(int argc, char **argv)
               printf ("The Objective Caml parser generator, version "
                       OCAML_VERSION "\n");
               exit (0);
+            }else if (!strcmp (argv[i], "-vnum")){
+              printf (OCAML_VERSION "\n");
+              exit (0);
             }else{
               vflag = 1;
             }
index 1f9759e1767915df9107ebafa9cb54f7988d6ab1..0773e1e188361abdd847282fc887fc45dbe6f12a 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: mkpar.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 
 #include "defs.h"
index 00d61ac9c6ad8995eb55a16887bb3d40012a943e..f029ddd762b648beb56facd4a8aff0cceae025dc 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: output.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 #include "defs.h"
 
index d3c2755720ba9c1c514a23cddc7c656abf86a36e..50ff136e3a2236213096ebb6c27a09b606d962ce 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: reader.c 9319 2009-07-20 11:51:50Z doligez $ */
 
 #include <string.h>
 #include "defs.h"
index 86e152ac2d8961ed5713c5ff4eddb41b868f23b2..7b12a6332b807f90ae05577f3f31c2bbb4311c24 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: skeleton.c 7019 2005-08-13 20:59:37Z doligez $ */
 
 #include "defs.h"
 
index 87e280a09d66495834ae096fd5cd97146725ff49..92ad7d399e380abcfe2a4d12cb03dc60fc1a0d83 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: symtab.c 3573 2001-07-12 12:54:24Z doligez $ */
 
 #include <string.h>
 #include "defs.h"
index 0a1850ff0faa153db6458b394f3db52b6504d00c..017c260d02e6933e8b9ecc0f142e5f16b38522ca 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: verbose.c 9547 2010-01-22 12:48:24Z doligez $ */
 
 
 #include "defs.h"
index 5b8f10c89ff70fae7da2c3ebc747692c39297284..f1caabb6a0e4f18c4ef42ab751103c7ddd277f1f 100644 (file)
@@ -12,7 +12,7 @@
 
 /* Based on public-domain code from Berkeley Yacc */
 
-/* $Id$ */
+/* $Id: warshall.c 3573 2001-07-12 12:54:24Z doligez $ */
 
 #include "defs.h"